@nextcommerce/campaigns-os 1.34.1 → 1.37.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/AGENTS.md +42 -13
- package/CHANGELOG.md +87 -0
- package/README.md +39 -20
- package/contracts/agent-relevant-change-policy.v1.json +1 -0
- package/contracts/fixtures/progress/observation.v0.json +89 -0
- package/contracts/release-ledger.json +359 -0
- package/contracts/supported-surface.json +20 -5
- package/demo/apollo-v0/NOTICE.txt +51 -0
- package/demo/apollo-v0/assets/css/demo.css +2 -0
- package/demo/apollo-v0/assets/css/landing/tokens.css +35 -0
- package/demo/apollo-v0/assets/css/next-core.css +16124 -0
- package/demo/apollo-v0/assets/images/1x1_1.svg +19 -0
- package/demo/apollo-v0/assets/images/1x1_2.svg +19 -0
- package/demo/apollo-v0/assets/images/affirm-logo.svg +24 -0
- package/demo/apollo-v0/assets/images/apple-pay-logo.svg +4 -0
- package/demo/apollo-v0/assets/images/bancontact-logo.svg +1 -0
- package/demo/apollo-v0/assets/images/cc-visa.svg +28 -0
- package/demo/apollo-v0/assets/images/cc_amex.svg +20 -0
- package/demo/apollo-v0/assets/images/cc_discover.svg +21 -0
- package/demo/apollo-v0/assets/images/cc_master.svg +22 -0
- package/demo/apollo-v0/assets/images/credit-card-flags.svg +38 -0
- package/demo/apollo-v0/assets/images/demo-inline-40788e52a7c75b78.svg +1 -0
- package/demo/apollo-v0/assets/images/demo-inline-686e73c8840a0f0a.svg +1 -0
- package/demo/apollo-v0/assets/images/google-pay-logo.svg +7 -0
- package/demo/apollo-v0/assets/images/guarantee-badge.png +0 -0
- package/demo/apollo-v0/assets/images/icon-dollar.svg +5 -0
- package/demo/apollo-v0/assets/images/icon-guarantee.svg +5 -0
- package/demo/apollo-v0/assets/images/icon-shipping.svg +5 -0
- package/demo/apollo-v0/assets/images/icons8-lock-24_1icons8-lock-24.png +0 -0
- package/demo/apollo-v0/assets/images/ideal-logo.svg +30 -0
- package/demo/apollo-v0/assets/images/klarna-logo.svg +9 -0
- package/demo/apollo-v0/assets/images/landing/_shared/16x9.svg +19 -0
- package/demo/apollo-v0/assets/images/landing/_shared/1x1_1.svg +19 -0
- package/demo/apollo-v0/assets/images/landing/_shared/4x3.svg +19 -0
- package/demo/apollo-v0/assets/images/landing/_shared/arrow-right.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/_shared/cta-guarantee-icon.png +0 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-1.svg +8 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-2.svg +10 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-3.svg +13 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-4.svg +11 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-quote.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-verified.svg +10 -0
- package/demo/apollo-v0/assets/images/landing/bottomcta-1/check-bullet.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/faq-1/faq-chevron.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/footer-1/footer-logo.png +0 -0
- package/demo/apollo-v0/assets/images/landing/guarantee-1/guarantee-1-badge.svg +8 -0
- package/demo/apollo-v0/assets/images/landing/hero-1/icon-check.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/hero-1/icon-star.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/hero-1/icon-verified.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-batteries.svg +7 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-cuff-checking.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-dual-user.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-fda-cleared.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-heartbeat.svg +17 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-lcd-display.svg +10 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-movement-error.svg +7 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-portable.png +0 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-reading-memory.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-wrist-comfort.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-1.jpg +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-2.jpg +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-3.jpg +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-4.jpg +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-1.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-2.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-3.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-4.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-5.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-6.png +0 -0
- package/demo/apollo-v0/assets/images/landing/nav-1/flag-us.png +0 -0
- package/demo/apollo-v0/assets/images/landing/reviews-3/star-card.svg +3 -0
- package/demo/apollo-v0/assets/images/landing/reviews-3/star-lg.svg +3 -0
- package/demo/apollo-v0/assets/images/landing/reviews-3/star-sm.svg +3 -0
- package/demo/apollo-v0/assets/images/landing/reviews-3/verified.svg +10 -0
- package/demo/apollo-v0/assets/images/landing/testimonials-2/testimonials-2-reactions.svg +9 -0
- package/demo/apollo-v0/assets/images/landing/testimonials-2/testimonials-2-stars.svg +6 -0
- package/demo/apollo-v0/assets/images/link-logo.svg +1 -0
- package/demo/apollo-v0/assets/images/next-dark.svg +8 -0
- package/demo/apollo-v0/assets/images/paypal-logo.svg +5 -0
- package/demo/apollo-v0/assets/images/paypal-txt.svg +8 -0
- package/demo/apollo-v0/assets/images/paypal.svg +22 -0
- package/demo/apollo-v0/assets/images/sepa-logo.svg +275 -0
- package/demo/apollo-v0/assets/images/twint-logo.svg +1 -0
- package/demo/apollo-v0/assets/images/united-states-flag-icon.webp +0 -0
- package/demo/apollo-v0/assets/images/upsell-payment-logos.svg +38 -0
- package/demo/apollo-v0/assets/images/usps.png +0 -0
- package/demo/apollo-v0/checkout/index.html +1370 -0
- package/demo/apollo-v0/landing/index.html +1836 -0
- package/demo/apollo-v0/provenance.json +342 -0
- package/demo/apollo-v0/receipt/index.html +292 -0
- package/demo/apollo-v0/upsell-bundle-stepper/index.html +401 -0
- package/docs/activation-and-evidence.md +37 -0
- package/docs/demo-preview.md +63 -0
- package/docs/diagnostics.md +55 -0
- package/docs/orientation-contract-reference.md +2 -1
- package/docs/progress-snapshots.md +142 -0
- package/docs/runtime-readiness.md +1 -1
- package/docs/supported-surface.md +13 -1
- package/package.json +13 -3
- package/schemas/campaign-runtime-build-context.v0.schema.json +42 -0
- package/schemas/campaigns-os-progress-snapshot.v0.schema.json +370 -0
- package/skills/next-campaigns-build/SKILL.md +17 -1
- package/skills/next-campaigns-os/SKILL.md +19 -3
- package/skills/next-campaigns-os-setup/SKILL.md +17 -1
- package/skills/next-campaigns-polish/SKILL.md +18 -2
- package/skills/next-campaigns-qa/SKILL.md +24 -8
- package/skills.json +5 -5
- package/src/cli.mjs +74 -4
- package/src/consent.mjs +2 -2
- package/src/demo-artifact.mjs +97 -0
- package/src/demo.mjs +85 -0
- package/src/diagnostic.mjs +101 -0
- package/src/install-mode.mjs +13 -1
- package/src/progress-node.mjs +177 -0
- package/src/progress.mjs +133 -0
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self'; form-action 'none'; base-uri 'none'; connect-src 'none'; frame-src 'none'; object-src 'none'"><link rel="stylesheet" href="../assets/css/demo.css">
|
|
2
|
+
<meta charset="utf-8">
|
|
3
|
+
<title>Apollo — Upsell (bundle stepper)</title>
|
|
4
|
+
|
|
5
|
+
<meta property="og:type" content="website">
|
|
6
|
+
<meta property="og:title" content="Apollo — Upsell (bundle stepper)">
|
|
7
|
+
<meta name="twitter:card" content="summary_large_image">
|
|
8
|
+
<meta name="twitter:title" content="Apollo — Upsell (bundle stepper)">
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<meta property="og:description" content="Apollo checkout funnel">
|
|
12
|
+
<meta name="twitter:description" content="Apollo checkout funnel">
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
<meta property="og:site_name" content="Next Commerce">
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
<link href="../assets/css/next-core.css" rel="stylesheet" type="text/css">
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
</head>
|
|
56
|
+
<body><aside data-demo-banner="true" class="demo-banner"><strong>Demo only</strong><span>Sample content. Checkout, payment and source controls are disabled.</span><nav aria-label="Sample pages"><a data-demo-nav="true" href="../landing/index.html">Landing</a><a data-demo-nav="true" href="../checkout/index.html">Checkout</a><a data-demo-nav="true" href="../upsell-bundle-stepper/index.html">Offer</a><a data-demo-nav="true" href="../receipt/index.html">Receipt</a></nav><p>For a real campaign, start in a new folder with a saved Campaign Map. Keep this demo and any edits as reference.</p></aside>
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
<div class="page-wrapper">
|
|
62
|
+
<div class="main-wrapper">
|
|
63
|
+
<div class="announcement">
|
|
64
|
+
<div class="announcement__block">
|
|
65
|
+
<div class="announcement__text"><strong>Special Offer Unlocked - Do Not Close This Page</strong></div>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
<section class="upsell-header-bar">
|
|
69
|
+
<div class="container">
|
|
70
|
+
<div class="upsell-header-bar__wrapper">
|
|
71
|
+
<div class="upsell-header-bar__left">
|
|
72
|
+
<div class="upsell-header-bar__logo"><img src="../assets/images/next-dark.svg" alt="Next Commerce" class="brand-logo" loading="eager"></div>
|
|
73
|
+
</div>
|
|
74
|
+
<div class="upsell-header-bar__right">
|
|
75
|
+
<div class="upsell-header-bar__steps">
|
|
76
|
+
<div class="upsell-header-bar__stepper">
|
|
77
|
+
|
|
78
|
+
<div class="upsell-header-bar__step">
|
|
79
|
+
|
|
80
|
+
<div class="upsell-header-bar__step-content">
|
|
81
|
+
<div class="upsell-header-bar__step-label">Checkout</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="upsell-header-bar__step">
|
|
85
|
+
|
|
86
|
+
<div class="upsell-header-bar__step-content">
|
|
87
|
+
<div class="upsell-header-bar__step-label"> › </div>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="upsell-header-bar__step upsell-header-bar__step--active">
|
|
91
|
+
|
|
92
|
+
<div class="upsell-header-bar__step-content">
|
|
93
|
+
<div class="upsell-header-bar__step-label">Upgrades</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="upsell-header-bar__step">
|
|
97
|
+
|
|
98
|
+
<div class="upsell-header-bar__step-content">
|
|
99
|
+
<div class="upsell-header-bar__step-label"> › </div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="upsell-header-bar__step">
|
|
103
|
+
|
|
104
|
+
<div class="upsell-header-bar__step-content">
|
|
105
|
+
<div class="upsell-header-bar__step-label">Summary</div>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</section>
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
<section class="section upsell-header">
|
|
117
|
+
<div class="container">
|
|
118
|
+
<div class="upsell-header__inner">
|
|
119
|
+
<div class="upsell-header__title">Wait! Your Order Isn't Complete</div>
|
|
120
|
+
<div class="upsell-header__offer">
|
|
121
|
+
Special Discount: Get 1 More
|
|
122
|
+
<span>Sample product</span>
|
|
123
|
+
For Only
|
|
124
|
+
<span>$29.00 (sample)</span>
|
|
125
|
+
</div>
|
|
126
|
+
<div class="upsell-header__suboffer">
|
|
127
|
+
Add this to your order and get a
|
|
128
|
+
<span>Sample</span>
|
|
129
|
+
discount
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</section>
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
<div>
|
|
137
|
+
<section class="section upsell-box">
|
|
138
|
+
<div class="container">
|
|
139
|
+
<div class="upsell-wrapper">
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
<div class="os-option" style="display:none">
|
|
143
|
+
<div role="button" aria-disabled="true" class="os-card next-selected demo-inert"></div>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<div class="upsell-container">
|
|
147
|
+
<div class="grid-full flex-col flex-horizontal-lg-up">
|
|
148
|
+
<div class="upsell-content__column">
|
|
149
|
+
<div class="upsell-offer__card">
|
|
150
|
+
<h2 class="display-lg"><span>Sample product</span></h2>
|
|
151
|
+
<div class="review_component cc-sm margin-12">
|
|
152
|
+
<div class="review_component-wrapper">
|
|
153
|
+
<div class="review_stars-wrapper cc-color cc-black">
|
|
154
|
+
<div class="review_component-star"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--heroicons" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007l5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527l1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354L7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273l-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433l2.082-5.006Z" clip-rule="evenodd"></path></svg></div>
|
|
155
|
+
<div class="review_component-star"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--heroicons" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007l5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527l1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354L7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273l-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433l2.082-5.006Z" clip-rule="evenodd"></path></svg></div>
|
|
156
|
+
<div class="review_component-star"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--heroicons" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007l5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527l1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354L7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273l-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433l2.082-5.006Z" clip-rule="evenodd"></path></svg></div>
|
|
157
|
+
<div class="review_component-star"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--heroicons" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007l5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527l1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354L7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273l-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433l2.082-5.006Z" clip-rule="evenodd"></path></svg></div>
|
|
158
|
+
<div class="review_component-star"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--heroicons" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007l5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527l1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354L7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273l-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433l2.082-5.006Z" clip-rule="evenodd"></path></svg></div>
|
|
159
|
+
</div>
|
|
160
|
+
<div class="font-bold">(19,569 Ratings)</div>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
<div class="divider_line _25"></div>
|
|
164
|
+
<div class="upsell-offer__bullets">
|
|
165
|
+
<div class="bullet_inner-one">
|
|
166
|
+
<div class="hero_bullet-features-box-inner">
|
|
167
|
+
<div class="bullet-features-icon-box"><div class="bullet_features-icon-svg"><svg width="100%" height="100%" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_upsell_u1)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 0.930023C4.48 0.930023 0 5.41002 0 10.93C0 16.45 4.48 20.93 10 20.93C15.52 20.93 20 16.45 20 10.93C20 5.41002 15.52 0.930023 10 0.930023ZM9.99994 18.9302C5.58994 18.9302 1.99994 15.3402 1.99994 10.9302C1.99994 6.52025 5.58994 2.93025 9.99994 2.93025C14.4099 2.93025 17.9999 6.52025 17.9999 10.9302C17.9999 15.3402 14.4099 18.9302 9.99994 18.9302ZM8.00003 13.1002L14.59 6.51021L16 7.93021L8.00003 15.9302L4.00003 11.9302L5.41003 10.5202L8.00003 13.1002Z" fill="currentColor"></path></g><defs><clipPath id="clip0_upsell_u1"><rect width="20" height="20" fill="white" transform="translate(0 0.930023)"></rect></clipPath></defs></svg></div></div>
|
|
168
|
+
<div class="bullet-features-text-box"><div class="text-size-regular text-weight-bold">The standard chunk of Lorem Ipsum</div></div>
|
|
169
|
+
</div>
|
|
170
|
+
<div class="hero_bullet-features-box-inner">
|
|
171
|
+
<div class="bullet-features-icon-box"><div class="bullet_features-icon-svg"><svg width="100%" height="100%" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_upsell_u2)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 0.930023C4.48 0.930023 0 5.41002 0 10.93C0 16.45 4.48 20.93 10 20.93C15.52 20.93 20 16.45 20 10.93C20 5.41002 15.52 0.930023 10 0.930023ZM9.99994 18.9302C5.58994 18.9302 1.99994 15.3402 1.99994 10.9302C1.99994 6.52025 5.58994 2.93025 9.99994 2.93025C14.4099 2.93025 17.9999 6.52025 17.9999 10.9302C17.9999 15.3402 14.4099 18.9302 9.99994 18.9302ZM8.00003 13.1002L14.59 6.51021L16 7.93021L8.00003 15.9302L4.00003 11.9302L5.41003 10.5202L8.00003 13.1002Z" fill="currentColor"></path></g><defs><clipPath id="clip0_upsell_u2"><rect width="20" height="20" fill="white" transform="translate(0 0.930023)"></rect></clipPath></defs></svg></div></div>
|
|
172
|
+
<div class="bullet-features-text-box"><div class="text-size-regular text-weight-bold">Contrary to popular belief, Lorem Ipsum</div></div>
|
|
173
|
+
</div>
|
|
174
|
+
<div class="hero_bullet-features-box-inner">
|
|
175
|
+
<div class="bullet-features-icon-box"><div class="bullet_features-icon-svg"><svg width="100%" height="100%" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_upsell_u3)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 0.930023C4.48 0.930023 0 5.41002 0 10.93C0 16.45 4.48 20.93 10 20.93C15.52 20.93 20 16.45 20 10.93C20 5.41002 15.52 0.930023 10 0.930023ZM9.99994 18.9302C5.58994 18.9302 1.99994 15.3402 1.99994 10.9302C1.99994 6.52025 5.58994 2.93025 9.99994 2.93025C14.4099 2.93025 17.9999 6.52025 17.9999 10.9302C17.9999 15.3402 14.4099 18.9302 9.99994 18.9302ZM8.00003 13.1002L14.59 6.51021L16 7.93021L8.00003 15.9302L4.00003 11.9302L5.41003 10.5202L8.00003 13.1002Z" fill="currentColor"></path></g><defs><clipPath id="clip0_upsell_u3"><rect width="20" height="20" fill="white" transform="translate(0 0.930023)"></rect></clipPath></defs></svg></div></div>
|
|
176
|
+
<div class="bullet-features-text-box"><div class="text-size-regular text-weight-bold">Lorem Ipsum has been the industry's</div></div>
|
|
177
|
+
</div>
|
|
178
|
+
<div class="hero_bullet-features-box-inner">
|
|
179
|
+
<div class="bullet-features-icon-box"><div class="bullet_features-icon-svg"><svg width="100%" height="100%" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_upsell_u4)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 0.930023C4.48 0.930023 0 5.41002 0 10.93C0 16.45 4.48 20.93 10 20.93C15.52 20.93 20 16.45 20 10.93C20 5.41002 15.52 0.930023 10 0.930023ZM9.99994 18.9302C5.58994 18.9302 1.99994 15.3402 1.99994 10.9302C1.99994 6.52025 5.58994 2.93025 9.99994 2.93025C14.4099 2.93025 17.9999 6.52025 17.9999 10.9302C17.9999 15.3402 14.4099 18.9302 9.99994 18.9302ZM8.00003 13.1002L14.59 6.51021L16 7.93021L8.00003 15.9302L4.00003 11.9302L5.41003 10.5202L8.00003 13.1002Z" fill="currentColor"></path></g><defs><clipPath id="clip0_upsell_u4"><rect width="20" height="20" fill="white" transform="translate(0 0.930023)"></rect></clipPath></defs></svg></div></div>
|
|
180
|
+
<div class="bullet-features-text-box"><div class="text-size-regular text-weight-bold">Lorem Ipsum is simply dummy text</div></div>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
<div class="divider_line margin-32"></div>
|
|
185
|
+
|
|
186
|
+
<div class="checkout-button-wrapper">
|
|
187
|
+
|
|
188
|
+
<div class="next-bundle-qty">
|
|
189
|
+
<div class="next-bundle-qty__label">
|
|
190
|
+
<div>Select Quantity</div>
|
|
191
|
+
<div class="right-bullet-icon"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--ic" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M16.01 11H4v2h12.01v3L20 12l-3.99-4z"></path></svg></div>
|
|
192
|
+
</div>
|
|
193
|
+
<div class="next-bundle-qty__row">
|
|
194
|
+
<button type="button" aria-label="Decrease quantity" disabled="" aria-disabled="true" class="next-bundle-qty__btn demo-inert">−</button>
|
|
195
|
+
<span class="text-lg tw-600" style="min-width: 1.5rem; text-align: center;">1</span>
|
|
196
|
+
<button type="button" aria-label="Increase quantity" disabled="" aria-disabled="true" class="next-bundle-qty__btn demo-inert">+</button>
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
|
|
200
|
+
<div class="prices-text-wrapper">
|
|
201
|
+
<div class="price-wrapper">
|
|
202
|
+
<div class="text-sm tw-600">Retail Price</div>
|
|
203
|
+
<div class="upsell-offer__price diagonal-strike color-muted">$29.00 (sample)</div>
|
|
204
|
+
<div class="text-xs font-bold"><strike>+$4.95 SHIPPING</strike></div>
|
|
205
|
+
</div>
|
|
206
|
+
<div class="upsell-offer__divider"></div>
|
|
207
|
+
<div class="price-wrapper">
|
|
208
|
+
<div class="upsell-offer__price-heading">
|
|
209
|
+
<div class="text-sm tw-600">Offer Price</div>
|
|
210
|
+
<div class="text-sm font-bold color-primary">
|
|
211
|
+
(<span>Sample</span> OFF)
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
<div class="upsell-offer__price">$29.00 (sample)</div>
|
|
215
|
+
<div class="text-xs font-bold color-primary">+ FREE SHIPPING</div>
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<a pb-animate="pulse-upsell" aria-disabled="true" class="button demo-inert">
|
|
220
|
+
<div data-button="content" class="button_content"><div>Yes, Add to My Order</div></div>
|
|
221
|
+
</a>
|
|
222
|
+
|
|
223
|
+
<div class="upsell-ships-info">
|
|
224
|
+
<img class="upsell-ships-info__icon" src="../assets/images/usps.png" alt="USPS" loading="eager">
|
|
225
|
+
<p class="upsell-ships-info__text">
|
|
226
|
+
All orders ship from the USA
|
|
227
|
+
<img class="upsell-ships-info__flag" src="../assets/images/united-states-flag-icon.webp" alt="" loading="eager">
|
|
228
|
+
via USPS within 1 business day. A tracking number will be issued to your email.
|
|
229
|
+
</p>
|
|
230
|
+
</div>
|
|
231
|
+
<div class="payment-img-wrapper hide-tablet-up">
|
|
232
|
+
<div class="trust-badge invert"><img src="../assets/images/icons8-lock-24_1icons8-lock-24.png" alt="" class="trust-badge__icon" loading="eager">
|
|
233
|
+
<div class="badge-text-black">100% Encrypted & Secure Checkout</div>
|
|
234
|
+
</div><img src="../assets/images/upsell-payment-logos.svg" alt="" class="credit-card__flags" loading="eager">
|
|
235
|
+
</div>
|
|
236
|
+
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
|
|
241
|
+
<div class="upsell-offer__image-column">
|
|
242
|
+
<div>
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
<div data-component="swiper" data-variant="sw1">
|
|
253
|
+
<div class="slider_component">
|
|
254
|
+
<div class="slider_component-wrapper">
|
|
255
|
+
<div swiper="slider-main" class="swiper">
|
|
256
|
+
<div class="swiper-wrapper">
|
|
257
|
+
|
|
258
|
+
<div class="swiper-slide">
|
|
259
|
+
<div class="swiper-slide_inner">
|
|
260
|
+
<div class="swiper-slide_image-wrap is-square"><img src="../assets/images/1x1_1.svg" alt="" class="cover" loading="eager"></div>
|
|
261
|
+
</div>
|
|
262
|
+
</div>
|
|
263
|
+
|
|
264
|
+
<div class="swiper-slide">
|
|
265
|
+
<div class="swiper-slide_inner">
|
|
266
|
+
<div class="swiper-slide_image-wrap is-square"><img src="../assets/images/1x1_1.svg" alt="" class="cover" loading="eager"></div>
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
<div class="swiper-slide">
|
|
271
|
+
<div class="swiper-slide_inner">
|
|
272
|
+
<div class="swiper-slide_image-wrap is-square"><img src="../assets/images/1x1_1.svg" alt="" class="cover" loading="eager"></div>
|
|
273
|
+
</div>
|
|
274
|
+
</div>
|
|
275
|
+
|
|
276
|
+
<div class="swiper-slide">
|
|
277
|
+
<div class="swiper-slide_inner">
|
|
278
|
+
<div class="swiper-slide_image-wrap is-square"><img src="../assets/images/1x1_1.svg" alt="" class="cover" loading="eager"></div>
|
|
279
|
+
</div>
|
|
280
|
+
</div>
|
|
281
|
+
|
|
282
|
+
<div class="swiper-slide">
|
|
283
|
+
<div class="swiper-slide_inner">
|
|
284
|
+
<div class="swiper-slide_image-wrap is-square"><img src="../assets/images/1x1_1.svg" alt="" class="cover" loading="eager"></div>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
|
|
288
|
+
<div class="swiper-slide">
|
|
289
|
+
<div class="swiper-slide_inner">
|
|
290
|
+
<div class="swiper-slide_image-wrap is-square"><img src="../assets/images/1x1_1.svg" alt="" class="cover" loading="eager"></div>
|
|
291
|
+
</div>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
<div class="swiper-thumbs-arrow">
|
|
297
|
+
<div swiper="prev-button" class="swiper__button-static">
|
|
298
|
+
<div class="swiper__button-icon"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.91316 12.9545L0 12.0028L0.91316 11.0511L9.16383 2.45175L10.077 1.5L11.8979 3.39789L10.9848 4.34964L4.93644 10.6592H22.7108H24V13.3464H22.7108H4.93644L10.9902 19.6504L11.9033 20.6021L10.0824 22.5L9.1692 21.5483L0.91316 12.9545Z" fill="currentColor"></path></svg></div>
|
|
299
|
+
</div>
|
|
300
|
+
<div class="slider_component__thumbs-wrap">
|
|
301
|
+
<div thumbsslider="" swiper="slider-thumbs" class="swiper">
|
|
302
|
+
<div class="swiper-wrapper">
|
|
303
|
+
|
|
304
|
+
<div class="swiper-slide is-thumb swiper-slide-thumb-active">
|
|
305
|
+
<div class="swiper-slide_inner">
|
|
306
|
+
<div class="swiper-slide_image-wrap"><img src="../assets/images/1x1_2.svg" alt="" class="cover" loading="eager"></div>
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
|
|
310
|
+
<div class="swiper-slide is-thumb">
|
|
311
|
+
<div class="swiper-slide_inner">
|
|
312
|
+
<div class="swiper-slide_image-wrap"><img src="../assets/images/1x1_2.svg" alt="" class="cover" loading="eager"></div>
|
|
313
|
+
</div>
|
|
314
|
+
</div>
|
|
315
|
+
|
|
316
|
+
<div class="swiper-slide is-thumb">
|
|
317
|
+
<div class="swiper-slide_inner">
|
|
318
|
+
<div class="swiper-slide_image-wrap"><img src="../assets/images/1x1_2.svg" alt="" class="cover" loading="eager"></div>
|
|
319
|
+
</div>
|
|
320
|
+
</div>
|
|
321
|
+
|
|
322
|
+
<div class="swiper-slide is-thumb">
|
|
323
|
+
<div class="swiper-slide_inner">
|
|
324
|
+
<div class="swiper-slide_image-wrap"><img src="../assets/images/1x1_2.svg" alt="" class="cover" loading="eager"></div>
|
|
325
|
+
</div>
|
|
326
|
+
</div>
|
|
327
|
+
|
|
328
|
+
<div class="swiper-slide is-thumb">
|
|
329
|
+
<div class="swiper-slide_inner">
|
|
330
|
+
<div class="swiper-slide_image-wrap"><img src="../assets/images/1x1_2.svg" alt="" class="cover" loading="eager"></div>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
|
|
334
|
+
<div class="swiper-slide is-thumb">
|
|
335
|
+
<div class="swiper-slide_inner">
|
|
336
|
+
<div class="swiper-slide_image-wrap"><img src="../assets/images/1x1_2.svg" alt="" class="cover" loading="eager"></div>
|
|
337
|
+
</div>
|
|
338
|
+
</div>
|
|
339
|
+
|
|
340
|
+
</div>
|
|
341
|
+
</div>
|
|
342
|
+
</div>
|
|
343
|
+
<div swiper="next-button" class="swiper__button-static">
|
|
344
|
+
<div class="swiper__button-icon"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M23.0868 12.9545L24 12.0028L23.0868 11.0511L14.8362 2.45175L13.923 1.5L12.1021 3.39789L13.0152 4.34964L19.0636 10.6592H1.28917H0V13.3464H1.28917H19.0582L13.0098 19.6504L12.0967 20.6021L13.9176 22.5L14.8308 21.5483L23.0868 12.9545Z" fill="currentColor"></path></svg></div>
|
|
345
|
+
</div>
|
|
346
|
+
</div>
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
349
|
+
</div>
|
|
350
|
+
|
|
351
|
+
</div>
|
|
352
|
+
<div class="payment-img-wrapper hide-tablet-down">
|
|
353
|
+
<div class="trust-badge invert"><img src="../assets/images/icons8-lock-24_1icons8-lock-24.png" alt="" class="trust-badge__icon" loading="eager">
|
|
354
|
+
<div class="badge-text-black">100% Encrypted & Secure Checkout</div>
|
|
355
|
+
</div><img src="../assets/images/upsell-payment-logos.svg" alt="" class="credit-card__flags" loading="eager">
|
|
356
|
+
</div>
|
|
357
|
+
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
</div>
|
|
361
|
+
|
|
362
|
+
<div class="cc-decline-wrapper">
|
|
363
|
+
<a aria-disabled="true" class="upsell-link cc-decline cc-upsell4 demo-inert">
|
|
364
|
+
<div class="next-icon cc-1-25em"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--carbon" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path fill="currentColor" d="M16 2C8.2 2 2 8.2 2 16s6.2 14 14 14s14-6.2 14-14S23.8 2 16 2m0 26C9.4 28 4 22.6 4 16S9.4 4 16 4s12 5.4 12 12s-5.4 12-12 12"></path><path fill="currentColor" d="M21.4 23L16 17.6L10.6 23L9 21.4l5.4-5.4L9 10.6L10.6 9l5.4 5.4L21.4 9l1.6 1.6l-5.4 5.4l5.4 5.4z"></path></svg></div>
|
|
365
|
+
<div class="text-sm tw-600 cc-upsell4">No thank you, I don't want this one-time offer</div>
|
|
366
|
+
</a>
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
</section>
|
|
371
|
+
</div>
|
|
372
|
+
|
|
373
|
+
<footer class="footer_section">
|
|
374
|
+
<div class="container">
|
|
375
|
+
<div class="footer_layout">
|
|
376
|
+
<div class="footer_copy-info">
|
|
377
|
+
<div class="footer_link-wrapper">
|
|
378
|
+
<a target="_blank" aria-disabled="true" class="footer_legal-link demo-inert">Shipping Policy</a>
|
|
379
|
+
<a target="_blank" aria-disabled="true" class="footer_legal-link demo-inert">Refund Policy</a>
|
|
380
|
+
<a target="_blank" aria-disabled="true" class="footer_legal-link demo-inert">Privacy Policy</a>
|
|
381
|
+
<a target="_blank" aria-disabled="true" class="footer_legal-link demo-inert">Terms of Service</a>
|
|
382
|
+
</div>
|
|
383
|
+
<div class="text-xs">Copyright © <span class="copyright-year"></span> Next Commerce</div>
|
|
384
|
+
|
|
385
|
+
</div>
|
|
386
|
+
</div>
|
|
387
|
+
</div>
|
|
388
|
+
</footer>
|
|
389
|
+
|
|
390
|
+
</div>
|
|
391
|
+
</div>
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
</body></html>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Activation, access, and evidence
|
|
2
|
+
|
|
3
|
+
Start a real campaign with a Campaigns App configuration, a saved Campaign Map
|
|
4
|
+
or local CampaignSpec export, a Page Kit project, and prepared source pages.
|
|
5
|
+
Run `start`, then follow `next` and its named owner, inputs, and gates. These
|
|
6
|
+
commands use the existing Build Packet and Assembly Report lifecycle; the
|
|
7
|
+
milestones below describe evidence, not a second state machine.
|
|
8
|
+
|
|
9
|
+
| Milestone | What it establishes | What is still needed |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| Toolkit installed | The selected package can run and its agent skills can be checked with `tooling status`. | Campaign inputs and workflow evidence. Installation needs npm access; it does not grant store, Map, deploy, or QA access. |
|
|
12
|
+
| Demo preview | Pinned sample pages can be opened locally for a visual walkthrough; candidate 1.37.0 provides `demo --target <new-directory>`. | A separate real campaign folder, configuration, replaced demo values, and the ordinary build and proof gates. Demo behavior is not live commerce proof. |
|
|
13
|
+
| Map saved | Campaign Map Builder has retained the authored campaign plan. A local export is an alternative build input. | Export/revision agreement and resolution of live campaign data. Saving a Map does not establish Campaigns App or store access. |
|
|
14
|
+
| Campaign resolved | The package-owned resolver has read the campaign's live configuration and produced resolution evidence. | Build, preview, and runtime proof. Confirm Campaigns App keys and allowed domains; store Admin API reads need their own read token. |
|
|
15
|
+
| Preview observed | A browser has inspected the served current build at the tested URL. | Retained package-owned Polish capture and QA evidence tied to that build. A deployed URL alone is not an observation. |
|
|
16
|
+
| QA recorded | The package-owned verdict records the tested URL, build, checks, and exercised order-path depth. | Any recorded blockers, waived exceptions, publication recovery, and run closeout. A verdict's presence does not imply a pass or launch approval. |
|
|
17
|
+
|
|
18
|
+
Access is supplied by the operator or the named workflow owner. When an input
|
|
19
|
+
is missing, keep the stage blocked and collect that input; do not substitute a
|
|
20
|
+
demo value or infer access from an earlier milestone. `doctor` inspects local
|
|
21
|
+
evidence without writing by default. `tooling diagnose --packet <packet>`
|
|
22
|
+
exports only a small, redacted support summary; normal `doctor` and `next`
|
|
23
|
+
remain the detailed local recovery instructions.
|
|
24
|
+
|
|
25
|
+
Trust, freshness, and revision agreement are independent of these milestones.
|
|
26
|
+
Orient on declarative Git objects at one reviewed commit before executing the
|
|
27
|
+
toolkit. An exact installed version and lockfile identify the runtime; they do
|
|
28
|
+
not establish that it is the newest release or trusted. A saved Map, exported
|
|
29
|
+
spec, assembled build, and retained verdict can each refer to a different
|
|
30
|
+
revision. Reconcile them through the existing producer and freshness gates,
|
|
31
|
+
never by treating a later milestone as proof that earlier evidence is current.
|
|
32
|
+
|
|
33
|
+
If QA has finished testing but verdict publication failed, use `qa publish`
|
|
34
|
+
on the existing verdict as the local recovery instructions direct. Publication
|
|
35
|
+
recovery sends retained evidence; it must not rerun checkout or create another
|
|
36
|
+
test order. A diagnostic inspection performs no installation, write, publish,
|
|
37
|
+
deploy, browser run, or order placement.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Offline sample preview
|
|
2
|
+
|
|
3
|
+
Candidate 1.37.0 adds `campaigns-os demo`. The published 1.34.1 installation
|
|
4
|
+
example does not contain this command; install a reviewed full-SHA candidate
|
|
5
|
+
or an exact release at least 1.37.0 after publication.
|
|
6
|
+
|
|
7
|
+
From the folder containing your exact project-local toolkit installation:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx campaigns-os demo --target ./apollo-sample
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Open the printed `landing/index.html` file directly. No server or browser
|
|
14
|
+
installer is required. The command creates only a new directory whose parent
|
|
15
|
+
already exists; existing directories, files and symlinks are refused. Only
|
|
16
|
+
`--target` and `--help` are accepted. `--no-write`, `--dry-run`, force, merge
|
|
17
|
+
and overwrite flags are rejected before creation.
|
|
18
|
+
|
|
19
|
+
The banner links landing, checkout, upsell and receipt pages. Sample commerce
|
|
20
|
+
controls are disabled. This is a static visual projection: no SDK, JavaScript,
|
|
21
|
+
forms, live orders, campaign configuration, telemetry, sessions or evidence.
|
|
22
|
+
It remains sample-only even when invoked inside an active or stale campaign.
|
|
23
|
+
The command copies the reviewed bundled files without downloading a template
|
|
24
|
+
or running Page Kit or a CSS compiler. The bundle uses early restrictive CSP
|
|
25
|
+
and only local relative assets. No external resources are fetched.
|
|
26
|
+
|
|
27
|
+
To begin a real campaign, keep any sample edits and create a separate new Page
|
|
28
|
+
Kit folder. Follow [quickstart](quickstart.md) with a real saved Map or spec,
|
|
29
|
+
credentials and source pages. There is no automatic demo conversion. The demo
|
|
30
|
+
milestone grants neither saved-Map status nor build, preview or QA proof; see
|
|
31
|
+
[activation and evidence](activation-and-evidence.md).
|
|
32
|
+
|
|
33
|
+
## Provenance and regeneration
|
|
34
|
+
|
|
35
|
+
The projection uses NEXT's Apollo template at
|
|
36
|
+
`11352c30c596db258679fd3a552b906086b11bb9`, built by the published
|
|
37
|
+
`next-campaign-page-kit@0.2.0` CLI (source commit
|
|
38
|
+
`eed0679b1d02ef5cbe7f21964165c4202724d91d`) and `tailwindcss@3.4.17`.
|
|
39
|
+
Template design tokens are retained, with a deterministic `system-ui,
|
|
40
|
+
sans-serif` typography fallback. Swiper is projected to its first static slide.
|
|
41
|
+
Two obsolete stock CSS backgrounds with no files at the pinned commit are
|
|
42
|
+
removed. The receipt's runtime skeleton overlay is removed.
|
|
43
|
+
|
|
44
|
+
`demo/apollo-v0/provenance.json` records input hashes, exact pins, the toolchain
|
|
45
|
+
lock hash and every output file hash. `NOTICE.txt` retains factual template
|
|
46
|
+
attribution and Page Kit/Tailwind MIT notices; it grants no additional template
|
|
47
|
+
licence. The provenance manifest is a hashed supported artifact. Other static
|
|
48
|
+
files are internal to this fixed projection and validated against that manifest.
|
|
49
|
+
|
|
50
|
+
Maintainers regenerate from a disposable workspace using the pinned toolchain:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm ci --ignore-scripts --prefix scripts/demo-toolchain
|
|
54
|
+
node scripts/regenerate-demo.mjs --write
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The script invokes published `campaign-init` against the full Git ref, builds
|
|
58
|
+
only the four selected pages with `campaign-build`, transcribes the fixed
|
|
59
|
+
Tailwind theme without executing source configuration, and validates the inert
|
|
60
|
+
output before replacing the repository's bundle. Raw source, configuration,
|
|
61
|
+
data, JavaScript, Maps, QA/run files and source maps are excluded. Review changed
|
|
62
|
+
bytes, update the supported provenance hash and release ledger, then run the
|
|
63
|
+
required checks and file-based browser proof before accepting regeneration.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Redacted support diagnostics
|
|
2
|
+
|
|
3
|
+
Requires Campaigns OS 1.35.0 or later. If that version is not yet published to
|
|
4
|
+
npm, install a reviewed full-SHA source pin as described in the quickstart.
|
|
5
|
+
|
|
6
|
+
From the campaign folder:
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npx campaigns-os tooling diagnose --platform codex --packet campaign-runtime.build.json
|
|
10
|
+
npx campaigns-os tooling diagnose --platform codex --packet campaign-runtime.build.json --json > diagnostic.json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Omit `--packet` for installation and skill diagnostics only. Use `--platform
|
|
14
|
+
claude` for a Claude-only profile. `--context` and `--report` may select existing
|
|
15
|
+
local sidecars; `--target` selects a local skills directory. These inputs are
|
|
16
|
+
never included in the export. The text and JSON forms are suitable for review
|
|
17
|
+
and copying to a support request. The command itself sends nothing.
|
|
18
|
+
|
|
19
|
+
The `campaigns-os-diagnostic/v0` summary is an allowlist projection of existing
|
|
20
|
+
`tooling status` and read-only `doctor` producers. Its stage comes from doctor's
|
|
21
|
+
`next` block, which uses the existing lifecycle picker. It does not execute
|
|
22
|
+
`next`, install, fetch campaign data, run a browser, publish, remit, deploy,
|
|
23
|
+
create an order, sweep a stale run session, or write retained campaign evidence.
|
|
24
|
+
Mutation flags do not change that behavior. Export success means a summary was
|
|
25
|
+
produced, including when its inspection is unavailable; consult its statuses.
|
|
26
|
+
|
|
27
|
+
The only exported fields are the schema version; a numeric package version or
|
|
28
|
+
null; install mode (`checkout`, `node_modules`, `global`, `npx_cache`,
|
|
29
|
+
`package_directory`, or `unknown`); coarse selected agent profile; tooling and
|
|
30
|
+
doctor statuses; existing next stage; freshness; fixed accepted reason/action
|
|
31
|
+
IDs; and fixed human-readable recovery owner, action, and input-needed text.
|
|
32
|
+
Unknown enum values become `unknown` with `diagnostic.unsupported_value`.
|
|
33
|
+
Unrecognized reason/action IDs become `diagnostic.unsupported_reason` or
|
|
34
|
+
`diagnostic.unsupported_action`; they are never copied or given authority.
|
|
35
|
+
Unsupported IDs need detailed local review, not a guessed repair.
|
|
36
|
+
|
|
37
|
+
Toolkit freshness is `pinned` only when a producer identifies a source pin,
|
|
38
|
+
`local_ref_current`/`local_ref_behind` for a checkout's existing local upstream
|
|
39
|
+
comparison, otherwise `unknown`. This performs no network freshness check.
|
|
40
|
+
An exact registry version and lockfile still identify installed bytes when a
|
|
41
|
+
source commit is not derivable. Inspection `observed` means local doctor
|
|
42
|
+
inspection succeeded, not that the served build, deployed campaign, or saved
|
|
43
|
+
Map revision is current. Missing inspection is `not_requested` or `unavailable`.
|
|
44
|
+
The diagnostic is neither an orientation envelope nor launch evidence.
|
|
45
|
+
|
|
46
|
+
The export excludes absolute paths, URLs, argv, environment, source content,
|
|
47
|
+
prompts, free-text findings, credentials, campaign/customer identities, and
|
|
48
|
+
order values. Producer exceptions are summarized with fixed unavailable IDs;
|
|
49
|
+
their raw messages are not exported. Detailed `doctor`/`next` output stays local
|
|
50
|
+
and can contain campaign data, so it is not a substitute for this export.
|
|
51
|
+
|
|
52
|
+
Recovery names who supplies the missing input. Inspect the detailed local
|
|
53
|
+
producer for the exact command and any campaign-specific input. If a QA verdict
|
|
54
|
+
was recorded but publication failed, follow `qa publish` recovery for that
|
|
55
|
+
retained verdict; never rerun checkout or create an order to republish evidence.
|
|
@@ -25,7 +25,7 @@ Ledger schema id: `campaigns-os-release-ledger/v1`
|
|
|
25
25
|
Change policy version: `1.0.0`
|
|
26
26
|
Reason-code vocabulary version: `1.0.0`
|
|
27
27
|
Limits version: `1.0.0`
|
|
28
|
-
Supported surface at generation time: `1.
|
|
28
|
+
Supported surface at generation time: `1.37.1`
|
|
29
29
|
|
|
30
30
|
## Forward compatibility
|
|
31
31
|
|
|
@@ -243,6 +243,7 @@ so a renamed command fails here as well as at the supported-surface gate.
|
|
|
243
243
|
- `campaigns-os findings`
|
|
244
244
|
- `campaigns-os run-record`
|
|
245
245
|
- `campaigns-os run`
|
|
246
|
+
- `campaigns-os demo`
|
|
246
247
|
|
|
247
248
|
## Terminal outcome examples
|
|
248
249
|
|