@nurix/etna 0.20.43 → 0.20.44

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
- "fingerprint": "774d2e20c947",
2
+ "fingerprint": "192f46e9ad7e",
3
3
  "harnesses": {
4
4
  "code": {
5
5
  "plugin": "code",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "harness": "code",
3
3
  "name": "code",
4
- "version": "3.20.13",
4
+ "version": "3.20.14",
5
5
  "files": [
6
6
  ".prettierignore",
7
7
  ".prettierrc.json",
@@ -29,5 +29,5 @@
29
29
  "origin": "https://cdn.nustack.io",
30
30
  "track": "latest"
31
31
  },
32
- "digest": "55a739ce31d2"
32
+ "digest": "a1ccbb9247d0"
33
33
  }
@@ -462,7 +462,8 @@ function sentencesOf(lines) {
462
462
  if (!opened) continue;
463
463
  if (DOCTRINE_CLOSING.test(line)) break;
464
464
  if (/^\s*(#|\|)/.test(line) || !line.trim()) continue;
465
- const plain = line.replace(/^\s*([-*]|\d+\.)\s+/, '').replace(/\*\*[^*]+\*\*:?/g, '').replace(/\[([^\]]+)\]\([^)]*\)/g, '$1').replace(/`/g, '');
465
+ // A citation's words name where a rule lives; two sentences citing one heading share no rule by it.
466
+ const plain = line.replace(/^\s*([-*]|\d+\.)\s+/, '').replace(/\*\*[^*]+\*\*:?/g, '').replace(/\[([^\]]+)\]\([^)]*\)/g, '$1').replace(/`/g, '').replace(/\([^()]*(?:principles?\s+\d|§)[^()]*\)/g, '');
466
467
  for (const sentence of plain.split(/(?<=[.;])\s+(?=[A-Z(])/)) {
467
468
  if (SPEC_SENTENCE.test(sentence)) continue;
468
469
  const words = new Set((sentence.toLowerCase().match(/[a-z][a-z'-]+/g) || []).filter((w) => w.length > 2 && !STOPWORDS.has(w)));
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "harness": "delivery",
3
3
  "name": "delivery",
4
- "version": "0.2.48",
4
+ "version": "0.2.49",
5
5
  "files": [
6
6
  ".prettierignore",
7
7
  ".prettierrc.json",
@@ -14,5 +14,5 @@
14
14
  "origin": "https://cdn.nustack.io",
15
15
  "track": "latest"
16
16
  },
17
- "digest": "9f42da40515c"
17
+ "digest": "ab77b0fbab3a"
18
18
  }
@@ -462,7 +462,8 @@ function sentencesOf(lines) {
462
462
  if (!opened) continue;
463
463
  if (DOCTRINE_CLOSING.test(line)) break;
464
464
  if (/^\s*(#|\|)/.test(line) || !line.trim()) continue;
465
- const plain = line.replace(/^\s*([-*]|\d+\.)\s+/, '').replace(/\*\*[^*]+\*\*:?/g, '').replace(/\[([^\]]+)\]\([^)]*\)/g, '$1').replace(/`/g, '');
465
+ // A citation's words name where a rule lives; two sentences citing one heading share no rule by it.
466
+ const plain = line.replace(/^\s*([-*]|\d+\.)\s+/, '').replace(/\*\*[^*]+\*\*:?/g, '').replace(/\[([^\]]+)\]\([^)]*\)/g, '$1').replace(/`/g, '').replace(/\([^()]*(?:principles?\s+\d|§)[^()]*\)/g, '');
466
467
  for (const sentence of plain.split(/(?<=[.;])\s+(?=[A-Z(])/)) {
467
468
  if (SPEC_SENTENCE.test(sentence)) continue;
468
469
  const words = new Set((sentence.toLowerCase().match(/[a-z][a-z'-]+/g) || []).filter((w) => w.length > 2 && !STOPWORDS.has(w)));
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "harness": "etna",
3
3
  "name": "etna",
4
- "version": "1.5.38",
4
+ "version": "1.5.39",
5
5
  "files": [
6
6
  ".prettierignore",
7
7
  ".prettierrc.json",
@@ -14,5 +14,5 @@
14
14
  "origin": "https://cdn.nustack.io",
15
15
  "track": "latest"
16
16
  },
17
- "digest": "3e652499a2b3"
17
+ "digest": "04e9b6671929"
18
18
  }
@@ -462,7 +462,8 @@ function sentencesOf(lines) {
462
462
  if (!opened) continue;
463
463
  if (DOCTRINE_CLOSING.test(line)) break;
464
464
  if (/^\s*(#|\|)/.test(line) || !line.trim()) continue;
465
- const plain = line.replace(/^\s*([-*]|\d+\.)\s+/, '').replace(/\*\*[^*]+\*\*:?/g, '').replace(/\[([^\]]+)\]\([^)]*\)/g, '$1').replace(/`/g, '');
465
+ // A citation's words name where a rule lives; two sentences citing one heading share no rule by it.
466
+ const plain = line.replace(/^\s*([-*]|\d+\.)\s+/, '').replace(/\*\*[^*]+\*\*:?/g, '').replace(/\[([^\]]+)\]\([^)]*\)/g, '$1').replace(/`/g, '').replace(/\([^()]*(?:principles?\s+\d|§)[^()]*\)/g, '');
466
467
  for (const sentence of plain.split(/(?<=[.;])\s+(?=[A-Z(])/)) {
467
468
  if (SPEC_SENTENCE.test(sentence)) continue;
468
469
  const words = new Set((sentence.toLowerCase().match(/[a-z][a-z'-]+/g) || []).filter((w) => w.length > 2 && !STOPWORDS.has(w)));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurix/etna",
3
- "version": "0.20.43",
3
+ "version": "0.20.44",
4
4
  "description": "Bootstrap a project with a Nurix harness — writes the committed contract (CLAUDE.md, AGENTS.md, .claude/harness.json, settings.json, the mount hook) and mounts the harness itself, gitignored, from a bundled payload; sessions keep it current from the CDN.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -46,5 +46,5 @@
46
46
  "agent",
47
47
  "plugin"
48
48
  ],
49
- "etnaFingerprint": "774d2e20c947"
49
+ "etnaFingerprint": "192f46e9ad7e"
50
50
  }