@pixelspace/manifesto 2026.15.12 → 2026.15.14

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.js +47 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelspace/manifesto",
3
- "version": "2026.15.12",
3
+ "version": "2026.15.14",
4
4
  "description": "Design and Product Manifesto — Formal notation. A constitution for biological and digital intelligences.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/index.js CHANGED
@@ -58,6 +58,34 @@ function colorSymbols(text) {
58
58
  return text.replace(SYMBOL_RE, `${BRAND}$1${RESET}`);
59
59
  }
60
60
 
61
+ // Gradient colorization: symbols transition accent→white, words transition default→accent
62
+ function colorGradient(text) {
63
+ const symSet = new Set('∀∃∈∉∧∨¬→⟹≠≅≫≤≥∝⊂∪∘∅∞≡↑≈∵∎₀₁₂₃₄₅₆₇₈₉ₙ⁶{}()[]|=<>\\:');
64
+ const chars = [...text];
65
+
66
+ let total = 0;
67
+ for (const ch of chars) {
68
+ if (ch !== ' ' && ch !== '\n') total++;
69
+ }
70
+
71
+ let vi = 0;
72
+ return chars.map(ch => {
73
+ if (ch === ' ' || ch === '\n') return ch;
74
+ const progress = total > 1 ? vi / (total - 1) : 1;
75
+ const isSym = symSet.has(ch);
76
+ vi++;
77
+ if (isSym) {
78
+ return Math.random() < (1 - progress)
79
+ ? `${BRAND}${ch}${RESET}`
80
+ : `${WHITE}${ch}${RESET}`;
81
+ } else {
82
+ return Math.random() < progress
83
+ ? `${BRAND}${ch}${RESET}`
84
+ : ch;
85
+ }
86
+ }).join('');
87
+ }
88
+
61
89
  // Binary gradient: white → brand color with increasing density
62
90
  // Uses golden ratio for quasi-random, non-clumping distribution
63
91
  const PHI = 0.6180339887;
@@ -142,20 +170,21 @@ export async function run() {
142
170
  const paragraphs = raw.trim().split('\n\n');
143
171
  const INVOKE_MARKER = 'AI AGENT: YOU CAN';
144
172
  const CTA_MARKER = 'AI AGENT';
145
- const body = paragraphs.map((p) => {
173
+
174
+ // Separate manifesto body from CTA paragraphs
175
+ const manifestoParas = [];
176
+ const ctaParts = [];
177
+
178
+ for (const p of paragraphs) {
146
179
  const text = p.replace(/\n/g, ' ');
147
180
 
148
- // Rehydration paragraph: word-wrap (English), white "AI AGENT:" + accent on npx command
149
181
  if (text.startsWith(INVOKE_MARKER)) {
150
182
  const wrapped = wrapText(text);
151
183
  let result = colorSymbols(wrapped);
152
184
  result = result.replace('AI AGENT:', `${WHITE}AI AGENT:${RESET}`);
153
185
  result = result.replace('NPX @PIXELSPACE/MANIFESTO', `${BRAND}NPX @PIXELSPACE/MANIFESTO${RESET}`);
154
- return sep + '\n\n' + result;
155
- }
156
-
157
- // Agent CTA: word-wrap (mixed notation + English), white highlights + binary gradient
158
- if (text.includes(CTA_MARKER)) {
186
+ ctaParts.push(sep + '\n\n' + result);
187
+ } else if (text.includes(CTA_MARKER)) {
159
188
  const wrapped = wrapText(text);
160
189
  const ctaIdx = wrapped.indexOf(CTA_MARKER);
161
190
  const marked = markWhiteWords(wrapped.substring(0, ctaIdx));
@@ -166,15 +195,20 @@ export async function run() {
166
195
  const pos = ctaText.indexOf(word);
167
196
  if (pos !== -1) for (let i = pos; i < pos + word.length; i++) forceWhite.add(i);
168
197
  }
169
- const cta = binaryGradient(ctaText, false, forceWhite);
170
- return before + cta;
198
+ ctaParts.push(before + binaryGradient(ctaText, false, forceWhite));
199
+ } else {
200
+ manifestoParas.push(text);
171
201
  }
202
+ }
203
+
204
+ // Join manifesto body into one continuous block with ∎ separators, then gradient colorize
205
+ const manifestoBlock = manifestoParas.join(' ∎ ');
206
+ const manifesto = colorGradient(wrapFormal(manifestoBlock));
207
+ const body = manifesto + '\n\n' + ctaParts.join('\n\n');
172
208
 
173
- // Manifesto body: hard-break (dense formal notation), then color symbols
174
- return colorSymbols(wrapFormal(text));
175
- }).join('\n\n');
209
+ const footer = `${DIM} Pixelspace · Design and Product Manifesto · pixelspace.com · @pixelspace on X${RESET}`;
176
210
 
177
- console.log(`\n${logo}\n\n${header}\n\n${sep}\n\n${body}\n\n${sep}\n`);
211
+ console.log(`\n${logo}\n\n${header}\n\n${sep}\n\n${body}\n\n${sep}\n\n${footer}\n`);
178
212
  }
179
213
 
180
214
  export default run;