@principles/core 1.210.0 → 1.211.0

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=intent-browser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-browser.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/intent/__tests__/intent-browser.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Intent browser-safe exports contract tests.
3
+ *
4
+ * Verifies that intent-browser.ts ONLY exports pure functions that are safe
5
+ * for browser bundling (no node:crypto, no fs, no network). This guards against
6
+ * accidental leakage of Node.js-only modules into the pd-console UI bundle.
7
+ *
8
+ * PRI-484 Task 28 follow-up — ensures the browser-safe entry point contract
9
+ * is testable and enforceable.
10
+ */
11
+ import { describe, it, expect } from 'vitest';
12
+ import * as browserExports from '../intent-browser.js';
13
+ import * as fullExports from '../intent-doc.js';
14
+ import { computeIntentContentHash } from '../intent-hash.js';
15
+ describe('intent-browser exports contract', () => {
16
+ // ── Browser-safe functions MUST be exported ─────────────────────────────
17
+ it('exports parseIntentDocSections (pure)', () => {
18
+ expect(browserExports.parseIntentDocSections).toBe(fullExports.parseIntentDocSections);
19
+ });
20
+ it('exports assembleIntentDoc (pure)', () => {
21
+ expect(browserExports.assembleIntentDoc).toBe(fullExports.assembleIntentDoc);
22
+ });
23
+ it('exports validateIntentDocSections (pure)', () => {
24
+ expect(browserExports.validateIntentDocSections).toBe(fullExports.validateIntentDocSections);
25
+ });
26
+ it('exports INTENT_MAX_BYTES (constant)', () => {
27
+ expect(browserExports.INTENT_MAX_BYTES).toBe(fullExports.INTENT_MAX_BYTES);
28
+ });
29
+ it('exports INTENT_DOC_TEMPLATE (constant)', () => {
30
+ expect(browserExports.INTENT_DOC_TEMPLATE).toBe(fullExports.INTENT_DOC_TEMPLATE);
31
+ });
32
+ it('exports getIntentFilename (pure)', () => {
33
+ expect(browserExports.getIntentFilename).toBe(fullExports.getIntentFilename);
34
+ });
35
+ it('exports createIntentTemplate (pure)', () => {
36
+ expect(browserExports.createIntentTemplate).toBe(fullExports.createIntentTemplate);
37
+ });
38
+ it('exports computeVersionDiff (pure)', () => {
39
+ expect(typeof browserExports.computeVersionDiff).toBe('function');
40
+ });
41
+ it('exports formatVersionSummary (pure)', () => {
42
+ expect(typeof browserExports.formatVersionSummary).toBe('function');
43
+ });
44
+ // ── Node.js-only functions MUST NOT be exported ─────────────────────────
45
+ it('does NOT export computeIntentContentHash (uses node:crypto)', () => {
46
+ // This function uses node:crypto and must stay in intent-hash.ts,
47
+ // NOT exported from intent-browser.ts.
48
+ expect(browserExports).not.toHaveProperty('computeIntentContentHash');
49
+ // Verify the function exists in the Node.js-only module.
50
+ expect(typeof computeIntentContentHash).toBe('function');
51
+ });
52
+ // ── Browser-safe behavior verification ────────────────────────────────
53
+ it('parseIntentDocSections works without any Node.js dependencies', () => {
54
+ const raw = `## 1. Why
55
+
56
+ Test content.
57
+
58
+ ## 2. Desired Outcome
59
+
60
+ Outcome here.
61
+ `;
62
+ // Direct call should succeed without any fs/crypto/network calls.
63
+ const sections = browserExports.parseIntentDocSections(raw);
64
+ expect(sections.why).toBe('Test content.');
65
+ expect(sections.desiredOutcome).toBe('Outcome here.');
66
+ });
67
+ it('assembleIntentDoc produces valid markdown without Node.js dependencies', () => {
68
+ const sections = { why: 'Browser test', desiredOutcome: 'Outcome' };
69
+ const doc = browserExports.assembleIntentDoc(sections);
70
+ expect(doc).toContain('# INTENT.md');
71
+ expect(doc).toContain('## 1. Why');
72
+ expect(doc).toContain('Browser test');
73
+ });
74
+ it('computeVersionDiff works without Node.js dependencies', () => {
75
+ const old = '## 1. Why\nold\n## 2. Desired Outcome\nsame\n';
76
+ const new_ = '## 1. Why\nnew\n## 2. Desired Outcome\nsame\n';
77
+ const diff = browserExports.computeVersionDiff(old, new_);
78
+ expect(diff).toHaveLength(5);
79
+ const whyDiff = diff.find(d => d.section === 'why');
80
+ expect(whyDiff?.changed).toBe(true);
81
+ });
82
+ // ── Export count sanity check ────────────────────────────────────────
83
+ it('exports at least 9 named exports (functions + constants)', () => {
84
+ // Count all exported keys — should be stable and minimal.
85
+ const exportKeys = Object.keys(browserExports);
86
+ // Filter out type exports (they don't appear at runtime in ESM).
87
+ const runtimeExports = exportKeys.filter(k => typeof browserExports[k] !== 'undefined');
88
+ // Expected: 9 from intent-doc + 2 from intent-doc-version = 11 runtime exports.
89
+ // Using >= to avoid breaking when new browser-safe exports are added.
90
+ expect(runtimeExports.length).toBeGreaterThanOrEqual(9);
91
+ });
92
+ });
93
+ //# sourceMappingURL=intent-browser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-browser.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/intent/__tests__/intent-browser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=intent-doc-version-edge-cases.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-doc-version-edge-cases.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * formatVersionSummary edge case tests.
3
+ *
4
+ * PRI-484 Task 28 follow-up — tests edge cases that were not covered in
5
+ * the original intent-doc-version.test.ts:
6
+ * - Empty content snapshot
7
+ * - Very long content (>80 chars) with precise truncation
8
+ * - Null/undefined handling
9
+ * - Language-aware fallback for missing reason
10
+ */
11
+ import { describe, it, expect } from 'vitest';
12
+ import { formatVersionSummary } from '../intent-doc-version.js';
13
+ describe('formatVersionSummary edge cases', () => {
14
+ // ── Empty content ───────────────────────────────────────────────────────
15
+ it('returns empty preview when contentSnapshot is empty', () => {
16
+ const version = {
17
+ id: 'empty-1',
18
+ lang: 'en',
19
+ contentHash: 'sha256:abc',
20
+ contentSnapshot: '',
21
+ reason: 'Initial empty',
22
+ createdAt: '2026-06-28T10:00:00.000Z',
23
+ };
24
+ const summary = formatVersionSummary(version, 0);
25
+ expect(summary.preview).toBe('');
26
+ expect(summary.label).toContain('v1');
27
+ expect(summary.label).toContain('Initial empty');
28
+ });
29
+ it('returns title-only preview when contentSnapshot has only headers (no text)', () => {
30
+ const version = {
31
+ id: 'headers-only',
32
+ lang: 'en',
33
+ contentHash: 'sha256:def',
34
+ contentSnapshot: '# INTENT.md\n\n## 1. Why\n\n\n## 2. Desired Outcome\n\n',
35
+ reason: 'Template only',
36
+ createdAt: '2026-06-28T10:00:00.000Z',
37
+ };
38
+ const summary = formatVersionSummary(version, 0);
39
+ // Only section headers (## 1., ## 2.) are stripped, title remains
40
+ expect(summary.preview).toBe('# INTENT.md');
41
+ });
42
+ // ── Truncation boundary cases ───────────────────────────────────────────
43
+ it('truncates exactly at 80 characters (boundary)', () => {
44
+ const text80 = 'A'.repeat(80);
45
+ const version = {
46
+ id: 'exact-80',
47
+ lang: 'en',
48
+ contentHash: 'sha256:ghi',
49
+ contentSnapshot: `## 1. Why\n${text80}\n## 2. Desired Outcome\n`,
50
+ reason: 'Exact 80 chars',
51
+ createdAt: '2026-06-28T10:00:00.000Z',
52
+ };
53
+ const summary = formatVersionSummary(version, 0);
54
+ // After stripping headers, we have exactly 80 chars
55
+ expect(summary.preview).toBe(text80);
56
+ expect(summary.preview.length).toBe(80);
57
+ // No ellipsis because length is exactly 80
58
+ expect(summary.preview.endsWith('...')).toBe(false);
59
+ });
60
+ it('truncates at 77 + "..." when content is 81 chars', () => {
61
+ const text81 = 'A'.repeat(81);
62
+ const version = {
63
+ id: 'over-80',
64
+ lang: 'en',
65
+ contentHash: 'sha256:jkl',
66
+ contentSnapshot: `## 1. Why\n${text81}\n`,
67
+ reason: 'Over 80 chars',
68
+ createdAt: '2026-06-28T10:00:00.000Z',
69
+ };
70
+ const summary = formatVersionSummary(version, 0);
71
+ expect(summary.preview).toBe('A'.repeat(77) + '...');
72
+ expect(summary.preview.length).toBe(80);
73
+ });
74
+ it('truncates very long content (200 chars) to 80 chars with ellipsis', () => {
75
+ const text200 = 'B'.repeat(200);
76
+ const version = {
77
+ id: 'very-long',
78
+ lang: 'en',
79
+ contentHash: 'sha256:mno',
80
+ contentSnapshot: `## 1. Why\n${text200}\n## 2. Desired Outcome\n`,
81
+ reason: 'Very long',
82
+ createdAt: '2026-06-28T10:00:00.000Z',
83
+ };
84
+ const summary = formatVersionSummary(version, 0);
85
+ expect(summary.preview.endsWith('...')).toBe(true);
86
+ expect(summary.preview.length).toBe(80);
87
+ // Verify the truncated portion is correct
88
+ expect(summary.preview.slice(0, 77)).toBe('B'.repeat(77));
89
+ });
90
+ // ── Language-aware fallback for missing reason ───────────────────────────
91
+ it('uses zh-CN fallback "无备注" when lang=zh-CN and reason is null', () => {
92
+ const version = {
93
+ id: 'zh-no-reason',
94
+ lang: 'zh-CN',
95
+ contentHash: 'sha256:pqr',
96
+ contentSnapshot: '内容',
97
+ reason: null,
98
+ createdAt: '2026-06-28T10:00:00.000Z',
99
+ };
100
+ const summary = formatVersionSummary(version, 0);
101
+ expect(summary.label).toContain('无备注');
102
+ expect(summary.label).not.toContain('(no note)');
103
+ });
104
+ it('uses en fallback "(no note)" when lang=en and reason is null', () => {
105
+ const version = {
106
+ id: 'en-no-reason',
107
+ lang: 'en',
108
+ contentHash: 'sha256:stu',
109
+ contentSnapshot: 'content',
110
+ reason: null,
111
+ createdAt: '2026-06-28T10:00:00.000Z',
112
+ };
113
+ const summary = formatVersionSummary(version, 0);
114
+ expect(summary.label).toContain('(no note)');
115
+ expect(summary.label).not.toContain('无备注');
116
+ });
117
+ // ── Header stripping verification ─────────────────────────────────────────
118
+ it('strips section header patterns but preserves title', () => {
119
+ const version = {
120
+ id: 'headers-test',
121
+ lang: 'en',
122
+ contentHash: 'sha256:vwx',
123
+ contentSnapshot: `# INTENT.md
124
+
125
+ ## 1. Why
126
+
127
+ Why content here.
128
+
129
+ ## 2. Desired Outcome
130
+
131
+ Outcome here.
132
+
133
+ ## 3. Non-negotiables
134
+
135
+ NN content.
136
+
137
+ ## 4. Stop / Escalation
138
+
139
+ Stop content.
140
+
141
+ ## 5. Current Strategic Focus
142
+
143
+ Focus content.
144
+ `,
145
+ reason: 'Full template',
146
+ createdAt: '2026-06-28T10:00:00.000Z',
147
+ };
148
+ const summary = formatVersionSummary(version, 0);
149
+ // Section headers (## 1., ## 2., etc.) are stripped, but title (# INTENT.md) remains
150
+ expect(summary.preview).toContain('# INTENT.md');
151
+ expect(summary.preview).not.toContain('## 1.');
152
+ expect(summary.preview).not.toContain('## 2.');
153
+ expect(summary.preview).not.toContain('## 3.');
154
+ expect(summary.preview).not.toContain('## 4.');
155
+ expect(summary.preview).not.toContain('## 5.');
156
+ // Content should remain
157
+ expect(summary.preview).toContain('Why content here');
158
+ expect(summary.preview).toContain('Outcome here');
159
+ });
160
+ it('handles header variations (extra spaces)', () => {
161
+ const version = {
162
+ id: 'header-spaces',
163
+ lang: 'en',
164
+ contentHash: 'sha256:yza',
165
+ contentSnapshot: `## 1. Why
166
+
167
+ Content.
168
+
169
+ ## 2. Desired Outcome
170
+
171
+ More.
172
+ `,
173
+ reason: 'Spaces in header',
174
+ createdAt: '2026-06-28T10:00:00.000Z',
175
+ };
176
+ const summary = formatVersionSummary(version, 0);
177
+ // Header regex should handle extra spaces
178
+ expect(summary.preview).not.toContain('##');
179
+ expect(summary.preview).toContain('Content');
180
+ });
181
+ });
182
+ //# sourceMappingURL=intent-doc-version-edge-cases.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-doc-version-edge-cases.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/intent/__tests__/intent-doc-version-edge-cases.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/core",
3
- "version": "1.210.0",
3
+ "version": "1.211.0",
4
4
  "description": "Universal Evolution SDK - framework-agnostic pain signal capture and principle injection",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",