@hyperfixi/mcp-server 2.5.1 → 2.7.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.
@@ -122,17 +122,19 @@ function gte(i, y) {
122
122
  }
123
123
  function expand_(str, max, isTop) {
124
124
  const expansions = [];
125
- const m = balanced("{", "}", str);
126
- if (!m)
127
- return [str];
128
- const pre = m.pre;
129
- const post = m.post.length ? expand_(m.post, max, false) : [""];
130
- if (/\$$/.test(m.pre)) {
131
- for (let k2 = 0; k2 < post.length && k2 < max; k2++) {
132
- const expansion = pre + "{" + m.body + "}" + post[k2];
133
- expansions.push(expansion);
134
- }
135
- } else {
125
+ for (; ; ) {
126
+ const m = balanced("{", "}", str);
127
+ if (!m)
128
+ return [str];
129
+ const pre = m.pre;
130
+ if (/\$$/.test(m.pre)) {
131
+ const post2 = m.post.length ? expand_(m.post, max, false) : [""];
132
+ for (let k2 = 0; k2 < post2.length && k2 < max; k2++) {
133
+ const expansion = pre + "{" + m.body + "}" + post2[k2];
134
+ expansions.push(expansion);
135
+ }
136
+ return expansions;
137
+ }
136
138
  const isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
137
139
  const isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
138
140
  const isSequence = isNumericSequence || isAlphaSequence;
@@ -140,10 +142,12 @@ function expand_(str, max, isTop) {
140
142
  if (!isSequence && !isOptions) {
141
143
  if (m.post.match(/,(?!,).*\}/)) {
142
144
  str = m.pre + "{" + m.body + escClose + m.post;
143
- return expand_(str, max, true);
145
+ isTop = true;
146
+ continue;
144
147
  }
145
148
  return [str];
146
149
  }
150
+ const post = m.post.length ? expand_(m.post, max, false) : [""];
147
151
  let n;
148
152
  if (isSequence) {
149
153
  n = m.body.split(/\.\./);
@@ -158,19 +162,19 @@ function expand_(str, max, isTop) {
158
162
  }
159
163
  let N;
160
164
  if (isSequence && n[0] !== void 0 && n[1] !== void 0) {
161
- const x = numeric(n[0]);
165
+ const x2 = numeric(n[0]);
162
166
  const y = numeric(n[1]);
163
167
  const width = Math.max(n[0].length, n[1].length);
164
168
  let incr = n.length === 3 && n[2] !== void 0 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
165
169
  let test = lte;
166
- const reverse = y < x;
170
+ const reverse = y < x2;
167
171
  if (reverse) {
168
172
  incr *= -1;
169
173
  test = gte;
170
174
  }
171
175
  const pad = n.some(isPadded);
172
176
  N = [];
173
- for (let i = x; test(i, y) && N.length < max; i += incr) {
177
+ for (let i = x2; test(i, y) && N.length < max; i += incr) {
174
178
  let c;
175
179
  if (isAlphaSequence) {
176
180
  c = String.fromCharCode(i);
@@ -207,8 +211,8 @@ function expand_(str, max, isTop) {
207
211
  }
208
212
  }
209
213
  }
214
+ return expansions;
210
215
  }
211
- return expansions;
212
216
  }
213
217
 
214
218
  // ../../node_modules/minimatch/dist/esm/assert-valid-pattern.js
@@ -276,7 +280,7 @@ var parseClass = (glob2, position) => {
276
280
  }
277
281
  }
278
282
  if (c === "[" && !escaping) {
279
- for (const [cls, [unip, u3, neg]] of Object.entries(posixClasses)) {
283
+ for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {
280
284
  if (glob2.startsWith(cls, i)) {
281
285
  if (rangeStart) {
282
286
  return ["$.", false, glob2.length - pos, true];
@@ -286,7 +290,7 @@ var parseClass = (glob2, position) => {
286
290
  negs.push(unip);
287
291
  else
288
292
  ranges.push(unip);
289
- uflag = uflag || u3;
293
+ uflag = uflag || u;
290
294
  continue WHILE;
291
295
  }
292
296
  }
@@ -1808,33 +1812,33 @@ import { tracingChannel as G, channel as P } from "diagnostics_channel";
1808
1812
  var S = P("lru-cache:metrics");
1809
1813
  var W = G("lru-cache");
1810
1814
  var L = typeof performance == "object" && performance && typeof performance.now == "function" ? performance : Date;
1811
- var D = () => S.hasSubscribers || W.hasSubscribers;
1815
+ var R = () => S.hasSubscribers || W.hasSubscribers;
1812
1816
  var U = /* @__PURE__ */ new Set();
1813
1817
  var M = typeof process == "object" && process ? process : {};
1814
- var k = (u3, e, t, i) => {
1815
- typeof M.emitWarning == "function" ? M.emitWarning(u3, e, t, i) : console.error(`[${t}] ${e}: ${u3}`);
1818
+ var k = (d3, e, t, i) => {
1819
+ typeof M.emitWarning == "function" ? M.emitWarning(d3, e, t, i) : console.error(`[${t}] ${e}: ${d3}`);
1816
1820
  };
1817
- var H = (u3) => !U.has(u3);
1818
- var T = (u3) => !!u3 && u3 === Math.floor(u3) && u3 > 0 && isFinite(u3);
1819
- var j = (u3) => T(u3) ? u3 <= Math.pow(2, 8) ? Uint8Array : u3 <= Math.pow(2, 16) ? Uint16Array : u3 <= Math.pow(2, 32) ? Uint32Array : u3 <= Number.MAX_SAFE_INTEGER ? O : null : null;
1821
+ var H = (d3) => !U.has(d3);
1822
+ var T = (d3) => !!d3 && d3 === Math.floor(d3) && d3 > 0 && isFinite(d3);
1823
+ var j = (d3) => T(d3) ? d3 <= Math.pow(2, 8) ? Uint8Array : d3 <= Math.pow(2, 16) ? Uint16Array : d3 <= Math.pow(2, 32) ? Uint32Array : d3 <= Number.MAX_SAFE_INTEGER ? O : null : null;
1820
1824
  var O = class extends Array {
1821
1825
  constructor(e) {
1822
1826
  super(e), this.fill(0);
1823
1827
  }
1824
1828
  };
1825
- var R = class u {
1829
+ var x = class d {
1826
1830
  heap;
1827
1831
  length;
1828
1832
  static #o = false;
1829
1833
  static create(e) {
1830
1834
  let t = j(e);
1831
1835
  if (!t) return [];
1832
- u.#o = true;
1833
- let i = new u(e, t);
1834
- return u.#o = false, i;
1836
+ d.#o = true;
1837
+ let i = new d(e, t);
1838
+ return d.#o = false, i;
1835
1839
  }
1836
1840
  constructor(e, t) {
1837
- if (!u.#o) throw new TypeError("instantiate Stack using Stack.create(n)");
1841
+ if (!d.#o) throw new TypeError("instantiate Stack using Stack.create(n)");
1838
1842
  this.heap = new t(e), this.length = 0;
1839
1843
  }
1840
1844
  push(e) {
@@ -1844,7 +1848,7 @@ var R = class u {
1844
1848
  return this.heap[--this.length];
1845
1849
  }
1846
1850
  };
1847
- var I = class u2 {
1851
+ var I = class d2 {
1848
1852
  #o;
1849
1853
  #c;
1850
1854
  #S;
@@ -1890,7 +1894,7 @@ var I = class u2 {
1890
1894
  #T;
1891
1895
  #U;
1892
1896
  #f;
1893
- #x;
1897
+ #D;
1894
1898
  static unsafeExposeInternals(e) {
1895
1899
  return { starts: e.#F, ttls: e.#d, autopurgeTimers: e.#g, sizes: e.#_, keyMap: e.#s, keyList: e.#i, valList: e.#t, next: e.#l, prev: e.#u, get head() {
1896
1900
  return e.#a;
@@ -1926,30 +1930,30 @@ var I = class u2 {
1926
1930
  return this.#w;
1927
1931
  }
1928
1932
  constructor(e) {
1929
- let { max: t = 0, ttl: i, ttlResolution: s = 1, ttlAutopurge: n, updateAgeOnGet: r, updateAgeOnHas: h, allowStale: a, dispose: o, onInsert: d, disposeAfter: y, noDisposeOnSet: _, noUpdateTTL: c, maxSize: g = 0, maxEntrySize: f = 0, sizeCalculation: b, fetchMethod: l, memoMethod: w, noDeleteOnFetchRejection: F, noDeleteOnStaleGet: m, allowStaleOnFetchRejection: p, allowStaleOnFetchAbort: A, ignoreFetchAbort: z, backgroundFetchSize: C = 1, perf: E } = e;
1933
+ let { max: t = 0, ttl: i, ttlResolution: s = 1, ttlAutopurge: n, updateAgeOnGet: o, updateAgeOnHas: l, allowStale: h, dispose: r, onInsert: c, disposeAfter: m, noDisposeOnSet: _, noUpdateTTL: u, maxSize: g = 0, maxEntrySize: f = 0, sizeCalculation: y, fetchMethod: a, memoMethod: w, noDeleteOnFetchRejection: F, noDeleteOnStaleGet: b, allowStaleOnFetchRejection: p, allowStaleOnFetchAbort: A, ignoreFetchAbort: z, backgroundFetchSize: C = 1, perf: E } = e;
1930
1934
  if (this.backgroundFetchSize = C, E !== void 0 && typeof E?.now != "function") throw new TypeError("perf option must have a now() method if specified");
1931
1935
  if (this.#m = E ?? L, t !== 0 && !T(t)) throw new TypeError("max option must be a nonnegative integer");
1932
1936
  let v = t ? j(t) : Array;
1933
1937
  if (!v) throw new Error("invalid max value: " + t);
1934
- if (this.#o = t, this.#c = g, this.maxEntrySize = f || this.#c, this.sizeCalculation = b, this.sizeCalculation) {
1938
+ if (this.#o = t, this.#c = g, this.maxEntrySize = f || this.#c, this.sizeCalculation = y, this.sizeCalculation) {
1935
1939
  if (!this.#c && !this.maxEntrySize) throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
1936
1940
  if (typeof this.sizeCalculation != "function") throw new TypeError("sizeCalculation set to non-function");
1937
1941
  }
1938
1942
  if (w !== void 0 && typeof w != "function") throw new TypeError("memoMethod must be a function if defined");
1939
- if (this.#I = w, l !== void 0 && typeof l != "function") throw new TypeError("fetchMethod must be a function if specified");
1940
- if (this.#M = l, this.#U = !!l, this.#s = /* @__PURE__ */ new Map(), this.#i = Array.from({ length: t }).fill(void 0), this.#t = Array.from({ length: t }).fill(void 0), this.#l = new v(t), this.#u = new v(t), this.#a = 0, this.#h = 0, this.#y = R.create(t), this.#n = 0, this.#b = 0, typeof o == "function" && (this.#S = o), typeof d == "function" && (this.#O = d), typeof y == "function" ? (this.#w = y, this.#r = []) : (this.#w = void 0, this.#r = void 0), this.#T = !!this.#S, this.#x = !!this.#O, this.#f = !!this.#w, this.noDisposeOnSet = !!_, this.noUpdateTTL = !!c, this.noDeleteOnFetchRejection = !!F, this.allowStaleOnFetchRejection = !!p, this.allowStaleOnFetchAbort = !!A, this.ignoreFetchAbort = !!z, this.maxEntrySize !== 0) {
1943
+ if (this.#I = w, a !== void 0 && typeof a != "function") throw new TypeError("fetchMethod must be a function if specified");
1944
+ if (this.#M = a, this.#U = !!a, this.#s = /* @__PURE__ */ new Map(), this.#i = Array.from({ length: t }).fill(void 0), this.#t = Array.from({ length: t }).fill(void 0), this.#l = new v(t), this.#u = new v(t), this.#a = 0, this.#h = 0, this.#y = x.create(t), this.#n = 0, this.#b = 0, typeof r == "function" && (this.#S = r), typeof c == "function" && (this.#O = c), typeof m == "function" ? (this.#w = m, this.#r = []) : (this.#w = void 0, this.#r = void 0), this.#T = !!this.#S, this.#D = !!this.#O, this.#f = !!this.#w, this.noDisposeOnSet = !!_, this.noUpdateTTL = !!u, this.noDeleteOnFetchRejection = !!F, this.allowStaleOnFetchRejection = !!p, this.allowStaleOnFetchAbort = !!A, this.ignoreFetchAbort = !!z, this.maxEntrySize !== 0) {
1941
1945
  if (this.#c !== 0 && !T(this.#c)) throw new TypeError("maxSize must be a positive integer if specified");
1942
1946
  if (!T(this.maxEntrySize)) throw new TypeError("maxEntrySize must be a positive integer if specified");
1943
1947
  this.#X();
1944
1948
  }
1945
- if (this.allowStale = !!a, this.noDeleteOnStaleGet = !!m, this.updateAgeOnGet = !!r, this.updateAgeOnHas = !!h, this.ttlResolution = T(s) || s === 0 ? s : 1, this.ttlAutopurge = !!n, this.ttl = i || 0, this.ttl) {
1949
+ if (this.allowStale = !!h, this.noDeleteOnStaleGet = !!b, this.updateAgeOnGet = !!o, this.updateAgeOnHas = !!l, this.ttlResolution = T(s) || s === 0 ? s : 1, this.ttlAutopurge = !!n, this.ttl = i || 0, this.ttl) {
1946
1950
  if (!T(this.ttl)) throw new TypeError("ttl must be a positive integer if specified");
1947
1951
  this.#k();
1948
1952
  }
1949
1953
  if (this.#o === 0 && this.ttl === 0 && this.#c === 0) throw new TypeError("At least one of max, maxSize, or ttl is required");
1950
1954
  if (!this.ttlAutopurge && !this.#o && !this.#c) {
1951
- let x = "LRU_CACHE_UNBOUNDED";
1952
- H(x) && (U.add(x), k("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", x, u2));
1955
+ let D = "LRU_CACHE_UNBOUNDED";
1956
+ H(D) && (U.add(D), k("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", D, d2));
1953
1957
  }
1954
1958
  }
1955
1959
  getRemainingTTL(e) {
@@ -1959,51 +1963,54 @@ var I = class u2 {
1959
1963
  let e = new O(this.#o), t = new O(this.#o);
1960
1964
  this.#d = e, this.#F = t;
1961
1965
  let i = this.ttlAutopurge ? Array.from({ length: this.#o }) : void 0;
1962
- this.#g = i, this.#H = (h, a, o = this.#m.now()) => {
1963
- t[h] = a !== 0 ? o : 0, e[h] = a, s(h, a);
1964
- }, this.#D = (h) => {
1966
+ this.#g = i, this.#H = (h, r, c = this.#m.now()) => {
1967
+ t[h] = r !== 0 ? c : 0, e[h] = r, s(h, r);
1968
+ }, this.#R = (h) => {
1965
1969
  t[h] = e[h] !== 0 ? this.#m.now() : 0, s(h, e[h]);
1966
1970
  };
1967
- let s = this.ttlAutopurge ? (h, a) => {
1968
- if (i?.[h] && (clearTimeout(i[h]), i[h] = void 0), a && a !== 0 && i) {
1969
- let o = setTimeout(() => {
1970
- this.#p(h) && this.#E(this.#i[h], "expire");
1971
- }, a + 1);
1972
- o.unref && o.unref(), i[h] = o;
1971
+ let s = this.ttlAutopurge ? (h, r) => {
1972
+ if (i?.[h] && (clearTimeout(i[h]), i[h] = void 0), r && r !== 0 && i) {
1973
+ let c = setTimeout(() => {
1974
+ this.#p(h) ? (this.#E(this.#i[h], "expire"), i[h] = void 0) : s(h, l(h));
1975
+ }, r + 1);
1976
+ c.unref && c.unref(), i[h] = c;
1973
1977
  }
1974
1978
  } : () => {
1975
1979
  };
1976
- this.#v = (h, a) => {
1977
- if (e[a]) {
1978
- let o = e[a], d = t[a];
1979
- if (!o || !d) return;
1980
- h.ttl = o, h.start = d, h.now = n || r();
1981
- let y = h.now - d;
1982
- h.remainingTTL = o - y;
1980
+ this.#v = (h, r) => {
1981
+ if (e[r]) {
1982
+ let c = e[r], m = t[r];
1983
+ if (!c || !m) return;
1984
+ h.ttl = c, h.start = m, h.now = n || o();
1985
+ let _ = h.now - m;
1986
+ h.remainingTTL = c - _;
1983
1987
  }
1984
1988
  };
1985
- let n = 0, r = () => {
1989
+ let n = 0, o = () => {
1986
1990
  let h = this.#m.now();
1987
1991
  if (this.ttlResolution > 0) {
1988
1992
  n = h;
1989
- let a = setTimeout(() => n = 0, this.ttlResolution);
1990
- a.unref && a.unref();
1993
+ let r = setTimeout(() => n = 0, this.ttlResolution);
1994
+ r.unref && r.unref();
1991
1995
  }
1992
1996
  return h;
1993
1997
  };
1994
1998
  this.getRemainingTTL = (h) => {
1995
- let a = this.#s.get(h);
1996
- if (a === void 0) return 0;
1997
- let o = e[a], d = t[a];
1998
- if (!o || !d) return 1 / 0;
1999
- let y = (n || r()) - d;
2000
- return o - y;
2001
- }, this.#p = (h) => {
2002
- let a = t[h], o = e[h];
2003
- return !!o && !!a && (n || r()) - a > o;
1999
+ let r = this.#s.get(h);
2000
+ return r === void 0 ? 0 : l(r);
2001
+ };
2002
+ let l = (h) => {
2003
+ let r = e[h], c = t[h];
2004
+ if (!r || !c) return 1 / 0;
2005
+ let m = (n || o()) - c;
2006
+ return r - m;
2007
+ };
2008
+ this.#p = (h) => {
2009
+ let r = t[h], c = e[h];
2010
+ return !!c && !!r && (n || o()) - r > c;
2004
2011
  };
2005
2012
  }
2006
- #D = () => {
2013
+ #R = () => {
2007
2014
  };
2008
2015
  #v = () => {
2009
2016
  };
@@ -2012,7 +2019,7 @@ var I = class u2 {
2012
2019
  #p = () => false;
2013
2020
  #X() {
2014
2021
  let e = new O(this.#o);
2015
- this.#b = 0, this.#_ = e, this.#R = (t) => {
2022
+ this.#b = 0, this.#_ = e, this.#x = (t) => {
2016
2023
  this.#b -= e[t], e[t] = 0;
2017
2024
  }, this.#N = (t, i, s, n) => {
2018
2025
  if (!T(s)) {
@@ -2031,7 +2038,7 @@ var I = class u2 {
2031
2038
  this.#b += e[t], s && (s.entrySize = i, s.totalCalculatedSize = this.#b);
2032
2039
  };
2033
2040
  }
2034
- #R = (e) => {
2041
+ #x = (e) => {
2035
2042
  };
2036
2043
  #j = (e, t, i) => {
2037
2044
  };
@@ -2106,10 +2113,10 @@ var I = class u2 {
2106
2113
  if (s === void 0) return;
2107
2114
  let n = { value: s };
2108
2115
  if (this.#d && this.#F) {
2109
- let r = this.#d[t], h = this.#F[t];
2110
- if (r && h) {
2111
- let a = r - (this.#m.now() - h);
2112
- n.ttl = a, n.start = Date.now();
2116
+ let o = this.#d[t], l = this.#F[t];
2117
+ if (o && l) {
2118
+ let h = o - (this.#m.now() - l);
2119
+ n.ttl = h, n.start = Date.now();
2113
2120
  }
2114
2121
  }
2115
2122
  return this.#_ && (n.size = this.#_[t]), n;
@@ -2119,13 +2126,13 @@ var I = class u2 {
2119
2126
  for (let t of this.#A({ allowStale: true })) {
2120
2127
  let i = this.#i[t], s = this.#t[t], n = this.#e(s) ? s.__staleWhileFetching : s;
2121
2128
  if (n === void 0 || i === void 0) continue;
2122
- let r = { value: n };
2129
+ let o = { value: n };
2123
2130
  if (this.#d && this.#F) {
2124
- r.ttl = this.#d[t];
2125
- let h = this.#m.now() - this.#F[t];
2126
- r.start = Math.floor(Date.now() - h);
2131
+ o.ttl = this.#d[t];
2132
+ let l = this.#m.now() - this.#F[t];
2133
+ o.start = Math.floor(Date.now() - l);
2127
2134
  }
2128
- this.#_ && (r.size = this.#_[t]), e.unshift([i, r]);
2135
+ this.#_ && (o.size = this.#_[t]), e.unshift([i, o]);
2129
2136
  }
2130
2137
  return e;
2131
2138
  }
@@ -2146,30 +2153,30 @@ var I = class u2 {
2146
2153
  return s && S.hasSubscribers && S.publish(s), n;
2147
2154
  }
2148
2155
  #W(e, t, i, s) {
2149
- let { ttl: n = this.ttl, start: r, noDisposeOnSet: h = this.noDisposeOnSet, sizeCalculation: a = this.sizeCalculation, status: o } = i, d = this.#e(t);
2150
- if (t === void 0) return o && (o.set = "deleted"), this.delete(e), this;
2151
- let { noUpdateTTL: y = this.noUpdateTTL } = i;
2152
- o && !d && (o.value = t);
2153
- let _ = this.#N(e, t, i.size || 0, a, o);
2154
- if (this.maxEntrySize && _ > this.maxEntrySize) return this.#E(e, "set"), o && (o.set = "miss", o.maxEntrySizeExceeded = true), this;
2155
- let c = this.#n === 0 ? void 0 : this.#s.get(e);
2156
- if (c === void 0) c = this.#n === 0 ? this.#h : this.#y.length !== 0 ? this.#y.pop() : this.#n === this.#o ? this.#G(false) : this.#n, this.#i[c] = e, this.#t[c] = t, this.#s.set(e, c), this.#l[this.#h] = c, this.#u[c] = this.#h, this.#h = c, this.#n++, this.#j(c, _, o), o && (o.set = "add"), y = false, this.#x && !d && this.#O?.(t, e, "add");
2156
+ let { ttl: n = this.ttl, start: o, noDisposeOnSet: l = this.noDisposeOnSet, sizeCalculation: h = this.sizeCalculation, status: r } = i, c = this.#e(t);
2157
+ if (t === void 0) return r && (r.set = "deleted"), this.delete(e), this;
2158
+ let { noUpdateTTL: m = this.noUpdateTTL } = i;
2159
+ r && !c && (r.value = t);
2160
+ let _ = this.#N(e, t, i.size || 0, h, r);
2161
+ if (this.maxEntrySize && _ > this.maxEntrySize) return this.#E(e, "set"), r && (r.set = "miss", r.maxEntrySizeExceeded = true), this;
2162
+ let u = this.#n === 0 ? void 0 : this.#s.get(e);
2163
+ if (u === void 0) u = this.#n === 0 ? this.#h : this.#y.length !== 0 ? this.#y.pop() : this.#n === this.#o ? this.#G(false) : this.#n, this.#i[u] = e, this.#t[u] = t, this.#s.set(e, u), this.#l[this.#h] = u, this.#u[u] = this.#h, this.#h = u, this.#n++, this.#j(u, _, r), r && (r.set = "add"), m = false, this.#D && !c && this.#O?.(t, e, "add");
2157
2164
  else {
2158
- this.#L(c);
2159
- let g = this.#t[c];
2165
+ this.#L(u);
2166
+ let g = this.#t[u];
2160
2167
  if (t !== g) {
2161
- if (!h) if (this.#e(g)) {
2168
+ if (!l) if (this.#e(g)) {
2162
2169
  g !== s && g.__abortController.abort(new Error("replaced"));
2163
2170
  let { __staleWhileFetching: f } = g;
2164
2171
  f !== void 0 && f !== t && (this.#T && this.#S?.(f, e, "set"), this.#f && this.#r?.push([f, e, "set"]));
2165
2172
  } else this.#T && this.#S?.(g, e, "set"), this.#f && this.#r?.push([g, e, "set"]);
2166
- if (this.#R(c), this.#j(c, _, o), this.#t[c] = t, !d) {
2167
- let f = g && this.#e(g) ? g.__staleWhileFetching : g, b = f === void 0 ? "add" : t !== f ? "replace" : "update";
2168
- o && (o.set = b, f !== void 0 && (o.oldValue = f)), this.#x && this.onInsert?.(t, e, b);
2173
+ if (this.#x(u), this.#j(u, _, r), this.#t[u] = t, !c) {
2174
+ let f = g && this.#e(g) ? g.__staleWhileFetching : g, y = f === void 0 ? "add" : t !== f ? "replace" : "update";
2175
+ r && (r.set = y, f !== void 0 && (r.oldValue = f)), this.#D && this.onInsert?.(t, e, y);
2169
2176
  }
2170
- } else d || (o && (o.set = "update"), this.#x && this.onInsert?.(t, e, "update"));
2177
+ } else c || (r && (r.set = "update"), this.#D && this.onInsert?.(t, e, "update"));
2171
2178
  }
2172
- if (n !== 0 && !this.#d && this.#k(), this.#d && (y || this.#H(c, n, r), o && this.#v(o, c)), !h && this.#f && this.#r) {
2179
+ if (n !== 0 && !this.#d && this.#k(), this.#d && (m || this.#H(u, n, o), r && this.#v(r, u)), !l && this.#f && this.#r) {
2173
2180
  let g = this.#r, f;
2174
2181
  for (; f = g?.shift(); ) this.#w?.(...f);
2175
2182
  }
@@ -2193,8 +2200,8 @@ var I = class u2 {
2193
2200
  #G(e) {
2194
2201
  let t = this.#a, i = this.#i[t], s = this.#t[t], n = this.#e(s);
2195
2202
  n && s.__abortController.abort(new Error("evicted"));
2196
- let r = n ? s.__staleWhileFetching : s;
2197
- return (this.#T || this.#f) && r !== void 0 && (this.#T && this.#S?.(r, i, "evict"), this.#f && this.#r?.push([r, i, "evict"])), this.#R(t), this.#g?.[t] && (clearTimeout(this.#g[t]), this.#g[t] = void 0), e && (this.#i[t] = void 0, this.#t[t] = void 0, this.#y.push(t)), this.#n === 1 ? (this.#a = this.#h = 0, this.#y.length = 0) : this.#a = this.#l[t], this.#s.delete(i), this.#n--, t;
2203
+ let o = n ? s.__staleWhileFetching : s;
2204
+ return (this.#T || this.#f) && o !== void 0 && (this.#T && this.#S?.(o, i, "evict"), this.#f && this.#r?.push([o, i, "evict"])), this.#x(t), this.#g?.[t] && (clearTimeout(this.#g[t]), this.#g[t] = void 0), e && (this.#i[t] = void 0, this.#t[t] = void 0, this.#y.push(t)), this.#n === 1 ? (this.#a = this.#h = 0, this.#y.length = 0) : this.#a = this.#l[t], this.#s.delete(i), this.#n--, t;
2198
2205
  }
2199
2206
  has(e, t = {}) {
2200
2207
  let { status: i = S.hasSubscribers ? {} : void 0 } = t;
@@ -2205,15 +2212,15 @@ var I = class u2 {
2205
2212
  #Y(e, t = {}) {
2206
2213
  let { updateAgeOnHas: i = this.updateAgeOnHas, status: s } = t, n = this.#s.get(e);
2207
2214
  if (n !== void 0) {
2208
- let r = this.#t[n];
2209
- if (this.#e(r) && r.__staleWhileFetching === void 0) return false;
2215
+ let o = this.#t[n];
2216
+ if (this.#e(o) && o.__staleWhileFetching === void 0) return false;
2210
2217
  if (this.#p(n)) s && (s.has = "stale", this.#v(s, n));
2211
- else return i && this.#D(n), s && (s.has = "hit", this.#v(s, n)), true;
2218
+ else return i && this.#R(n), s && (s.has = "hit", this.#v(s, n)), true;
2212
2219
  } else s && (s.has = "miss");
2213
2220
  return false;
2214
2221
  }
2215
2222
  peek(e, t = {}) {
2216
- let { status: i = D() ? {} : void 0 } = t;
2223
+ let { status: i = R() ? {} : void 0 } = t;
2217
2224
  i && (i.op = "peek", i.key = e, i.cache = this), t.status = i;
2218
2225
  let s = this.#J(e, t);
2219
2226
  return S.hasSubscribers && S.publish(i), s;
@@ -2224,32 +2231,32 @@ var I = class u2 {
2224
2231
  i && (i.peek = n === void 0 ? "miss" : "stale");
2225
2232
  return;
2226
2233
  }
2227
- let r = this.#t[n], h = this.#e(r) ? r.__staleWhileFetching : r;
2228
- return i && (h !== void 0 ? (i.peek = "hit", i.value = h) : i.peek = "miss"), h;
2234
+ let o = this.#t[n], l = this.#e(o) ? o.__staleWhileFetching : o;
2235
+ return i && (l !== void 0 ? (i.peek = "hit", i.value = l) : i.peek = "miss"), l;
2229
2236
  }
2230
2237
  #P(e, t, i, s) {
2231
2238
  let n = t === void 0 ? void 0 : this.#t[t];
2232
2239
  if (this.#e(n)) return n;
2233
- let r = new AbortController(), { signal: h } = i;
2234
- h?.addEventListener("abort", () => r.abort(h.reason), { signal: r.signal });
2235
- let a = { signal: r.signal, options: i, context: s }, o = (f, b = false) => {
2236
- let { aborted: l } = r.signal, w = i.ignoreFetchAbort && f !== void 0, F = i.ignoreFetchAbort || !!(i.allowStaleOnFetchAbort && f !== void 0);
2237
- if (i.status && (l && !b ? (i.status.fetchAborted = true, i.status.fetchError = r.signal.reason, w && (i.status.fetchAbortIgnored = true)) : i.status.fetchResolved = true), l && !w && !b) return y(r.signal.reason, F);
2238
- let m = c, p = this.#t[t];
2239
- return (p === c || p === void 0 && w && b) && (f === void 0 ? m.__staleWhileFetching !== void 0 ? this.#t[t] = m.__staleWhileFetching : this.#E(e, "fetch") : (i.status && (i.status.fetchUpdated = true), this.#W(e, f, a.options, m))), f;
2240
- }, d = (f) => (i.status && (i.status.fetchRejected = true, i.status.fetchError = f), y(f, false)), y = (f, b) => {
2241
- let { aborted: l } = r.signal, w = l && i.allowStaleOnFetchAbort, F = w || i.allowStaleOnFetchRejection, m = F || i.noDeleteOnFetchRejection, p = c;
2242
- if (this.#t[t] === c && (!m || !b && p.__staleWhileFetching === void 0 ? this.#E(e, "fetch") : w || (this.#t[t] = p.__staleWhileFetching)), F) return i.status && p.__staleWhileFetching !== void 0 && (i.status.returnedStale = true), p.__staleWhileFetching;
2240
+ let o = new AbortController(), { signal: l } = i;
2241
+ l?.addEventListener("abort", () => o.abort(l.reason), { signal: o.signal });
2242
+ let h = { signal: o.signal, options: i, context: s }, r = (f, y = false) => {
2243
+ let { aborted: a } = o.signal, w = i.ignoreFetchAbort && f !== void 0, F = i.ignoreFetchAbort || !!(i.allowStaleOnFetchAbort && f !== void 0);
2244
+ if (i.status && (a && !y ? (i.status.fetchAborted = true, i.status.fetchError = o.signal.reason, w && (i.status.fetchAbortIgnored = true)) : i.status.fetchResolved = true), a && !w && !y) return m(o.signal.reason, F);
2245
+ let b = u, p = this.#t[t];
2246
+ return (p === u || p === void 0 && w && y) && (f === void 0 ? b.__staleWhileFetching !== void 0 ? this.#t[t] = b.__staleWhileFetching : this.#E(e, "fetch") : (i.status && (i.status.fetchUpdated = true), this.#W(e, f, h.options, b))), f;
2247
+ }, c = (f) => (i.status && (i.status.fetchRejected = true, i.status.fetchError = f), m(f, false)), m = (f, y) => {
2248
+ let { aborted: a } = o.signal, w = a && i.allowStaleOnFetchAbort, F = w || i.allowStaleOnFetchRejection, b = F || i.noDeleteOnFetchRejection, p = u;
2249
+ if (this.#t[t] === u && (!b || !y && p.__staleWhileFetching === void 0 ? this.#E(e, "fetch") : w || (this.#t[t] = p.__staleWhileFetching)), F) return i.status && p.__staleWhileFetching !== void 0 && (i.status.returnedStale = true), p.__staleWhileFetching;
2243
2250
  if (p.__returned === p) throw f;
2244
- }, _ = (f, b) => {
2245
- let l = this.#M?.(e, n, a);
2246
- r.signal.addEventListener("abort", () => {
2247
- (!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (f(void 0), i.allowStaleOnFetchAbort && (f = (w) => o(w, true)));
2248
- }), l && l instanceof Promise ? l.then((w) => f(w === void 0 ? void 0 : w), b) : l !== void 0 && f(l);
2251
+ }, _ = (f, y) => {
2252
+ let a = this.#M?.(e, n, h);
2253
+ o.signal.addEventListener("abort", () => {
2254
+ (!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (f(void 0), i.allowStaleOnFetchAbort && (f = (w) => r(w, true)));
2255
+ }), a && a instanceof Promise ? a.then((w) => f(w === void 0 ? void 0 : w), y) : a !== void 0 && f(a);
2249
2256
  };
2250
2257
  i.status && (i.status.fetchDispatched = true);
2251
- let c = new Promise(_).then(o, d), g = Object.assign(c, { __abortController: r, __staleWhileFetching: n, __returned: void 0 });
2252
- return t === void 0 ? (this.#W(e, g, { ...a.options, status: void 0 }), t = this.#s.get(e)) : this.#t[t] = g, g;
2258
+ let u = new Promise(_).then(r, c), g = Object.assign(u, { __abortController: o, __staleWhileFetching: n, __returned: void 0 });
2259
+ return t === void 0 ? (this.#W(e, g, { ...h.options, status: void 0 }), t = this.#s.get(e)) : this.#t[t] = g, g;
2253
2260
  }
2254
2261
  #e(e) {
2255
2262
  if (!this.#U) return false;
@@ -2257,34 +2264,34 @@ var I = class u2 {
2257
2264
  return !!t && t instanceof Promise && t.hasOwnProperty("__staleWhileFetching") && t.__abortController instanceof AbortController;
2258
2265
  }
2259
2266
  fetch(e, t = {}) {
2260
- let i = W.hasSubscribers, { status: s = D() ? {} : void 0 } = t;
2267
+ let i = W.hasSubscribers, { status: s = R() ? {} : void 0 } = t;
2261
2268
  t.status = s, s && t.context && (s.context = t.context);
2262
2269
  let n = this.#B(e, t);
2263
2270
  return s && i && (s.trace = true, W.tracePromise(() => n, s).catch(() => {
2264
2271
  })), n;
2265
2272
  }
2266
2273
  async #B(e, t = {}) {
2267
- let { allowStale: i = this.allowStale, updateAgeOnGet: s = this.updateAgeOnGet, noDeleteOnStaleGet: n = this.noDeleteOnStaleGet, ttl: r = this.ttl, noDisposeOnSet: h = this.noDisposeOnSet, size: a = 0, sizeCalculation: o = this.sizeCalculation, noUpdateTTL: d = this.noUpdateTTL, noDeleteOnFetchRejection: y = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection: _ = this.allowStaleOnFetchRejection, ignoreFetchAbort: c = this.ignoreFetchAbort, allowStaleOnFetchAbort: g = this.allowStaleOnFetchAbort, context: f, forceRefresh: b = false, status: l, signal: w } = t;
2268
- if (l && (l.op = "fetch", l.key = e, b && (l.forceRefresh = true), l.cache = this), !this.#U) return l && (l.fetch = "get"), this.#C(e, { allowStale: i, updateAgeOnGet: s, noDeleteOnStaleGet: n, status: l });
2269
- let F = { allowStale: i, updateAgeOnGet: s, noDeleteOnStaleGet: n, ttl: r, noDisposeOnSet: h, size: a, sizeCalculation: o, noUpdateTTL: d, noDeleteOnFetchRejection: y, allowStaleOnFetchRejection: _, allowStaleOnFetchAbort: g, ignoreFetchAbort: c, status: l, signal: w }, m = this.#s.get(e);
2270
- if (m === void 0) {
2271
- l && (l.fetch = "miss");
2272
- let p = this.#P(e, m, F, f);
2274
+ let { allowStale: i = this.allowStale, updateAgeOnGet: s = this.updateAgeOnGet, noDeleteOnStaleGet: n = this.noDeleteOnStaleGet, ttl: o = this.ttl, noDisposeOnSet: l = this.noDisposeOnSet, size: h = 0, sizeCalculation: r = this.sizeCalculation, noUpdateTTL: c = this.noUpdateTTL, noDeleteOnFetchRejection: m = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection: _ = this.allowStaleOnFetchRejection, ignoreFetchAbort: u = this.ignoreFetchAbort, allowStaleOnFetchAbort: g = this.allowStaleOnFetchAbort, context: f, forceRefresh: y = false, status: a, signal: w } = t;
2275
+ if (a && (a.op = "fetch", a.key = e, y && (a.forceRefresh = true), a.cache = this), !this.#U) return a && (a.fetch = "get"), this.#C(e, { allowStale: i, updateAgeOnGet: s, noDeleteOnStaleGet: n, status: a });
2276
+ let F = { allowStale: i, updateAgeOnGet: s, noDeleteOnStaleGet: n, ttl: o, noDisposeOnSet: l, size: h, sizeCalculation: r, noUpdateTTL: c, noDeleteOnFetchRejection: m, allowStaleOnFetchRejection: _, allowStaleOnFetchAbort: g, ignoreFetchAbort: u, status: a, signal: w }, b = this.#s.get(e);
2277
+ if (b === void 0) {
2278
+ a && (a.fetch = "miss");
2279
+ let p = this.#P(e, b, F, f);
2273
2280
  return p.__returned = p;
2274
2281
  } else {
2275
- let p = this.#t[m];
2282
+ let p = this.#t[b];
2276
2283
  if (this.#e(p)) {
2277
2284
  let v = i && p.__staleWhileFetching !== void 0;
2278
- return l && (l.fetch = "inflight", v && (l.returnedStale = true)), v ? p.__staleWhileFetching : p.__returned = p;
2285
+ return a && (a.fetch = "inflight", v && (a.returnedStale = true)), v ? p.__staleWhileFetching : p.__returned = p;
2279
2286
  }
2280
- let A = this.#p(m);
2281
- if (!b && !A) return l && (l.fetch = "hit"), this.#L(m), s && this.#D(m), l && this.#v(l, m), p;
2282
- let z = this.#P(e, m, F, f), E = z.__staleWhileFetching !== void 0 && i;
2283
- return l && (l.fetch = A ? "stale" : "refresh", E && A && (l.returnedStale = true)), E ? z.__staleWhileFetching : z.__returned = z;
2287
+ let A = this.#p(b);
2288
+ if (!y && !A) return a && (a.fetch = "hit"), this.#L(b), s && this.#R(b), a && this.#v(a, b), p;
2289
+ let z = this.#P(e, b, F, f), E = z.__staleWhileFetching !== void 0 && i;
2290
+ return a && (a.fetch = A ? "stale" : "refresh", E && A && (a.returnedStale = true)), E ? z.__staleWhileFetching : z.__returned = z;
2284
2291
  }
2285
2292
  }
2286
2293
  forceFetch(e, t = {}) {
2287
- let i = W.hasSubscribers, { status: s = D() ? {} : void 0 } = t;
2294
+ let i = W.hasSubscribers, { status: s = R() ? {} : void 0 } = t;
2288
2295
  t.status = s, s && t.context && (s.context = t.context);
2289
2296
  let n = this.#K(e, t);
2290
2297
  return s && i && (s.trace = true, W.tracePromise(() => n, s).catch(() => {
@@ -2304,12 +2311,12 @@ var I = class u2 {
2304
2311
  #Q(e, t = {}) {
2305
2312
  let i = this.#I;
2306
2313
  if (!i) throw new Error("no memoMethod provided to constructor");
2307
- let { context: s, status: n, forceRefresh: r, ...h } = t;
2308
- n && r && (n.forceRefresh = true);
2309
- let a = this.#C(e, h), o = r || a === void 0;
2310
- if (n && (n.memo = o ? "miss" : "hit", o || (n.value = a)), !o) return a;
2311
- let d = i(e, a, { options: h, context: s });
2312
- return n && (n.value = d), this.#W(e, d, h), d;
2314
+ let { context: s, status: n, forceRefresh: o, ...l } = t;
2315
+ n && o && (n.forceRefresh = true);
2316
+ let h = this.#C(e, l), r = o || h === void 0;
2317
+ if (n && (n.memo = r ? "miss" : "hit", r || (n.value = h)), !r) return h;
2318
+ let c = i(e, h, { options: l, context: s });
2319
+ return n && (n.value = c), this.#W(e, c, l), c;
2313
2320
  }
2314
2321
  get(e, t = {}) {
2315
2322
  let { status: i = S.hasSubscribers ? {} : void 0 } = t;
@@ -2318,13 +2325,13 @@ var I = class u2 {
2318
2325
  return i && (s !== void 0 && (i.value = s), S.hasSubscribers && S.publish(i)), s;
2319
2326
  }
2320
2327
  #C(e, t = {}) {
2321
- let { allowStale: i = this.allowStale, updateAgeOnGet: s = this.updateAgeOnGet, noDeleteOnStaleGet: n = this.noDeleteOnStaleGet, status: r } = t, h = this.#s.get(e);
2322
- if (h === void 0) {
2323
- r && (r.get = "miss");
2328
+ let { allowStale: i = this.allowStale, updateAgeOnGet: s = this.updateAgeOnGet, noDeleteOnStaleGet: n = this.noDeleteOnStaleGet, status: o } = t, l = this.#s.get(e);
2329
+ if (l === void 0) {
2330
+ o && (o.get = "miss");
2324
2331
  return;
2325
2332
  }
2326
- let a = this.#t[h], o = this.#e(a);
2327
- return r && this.#v(r, h), this.#p(h) ? o ? (r && (r.get = "stale-fetching"), i && a.__staleWhileFetching !== void 0 ? (r && (r.returnedStale = true), a.__staleWhileFetching) : void 0) : (n || this.#E(e, "expire"), r && (r.get = "stale"), i ? (r && (r.returnedStale = true), a) : void 0) : (r && (r.get = o ? "fetching" : "hit"), this.#L(h), s && this.#D(h), o ? a.__staleWhileFetching : a);
2333
+ let h = this.#t[l], r = this.#e(h);
2334
+ return o && this.#v(o, l), this.#p(l) ? r ? (o && (o.get = "stale-fetching"), i && h.__staleWhileFetching !== void 0 ? (o && (o.returnedStale = true), h.__staleWhileFetching) : void 0) : (n || this.#E(e, "expire"), o && (o.get = "stale"), i ? (o && (o.returnedStale = true), h) : void 0) : (o && (o.get = r ? "fetching" : "hit"), this.#L(l), s && this.#R(l), r ? h.__staleWhileFetching : h);
2328
2335
  }
2329
2336
  #$(e, t) {
2330
2337
  this.#u[t] = e, this.#l[e] = t;
@@ -2340,17 +2347,17 @@ var I = class u2 {
2340
2347
  let i = false;
2341
2348
  if (this.#n !== 0) {
2342
2349
  let s = this.#s.get(e);
2343
- if (s !== void 0) if (this.#g?.[s] && (clearTimeout(this.#g?.[s]), this.#g[s] = void 0), i = true, this.#n === 1) this.#q(t);
2350
+ if (s !== void 0) if (this.#g?.[s] && (clearTimeout(this.#g[s]), this.#g[s] = void 0), i = true, this.#n === 1) this.#q(t);
2344
2351
  else {
2345
- this.#R(s);
2352
+ this.#x(s);
2346
2353
  let n = this.#t[s];
2347
2354
  if (this.#e(n) ? n.__abortController.abort(new Error("deleted")) : (this.#T || this.#f) && (this.#T && this.#S?.(n, e, t), this.#f && this.#r?.push([n, e, t])), this.#s.delete(e), this.#i[s] = void 0, this.#t[s] = void 0, s === this.#h) this.#h = this.#u[s];
2348
2355
  else if (s === this.#a) this.#a = this.#l[s];
2349
2356
  else {
2350
- let r = this.#u[s];
2351
- this.#l[r] = this.#l[s];
2352
- let h = this.#l[s];
2353
- this.#u[h] = this.#u[s];
2357
+ let o = this.#u[s];
2358
+ this.#l[o] = this.#l[s];
2359
+ let l = this.#l[s];
2360
+ this.#u[l] = this.#u[s];
2354
2361
  }
2355
2362
  this.#n--, this.#y.push(s);
2356
2363
  }
package/dist/index.js CHANGED
@@ -4962,7 +4962,8 @@ function findSimilarPatterns(code) {
4962
4962
  // src/tools/profiles.ts
4963
4963
  import {
4964
4964
  tryGetProfile,
4965
- getRegisteredLanguages
4965
+ getRegisteredLanguages,
4966
+ getKeywordTranslations
4966
4967
  } from "@lokascript/semantic";
4967
4968
  var profileTools = [
4968
4969
  {
@@ -5199,12 +5200,15 @@ function handleGetKeywordTranslations(args) {
5199
5200
  const keyword = args.keyword;
5200
5201
  const targetLanguages = args.languages;
5201
5202
  const languages = targetLanguages || getRegisteredLanguages();
5202
- const translations = {};
5203
+ const resolved = /* @__PURE__ */ new Map();
5203
5204
  for (const lang of languages) {
5204
5205
  const profile = tryGetProfile(lang);
5205
- if (!profile) continue;
5206
- const kw = profile.keywords?.[keyword];
5207
- translations[lang] = formatKeyword(kw);
5206
+ if (profile) resolved.set(lang, profile.code);
5207
+ }
5208
+ const byCode = getKeywordTranslations(keyword, [...new Set(resolved.values())]);
5209
+ const translations = {};
5210
+ for (const [lang, code] of resolved) {
5211
+ translations[lang] = formatKeyword(byCode[code]);
5208
5212
  }
5209
5213
  return {
5210
5214
  content: [
@@ -7973,7 +7977,7 @@ function createInlineExtractor() {
7973
7977
  const fs = await import("fs");
7974
7978
  const path = await import("path");
7975
7979
  const crypto = await import("crypto");
7976
- const { glob } = await import("./esm-RQFF6QRX.js");
7980
+ const { glob } = await import("./esm-YPGJSQ36.js");
7977
7981
  const globs = [
7978
7982
  "**/*.html",
7979
7983
  "**/*.htm",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperfixi/mcp-server",
3
- "version": "2.5.1",
3
+ "version": "2.7.0",
4
4
  "description": "Model Context Protocol server for HyperFixi hyperscript development",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,11 +9,11 @@
9
9
  },
10
10
  "scripts": {
11
11
  "build": "tsup src/index.ts --format esm --dts",
12
- "prebuild": "../../scripts/ensure-fresh.sh ../compilation-service ../semantic ../framework ../intent ../domain-config ../planner",
12
+ "prebuild": "../../scripts/ensure-fresh.sh ../compilation-service ../semantic ../framework ../intent ../domain-config ../domain-learn ../planner",
13
13
  "start": "node dist/index.js",
14
14
  "dev": "tsx src/index.ts",
15
15
  "dev:watch": "tsx watch src/index.ts",
16
- "pretest": "../../scripts/ensure-fresh.sh ../compilation-service ../semantic ../framework ../intent ../domain-config ../planner",
16
+ "pretest": "../../scripts/ensure-fresh.sh ../compilation-service ../semantic ../framework ../intent ../domain-config ../domain-learn ../planner",
17
17
  "test": "vitest",
18
18
  "typecheck": "tsc --noEmit",
19
19
  "service:setup": "echo 'Copy com.lokascript.mcp-server.plist.example to com.lokascript.mcp-server.plist and update paths, then run service:install'",
@@ -24,7 +24,7 @@
24
24
  "service:restart": "launchctl stop com.lokascript.mcp-server && launchctl start com.lokascript.mcp-server",
25
25
  "service:status": "launchctl list | grep lokascript || echo 'Not running'",
26
26
  "service:logs": "tail -f logs/stdout.log logs/stderr.log",
27
- "test:check": "vitest run --reporter=dot 2>&1 | tail -5"
27
+ "test:check": "VITEST_QUIET=1 bash ../../scripts/vitest-run.sh --reporter=dot"
28
28
  },
29
29
  "keywords": [
30
30
  "mcp",
@@ -37,30 +37,31 @@
37
37
  "author": "LokaScript Contributors",
38
38
  "license": "MIT",
39
39
  "dependencies": {
40
- "@hyperfixi/patterns-reference": "^2.5.1",
41
- "@lokascript/compilation-service": "^2.5.1",
42
- "@lokascript/domain-config": "^2.5.1",
43
- "@lokascript/framework": "^2.5.1",
44
- "@lokascript/planner": "^2.5.1",
45
- "@lokascript/semantic": "^2.5.1",
40
+ "@hyperfixi/patterns-reference": "^2.7.0",
41
+ "@lokascript/compilation-service": "^2.7.0",
42
+ "@lokascript/domain-config": "^2.7.0",
43
+ "@lokascript/framework": "^2.7.0",
44
+ "@lokascript/planner": "^2.7.0",
45
+ "@lokascript/semantic": "^2.7.0",
46
46
  "@modelcontextprotocol/sdk": "^1.25.0",
47
47
  "yaml": "^2.8.3"
48
48
  },
49
49
  "peerDependencies": {
50
- "@hyperfixi/core": "^2.5.1",
51
- "@hyperfixi/patterns-reference": "^2.5.1",
52
- "@hyperfixi/server-bridge": "^2.5.1",
53
- "@lokascript/compilation-service": "^2.5.1",
54
- "@lokascript/domain-bdd": "^2.5.1",
55
- "@lokascript/domain-behaviorspec": "^2.5.1",
56
- "@lokascript/domain-flow": "^2.5.1",
57
- "@lokascript/domain-jsx": "^2.5.1",
58
- "@lokascript/domain-llm": "^2.5.1",
59
- "@lokascript/domain-sql": "^2.5.1",
60
- "@lokascript/domain-todo": "^2.5.1",
61
- "@lokascript/domain-voice": "^2.5.1",
62
- "@lokascript/framework": "^2.5.1",
63
- "@lokascript/semantic": "^2.5.1"
50
+ "@hyperfixi/core": "^2.7.0",
51
+ "@hyperfixi/patterns-reference": "^2.7.0",
52
+ "@hyperfixi/server-bridge": "^2.7.0",
53
+ "@lokascript/compilation-service": "^2.7.0",
54
+ "@lokascript/domain-bdd": "^2.7.0",
55
+ "@lokascript/domain-behaviorspec": "^2.7.0",
56
+ "@lokascript/domain-flow": "^2.7.0",
57
+ "@lokascript/domain-jsx": "^2.7.0",
58
+ "@lokascript/domain-learn": "^2.7.0",
59
+ "@lokascript/domain-llm": "^2.7.0",
60
+ "@lokascript/domain-sql": "^2.7.0",
61
+ "@lokascript/domain-todo": "^2.7.0",
62
+ "@lokascript/domain-voice": "^2.7.0",
63
+ "@lokascript/framework": "^2.7.0",
64
+ "@lokascript/semantic": "^2.7.0"
64
65
  },
65
66
  "peerDependenciesMeta": {
66
67
  "@lokascript/compilation-service": {
@@ -90,6 +91,9 @@
90
91
  "@lokascript/domain-jsx": {
91
92
  "optional": true
92
93
  },
94
+ "@lokascript/domain-learn": {
95
+ "optional": true
96
+ },
93
97
  "@lokascript/domain-flow": {
94
98
  "optional": true
95
99
  },
@@ -107,20 +111,21 @@
107
111
  }
108
112
  },
109
113
  "devDependencies": {
110
- "@hyperfixi/core": "^2.5.1",
111
- "@hyperfixi/patterns-reference": "^2.5.1",
112
- "@hyperfixi/server-bridge": "^2.5.1",
113
- "@lokascript/compilation-service": "^2.5.1",
114
- "@lokascript/domain-bdd": "^2.5.1",
115
- "@lokascript/domain-behaviorspec": "^2.5.1",
116
- "@lokascript/domain-flow": "^2.5.1",
117
- "@lokascript/domain-jsx": "^2.5.1",
118
- "@lokascript/domain-llm": "^2.5.1",
119
- "@lokascript/domain-sql": "^2.5.1",
120
- "@lokascript/domain-todo": "^2.5.1",
121
- "@lokascript/domain-voice": "^2.5.1",
122
- "@lokascript/framework": "^2.5.1",
123
- "@lokascript/semantic": "^2.5.1",
114
+ "@hyperfixi/core": "^2.7.0",
115
+ "@hyperfixi/patterns-reference": "^2.7.0",
116
+ "@hyperfixi/server-bridge": "^2.7.0",
117
+ "@lokascript/compilation-service": "^2.7.0",
118
+ "@lokascript/domain-bdd": "^2.7.0",
119
+ "@lokascript/domain-behaviorspec": "^2.7.0",
120
+ "@lokascript/domain-flow": "^2.7.0",
121
+ "@lokascript/domain-jsx": "^2.7.0",
122
+ "@lokascript/domain-learn": "^2.7.0",
123
+ "@lokascript/domain-llm": "^2.7.0",
124
+ "@lokascript/domain-sql": "^2.7.0",
125
+ "@lokascript/domain-todo": "^2.7.0",
126
+ "@lokascript/domain-voice": "^2.7.0",
127
+ "@lokascript/framework": "^2.7.0",
128
+ "@lokascript/semantic": "^2.7.0",
124
129
  "@types/node": "^20.0.0",
125
130
  "tsup": "^8.0.0",
126
131
  "tsx": "^4.0.0",