@lousy-agents/cli 5.14.3 → 5.14.4

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.
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "devDependencies": {
20
20
  "@biomejs/biome": "2.4.15",
21
- "@lousy-agents/mcp": "5.14.2",
21
+ "@lousy-agents/mcp": "5.14.3",
22
22
  "@modelcontextprotocol/server-sequential-thinking": "2025.12.18",
23
23
  "@testcontainers/postgresql": "11.14.0",
24
24
  "@types/node": "24.12.3",
@@ -956,9 +956,9 @@
956
956
  }
957
957
  },
958
958
  "node_modules/@lousy-agents/mcp": {
959
- "version": "5.14.2",
960
- "resolved": "https://registry.npmjs.org/@lousy-agents/mcp/-/mcp-5.14.2.tgz",
961
- "integrity": "sha512-iQYgD++iIrxa/exJHl6qio1EFbYKWVxESxJcN0MnkiA4WCOcPQmSdB2EaS7PTvFt7Wqjjv3jQsUmUi0OdFF1mw==",
959
+ "version": "5.14.3",
960
+ "resolved": "https://registry.npmjs.org/@lousy-agents/mcp/-/mcp-5.14.3.tgz",
961
+ "integrity": "sha512-KyOZHY6sfnwpsKJ98m+thulAHJTdlWrHLCJF+xx2H+Slf2uEoE/dUEFOFEIGximWWFfutOVOf4yetUX6Aqzxbw==",
962
962
  "dev": true,
963
963
  "license": "BSD-2-Clause-Patent",
964
964
  "dependencies": {
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "devDependencies": {
31
31
  "@biomejs/biome": "2.4.15",
32
- "@lousy-agents/mcp": "5.14.2",
32
+ "@lousy-agents/mcp": "5.14.3",
33
33
  "@modelcontextprotocol/server-sequential-thinking": "2025.12.18",
34
34
  "@testcontainers/postgresql": "11.14.0",
35
35
  "@types/node": "24.12.3",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "devDependencies": {
22
22
  "@biomejs/biome": "2.4.15",
23
- "@lousy-agents/mcp": "5.14.2",
23
+ "@lousy-agents/mcp": "5.14.3",
24
24
  "@modelcontextprotocol/server-sequential-thinking": "2025.12.18",
25
25
  "@types/node": "24.12.3",
26
26
  "@upstash/context7-mcp": "2.2.4",
package/dist/index.js CHANGED
@@ -50937,8 +50937,10 @@ class Composer {
50937
50937
  }
50938
50938
  }
50939
50939
  if (afterDoc) {
50940
- Array.prototype.push.apply(doc.errors, this.errors);
50941
- Array.prototype.push.apply(doc.warnings, this.warnings);
50940
+ for (let i = 0; i < this.errors.length; ++i)
50941
+ doc.errors.push(this.errors[i]);
50942
+ for (let i = 0; i < this.warnings.length; ++i)
50943
+ doc.warnings.push(this.warnings[i]);
50942
50944
  }
50943
50945
  else {
50944
50946
  doc.errors = this.errors;
@@ -54753,7 +54755,7 @@ class Lexer {
54753
54755
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
54754
54756
  this.indentNext = this.indentValue + 1;
54755
54757
  this.indentValue += n;
54756
- return yield* this.parseBlockStart();
54758
+ return 'block-start';
54757
54759
  }
54758
54760
  return 'doc';
54759
54761
  }
@@ -55074,32 +55076,36 @@ class Lexer {
55074
55076
  return 0;
55075
55077
  }
55076
55078
  *pushIndicators() {
55077
- switch (this.charAt(0)) {
55078
- case '!':
55079
- return ((yield* this.pushTag()) +
55080
- (yield* this.pushSpaces(true)) +
55081
- (yield* this.pushIndicators()));
55082
- case '&':
55083
- return ((yield* this.pushUntil(isNotAnchorChar)) +
55084
- (yield* this.pushSpaces(true)) +
55085
- (yield* this.pushIndicators()));
55086
- case '-': // this is an error
55087
- case '?': // this is an error outside flow collections
55088
- case ':': {
55089
- const inFlow = this.flowLevel > 0;
55090
- const ch1 = this.charAt(1);
55091
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
55092
- if (!inFlow)
55093
- this.indentNext = this.indentValue + 1;
55094
- else if (this.flowKey)
55095
- this.flowKey = false;
55096
- return ((yield* this.pushCount(1)) +
55097
- (yield* this.pushSpaces(true)) +
55098
- (yield* this.pushIndicators()));
55079
+ let n = 0;
55080
+ loop: while (true) {
55081
+ switch (this.charAt(0)) {
55082
+ case '!':
55083
+ n += yield* this.pushTag();
55084
+ n += yield* this.pushSpaces(true);
55085
+ continue loop;
55086
+ case '&':
55087
+ n += yield* this.pushUntil(isNotAnchorChar);
55088
+ n += yield* this.pushSpaces(true);
55089
+ continue loop;
55090
+ case '-': // this is an error
55091
+ case '?': // this is an error outside flow collections
55092
+ case ':': {
55093
+ const inFlow = this.flowLevel > 0;
55094
+ const ch1 = this.charAt(1);
55095
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
55096
+ if (!inFlow)
55097
+ this.indentNext = this.indentValue + 1;
55098
+ else if (this.flowKey)
55099
+ this.flowKey = false;
55100
+ n += yield* this.pushCount(1);
55101
+ n += yield* this.pushSpaces(true);
55102
+ continue loop;
55103
+ }
55099
55104
  }
55100
55105
  }
55106
+ break loop;
55101
55107
  }
55102
- return 0;
55108
+ return n;
55103
55109
  }
55104
55110
  *pushTag() {
55105
55111
  if (this.charAt(1) === '<') {
@@ -55279,6 +55285,14 @@ function getFirstKeyStartProps(prev) {
55279
55285
  }
55280
55286
  return prev.splice(i, prev.length);
55281
55287
  }
55288
+ function arrayPushArray(target, source) {
55289
+ // May exhaust call stack with large `source` array
55290
+ if (source.length < 1e5)
55291
+ Array.prototype.push.apply(target, source);
55292
+ else
55293
+ for (let i = 0; i < source.length; ++i)
55294
+ target.push(source[i]);
55295
+ }
55282
55296
  function fixFlowSeqItems(fc) {
55283
55297
  if (fc.start.type === 'flow-seq-start') {
55284
55298
  for (const it of fc.items) {
@@ -55291,12 +55305,12 @@ function fixFlowSeqItems(fc) {
55291
55305
  delete it.key;
55292
55306
  if (isFlowToken(it.value)) {
55293
55307
  if (it.value.end)
55294
- Array.prototype.push.apply(it.value.end, it.sep);
55308
+ arrayPushArray(it.value.end, it.sep);
55295
55309
  else
55296
55310
  it.value.end = it.sep;
55297
55311
  }
55298
55312
  else
55299
- Array.prototype.push.apply(it.start, it.sep);
55313
+ arrayPushArray(it.start, it.sep);
55300
55314
  delete it.sep;
55301
55315
  }
55302
55316
  }
@@ -55716,7 +55730,7 @@ class Parser {
55716
55730
  const prev = map.items[map.items.length - 2];
55717
55731
  const end = prev?.value?.end;
55718
55732
  if (Array.isArray(end)) {
55719
- Array.prototype.push.apply(end, it.start);
55733
+ arrayPushArray(end, it.start);
55720
55734
  end.push(this.sourceToken);
55721
55735
  map.items.pop();
55722
55736
  return;
@@ -55931,7 +55945,7 @@ class Parser {
55931
55945
  const prev = seq.items[seq.items.length - 2];
55932
55946
  const end = prev?.value?.end;
55933
55947
  if (Array.isArray(end)) {
55934
- Array.prototype.push.apply(end, it.start);
55948
+ arrayPushArray(end, it.start);
55935
55949
  end.push(this.sourceToken);
55936
55950
  seq.items.pop();
55937
55951
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lousy-agents/cli",
3
- "version": "5.14.3",
3
+ "version": "5.14.4",
4
4
  "description": "CLI scaffolding tool that sets up projects with structure, instructions, and feedback loops for AI coding assistants",
5
5
  "type": "module",
6
6
  "repository": {
@@ -23,7 +23,7 @@
23
23
  "devDependencies": {
24
24
  "@biomejs/biome": "2.4.15",
25
25
  "@eslint/eslintrc": "3.3.5",
26
- "@lousy-agents/mcp": "5.14.2",
26
+ "@lousy-agents/mcp": "5.14.3",
27
27
  "@modelcontextprotocol/server-sequential-thinking": "2025.12.18",
28
28
  "@testing-library/jest-dom": "6.9.1",
29
29
  "@testing-library/react": "16.3.2",