micro-models-agent 0.2.53 → 0.2.54

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 (69) hide show
  1. package/README.md +354 -354
  2. package/dist/agent/loop.d.ts.map +1 -1
  3. package/dist/agent/loop.js +8 -3
  4. package/dist/agent/loop.js.map +1 -1
  5. package/dist/llm/openai-compat.d.ts.map +1 -1
  6. package/dist/llm/openai-compat.js +47 -1
  7. package/dist/llm/openai-compat.js.map +1 -1
  8. package/dist/skills/builtin/agent-test/SKILL.md +68 -68
  9. package/dist/skills/builtin/grill-me/SKILL.md +46 -46
  10. package/dist/ui/ink/components/App.js.map +1 -1
  11. package/dist/ui/ink/components/PromptInput.js.map +1 -1
  12. package/dist/ui/ink/components/SelectInput.js.map +1 -1
  13. package/package.json +4 -4
  14. package/dist/async-map.d.ts +0 -6
  15. package/dist/async-map.d.ts.map +0 -1
  16. package/dist/async-map.js +0 -16
  17. package/dist/async-map.js.map +0 -1
  18. package/dist/blog-api/types/index.d.ts +0 -2
  19. package/dist/blog-api/types/index.d.ts.map +0 -1
  20. package/dist/blog-api/types/index.js +0 -2
  21. package/dist/blog-api/types/index.js.map +0 -1
  22. package/dist/examples.d.ts +0 -22
  23. package/dist/examples.d.ts.map +0 -1
  24. package/dist/examples.js +0 -45
  25. package/dist/examples.js.map +0 -1
  26. package/dist/fibonacci.d.ts +0 -19
  27. package/dist/fibonacci.d.ts.map +0 -1
  28. package/dist/fibonacci.js +0 -61
  29. package/dist/fibonacci.js.map +0 -1
  30. package/dist/repl.d.ts +0 -5
  31. package/dist/repl.d.ts.map +0 -1
  32. package/dist/repl.js +0 -472
  33. package/dist/repl.js.map +0 -1
  34. package/dist/sort.d.ts +0 -8
  35. package/dist/sort.d.ts.map +0 -1
  36. package/dist/sort.js +0 -36
  37. package/dist/sort.js.map +0 -1
  38. package/dist/stack.d.ts +0 -9
  39. package/dist/stack.d.ts.map +0 -1
  40. package/dist/stack.js +0 -22
  41. package/dist/stack.js.map +0 -1
  42. package/dist/test-run.d.ts +0 -2
  43. package/dist/test-run.d.ts.map +0 -1
  44. package/dist/test-run.js +0 -13
  45. package/dist/test-run.js.map +0 -1
  46. package/dist/ui/components/diff-view.d.ts +0 -8
  47. package/dist/ui/components/diff-view.d.ts.map +0 -1
  48. package/dist/ui/components/diff-view.js +0 -25
  49. package/dist/ui/components/diff-view.js.map +0 -1
  50. package/dist/ui/double-press.d.ts +0 -9
  51. package/dist/ui/double-press.d.ts.map +0 -1
  52. package/dist/ui/double-press.js +0 -18
  53. package/dist/ui/double-press.js.map +0 -1
  54. package/dist/ui/opentui-renderer.d.ts +0 -53
  55. package/dist/ui/opentui-renderer.d.ts.map +0 -1
  56. package/dist/ui/opentui-renderer.js +0 -463
  57. package/dist/ui/opentui-renderer.js.map +0 -1
  58. package/dist/utils/memoize.d.ts +0 -14
  59. package/dist/utils/memoize.d.ts.map +0 -1
  60. package/dist/utils/memoize.js +0 -51
  61. package/dist/utils/memoize.js.map +0 -1
  62. package/dist/utils/types.d.ts +0 -6
  63. package/dist/utils/types.d.ts.map +0 -1
  64. package/dist/utils/types.js +0 -2
  65. package/dist/utils/types.js.map +0 -1
  66. package/dist/utils.d.ts +0 -22
  67. package/dist/utils.d.ts.map +0 -1
  68. package/dist/utils.js +0 -81
  69. package/dist/utils.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "micro-models-agent",
3
- "version": "0.2.53",
3
+ "version": "0.2.54",
4
4
  "description": "Micro Models Agent (MMA) — LLM agent harness for small models (Qwen3.5-9B, 32K-64K context)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -14,7 +14,7 @@
14
14
  "dist/skills/builtin/"
15
15
  ],
16
16
  "engines": {
17
- "node": ">=18"
17
+ "node": ">=20"
18
18
  },
19
19
  "scripts": {
20
20
  "mma": "bun run src/index.ts",
@@ -31,12 +31,12 @@
31
31
  "commander": "^12.0.0",
32
32
  "esprima": "^4.0.1",
33
33
  "execa": "^9.6.1",
34
- "ink": "^5.2.1",
34
+ "ink": "^6.0.0",
35
35
  "ink-markdown-es": "^1.4.0",
36
36
  "js-tiktoken": "^1.0.0",
37
37
  "jsonrepair": "^3.15.0",
38
38
  "picocolors": "^1.1.1",
39
- "react": "^18.3.1"
39
+ "react": "^19.0.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/esprima": "^4.0.6",
@@ -1,6 +0,0 @@
1
- /**
2
- * Применяет асинхронную функцию ко всем элементам массива параллельно.
3
- * Все промпты выполняются одновременно, возвращает Promise, решающий по первому.
4
- */
5
- export declare function asyncMap<T, R>(array: readonly T[], fn: (item: T) => Promise<R>): Promise<R[]>;
6
- //# sourceMappingURL=async-map.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"async-map.d.ts","sourceRoot":"","sources":["../src/async-map.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EACjC,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,EAAE,CAAC,CAad"}
package/dist/async-map.js DELETED
@@ -1,16 +0,0 @@
1
- 'use strict';
2
- /**
3
- * Применяет асинхронную функцию ко всем элементам массива параллельно.
4
- * Все промпты выполняются одновременно, возвращает Promise, решающий по первому.
5
- */
6
- export async function asyncMap(array, fn) {
7
- const results = new Array(array.length);
8
- // Запускаем все промпты параллельно
9
- await Promise.all(array.map((item, index) => {
10
- return fn(item).then((result) => {
11
- results[index] = result;
12
- });
13
- }));
14
- return results;
15
- }
16
- //# sourceMappingURL=async-map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"async-map.js","sourceRoot":"","sources":["../src/async-map.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAmB,EACnB,EAA2B;IAE3B,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE5C,oCAAoC;IACpC,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACxB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blog-api/types/index.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blog-api/types/index.ts"],"names":[],"mappings":""}
@@ -1,22 +0,0 @@
1
- /**
2
- * Пример рекурсивных функций для демонстрации
3
- */
4
- export declare function quickSort(arr: number[]): number[];
5
- /**
6
- * Рекурсивное умножение (без оператора *)
7
- */
8
- export declare function multiply(a: number, b: number): number;
9
- /**
10
- * Рекурсивная генерация чисел Фибоначчи (классическая)
11
- */
12
- export declare function fibonacciClassic(n: number): number;
13
- /**
14
- * Рекурсивный поиск в глубину для дерева
15
- */
16
- interface Node<T> {
17
- value: T;
18
- children?: Node<T>[];
19
- }
20
- export declare function traverseTree<T>(node: Node<T>, callback: (value: T, node: Node<T>) => void): void;
21
- export {};
22
- //# sourceMappingURL=examples.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CASjD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CASrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;GAEG;AACH,UAAU,IAAI,CAAC,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,QAUzF"}
package/dist/examples.js DELETED
@@ -1,45 +0,0 @@
1
- /**
2
- * Пример рекурсивных функций для демонстрации
3
- */
4
- export function quickSort(arr) {
5
- if (arr.length <= 1)
6
- return arr;
7
- const pivot = arr[arr.length - 1];
8
- const left = arr.filter(x => x < pivot);
9
- const middle = arr.filter(x => x === pivot);
10
- const right = arr.filter(x => x > pivot);
11
- return [...quickSort(left), ...middle, ...quickSort(right)];
12
- }
13
- /**
14
- * Рекурсивное умножение (без оператора *)
15
- */
16
- export function multiply(a, b) {
17
- if (b === 0)
18
- return 0;
19
- if (b < 0)
20
- return -multiply(a, -b);
21
- let sum = 0;
22
- for (let i = 0; i < b; i++) {
23
- sum += a;
24
- }
25
- return sum;
26
- }
27
- /**
28
- * Рекурсивная генерация чисел Фибоначчи (классическая)
29
- */
30
- export function fibonacciClassic(n) {
31
- if (n <= 1)
32
- return n;
33
- return fibonacciClassic(n - 1) + fibonacciClassic(n - 2);
34
- }
35
- export function traverseTree(node, callback) {
36
- if (!node)
37
- return;
38
- callback(node.value, node);
39
- if (node.children) {
40
- for (const child of node.children) {
41
- traverseTree(child, callback);
42
- }
43
- }
44
- }
45
- //# sourceMappingURL=examples.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"examples.js","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,SAAS,CAAC,GAAa;IACrC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAEhC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAEzC,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACrB,OAAO,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC;AAUD,MAAM,UAAU,YAAY,CAAI,IAAa,EAAE,QAA2C;IACxF,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Вычисляет n-е число Фибоначчи
3
- * @param n - номер позиции (0-based)
4
- * @returns значение числа Фибоначчи
5
- */
6
- export declare function fibonacci(n: number): number;
7
- /**
8
- * Возвращает массив чисел Фибоначчи от 0 до n
9
- * @param n - количество элементов в массиве
10
- * @returns массив с числами Фибоначчи
11
- */
12
- export declare function fibonacciSequence(n: number): number[];
13
- /**
14
- * Вычисляет n-е число Фибоначчи с мемоизацией для O(1) времени доступа
15
- * @param n - номер позиции
16
- * @returns значение числа Фибоначчи
17
- */
18
- export declare function fibonacciMemoized(n: number): number;
19
- //# sourceMappingURL=fibonacci.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fibonacci.d.ts","sourceRoot":"","sources":["../src/fibonacci.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAe3C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CASrD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBnD"}
package/dist/fibonacci.js DELETED
@@ -1,61 +0,0 @@
1
- 'use strict';
2
- /**
3
- * Вычисляет n-е число Фибоначчи
4
- * @param n - номер позиции (0-based)
5
- * @returns значение числа Фибоначчи
6
- */
7
- export function fibonacci(n) {
8
- if (n < 0) {
9
- throw new Error('n должен быть не менее 0');
10
- }
11
- if (n === 0)
12
- return 0;
13
- if (n === 1)
14
- return 1;
15
- let prev = 0;
16
- let curr = 1;
17
- for (let i = 2; i <= n; i++) {
18
- const next = prev + curr;
19
- prev = curr;
20
- curr = next;
21
- }
22
- return curr;
23
- }
24
- /**
25
- * Возвращает массив чисел Фибоначчи от 0 до n
26
- * @param n - количество элементов в массиве
27
- * @returns массив с числами Фибоначчи
28
- */
29
- export function fibonacciSequence(n) {
30
- if (n < 0) {
31
- throw new Error('n должен быть не менее 0');
32
- }
33
- const result = [];
34
- for (let i = 0; i < n; i++) {
35
- result.push(fibonacci(i));
36
- }
37
- return result;
38
- }
39
- /**
40
- * Вычисляет n-е число Фибоначчи с мемоизацией для O(1) времени доступа
41
- * @param n - номер позиции
42
- * @returns значение числа Фибоначчи
43
- */
44
- export function fibonacciMemoized(n) {
45
- const memo = new Map();
46
- function fib(n) {
47
- if (memo.has(n))
48
- return memo.get(n);
49
- if (n < 0)
50
- throw new Error('n должен быть не менее 0');
51
- if (n === 0 || n === 1) {
52
- memo.set(n, n);
53
- return n;
54
- }
55
- const result = fib(n - 1) + fib(n - 2);
56
- memo.set(n, result);
57
- return result;
58
- }
59
- return fib(n);
60
- }
61
- //# sourceMappingURL=fibonacci.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fibonacci.js","sourceRoot":"","sources":["../src/fibonacci.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEtB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC;QACZ,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAS;IACzC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAS;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvC,SAAS,GAAG,CAAC,CAAS;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC"}
package/dist/repl.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import type { LLMProvider } from './llm/provider.js';
2
- import { ToolRegistry } from './tools/registry.js';
3
- import type { OutputRenderer } from './ui/renderer.js';
4
- export declare function runRepl(provider: LLMProvider, registry: ToolRegistry, modelLabel: string, renderer: OutputRenderer): Promise<void>;
5
- //# sourceMappingURL=repl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA4SvD,wBAAsB,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA8KxI"}