reasonix 0.24.1 → 0.25.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reasonix",
3
- "version": "0.24.1",
3
+ "version": "0.25.0",
4
4
  "description": "DeepSeek-native coding agent: cache-first loop, flash-first cost control, tool-call repair.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,77 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- CharPool,
4
- HyperlinkPool,
5
- StylePool,
6
- ink_compat_exports,
7
- mount,
8
- useKeystroke
9
- } from "./chunk-V3DLUJY6.js";
10
- import "./chunk-2H7UOFLK.js";
11
-
12
- // src/cli/commands/banner-demo.tsx
13
- import React from "react";
14
- var BRAND = "#79c0ff";
15
- var FAINT = "#6e7681";
16
- var ACCENT = "#d2a8ff";
17
- var BOX_INNER_WIDTH = 35;
18
- var HINTS = ["/help", "/init", "/memory", "/cost"];
19
- function centerInside(text, pad) {
20
- if (text.length >= pad) return text;
21
- const left = Math.floor((pad - text.length) / 2);
22
- const right = pad - text.length - left;
23
- return `${" ".repeat(left)}${text}${" ".repeat(right)}`;
24
- }
25
- function Banner({ onExit }) {
26
- const { stdout } = ink_compat_exports.useStdout();
27
- const cols = stdout.columns;
28
- const boxWidth = BOX_INNER_WIDTH + 2;
29
- const boxIndent = Math.max(2, Math.floor((cols - boxWidth) / 2));
30
- const pad = " ".repeat(boxIndent);
31
- const empty = `\u2551${" ".repeat(BOX_INNER_WIDTH)}\u2551`;
32
- const row = (s) => `${pad}${s}`;
33
- useKeystroke((k) => {
34
- if (k.escape) onExit();
35
- });
36
- return /* @__PURE__ */ React.createElement(ink_compat_exports.Box, { flexDirection: "column", marginY: 1 }, /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: BRAND }, row(`\u2554${"\u2550".repeat(BOX_INNER_WIDTH)}\u2557`)), /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: BRAND }, row(empty)), /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: BRAND, bold: true }, row(`\u2551${centerInside("\u25C8 REASONIX", BOX_INNER_WIDTH)}\u2551`)), /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: BRAND }, row(empty)), /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: BRAND }, row(`\u2551${centerInside("cell-diff renderer demo", BOX_INNER_WIDTH)}\u2551`)), /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: BRAND }, row(`\u2551${centerInside("press ESC to exit", BOX_INNER_WIDTH)}\u2551`)), /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: BRAND }, row(empty)), /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: BRAND }, row(`\u255A${"\u2550".repeat(BOX_INNER_WIDTH)}\u255D`)), /* @__PURE__ */ React.createElement(ink_compat_exports.Box, { marginTop: 1, flexDirection: "row", justifyContent: "center" }, HINTS.map((cmd, i) => /* @__PURE__ */ React.createElement(React.Fragment, { key: cmd }, /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: FAINT }, cmd), i < HINTS.length - 1 ? /* @__PURE__ */ React.createElement(ink_compat_exports.Text, { color: ACCENT }, " \xB7 ") : null))));
37
- }
38
- async function runBannerDemo(opts = {}) {
39
- const stdout = opts.stdout ?? process.stdout;
40
- const stdin = opts.stdin ?? process.stdin;
41
- if (!stdin.isTTY || !stdout.isTTY) {
42
- console.error("banner-demo requires an interactive TTY.");
43
- process.exit(1);
44
- }
45
- const pools = {
46
- char: new CharPool(),
47
- style: new StylePool(),
48
- hyperlink: new HyperlinkPool()
49
- };
50
- let resolveExit = () => {
51
- };
52
- const exited = new Promise((resolve) => {
53
- resolveExit = resolve;
54
- });
55
- const handle = mount(/* @__PURE__ */ React.createElement(Banner, { onExit: () => resolveExit() }), {
56
- viewportWidth: stdout.columns ?? 80,
57
- viewportHeight: stdout.rows ?? 24,
58
- pools,
59
- write: (bytes) => stdout.write(bytes),
60
- stdin
61
- });
62
- const onResize = () => {
63
- handle.resize(stdout.columns ?? 80, stdout.rows ?? 24);
64
- };
65
- stdout.on("resize", onResize);
66
- try {
67
- await exited;
68
- } finally {
69
- stdout.off("resize", onResize);
70
- handle.destroy();
71
- stdin.pause();
72
- }
73
- }
74
- export {
75
- runBannerDemo
76
- };
77
- //# sourceMappingURL=banner-demo-C3FJP4R6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/cli/commands/banner-demo.tsx"],"sourcesContent":["// biome-ignore lint/style/useImportType: tsconfig jsx=react needs React in value scope for JSX compilation\nimport React from \"react\";\nimport {\n CharPool,\n type Handle,\n HyperlinkPool,\n StylePool,\n inkCompat,\n mount,\n useKeystroke,\n} from \"../../renderer/index.js\";\n\nconst BRAND = \"#79c0ff\";\nconst FAINT = \"#6e7681\";\nconst ACCENT = \"#d2a8ff\";\nconst BOX_INNER_WIDTH = 35;\n\nconst HINTS = [\"/help\", \"/init\", \"/memory\", \"/cost\"] as const;\n\nfunction centerInside(text: string, pad: number): string {\n if (text.length >= pad) return text;\n const left = Math.floor((pad - text.length) / 2);\n const right = pad - text.length - left;\n return `${\" \".repeat(left)}${text}${\" \".repeat(right)}`;\n}\n\nfunction Banner({ onExit }: { onExit: () => void }): React.ReactElement {\n const { stdout } = inkCompat.useStdout();\n const cols = stdout.columns;\n const boxWidth = BOX_INNER_WIDTH + 2;\n const boxIndent = Math.max(2, Math.floor((cols - boxWidth) / 2));\n const pad = \" \".repeat(boxIndent);\n const empty = `║${\" \".repeat(BOX_INNER_WIDTH)}║`;\n const row = (s: string) => `${pad}${s}`;\n\n useKeystroke((k) => {\n if (k.escape) onExit();\n });\n\n return (\n <inkCompat.Box flexDirection=\"column\" marginY={1}>\n <inkCompat.Text color={BRAND}>{row(`╔${\"═\".repeat(BOX_INNER_WIDTH)}╗`)}</inkCompat.Text>\n <inkCompat.Text color={BRAND}>{row(empty)}</inkCompat.Text>\n <inkCompat.Text color={BRAND} bold>\n {row(`║${centerInside(\"◈ REASONIX\", BOX_INNER_WIDTH)}║`)}\n </inkCompat.Text>\n <inkCompat.Text color={BRAND}>{row(empty)}</inkCompat.Text>\n <inkCompat.Text color={BRAND}>\n {row(`║${centerInside(\"cell-diff renderer demo\", BOX_INNER_WIDTH)}║`)}\n </inkCompat.Text>\n <inkCompat.Text color={BRAND}>\n {row(`║${centerInside(\"press ESC to exit\", BOX_INNER_WIDTH)}║`)}\n </inkCompat.Text>\n <inkCompat.Text color={BRAND}>{row(empty)}</inkCompat.Text>\n <inkCompat.Text color={BRAND}>{row(`╚${\"═\".repeat(BOX_INNER_WIDTH)}╝`)}</inkCompat.Text>\n\n <inkCompat.Box marginTop={1} flexDirection=\"row\" justifyContent=\"center\">\n {HINTS.map((cmd, i) => (\n <React.Fragment key={cmd}>\n <inkCompat.Text color={FAINT}>{cmd}</inkCompat.Text>\n {i < HINTS.length - 1 ? (\n <inkCompat.Text color={ACCENT}>{\" · \"}</inkCompat.Text>\n ) : null}\n </React.Fragment>\n ))}\n </inkCompat.Box>\n </inkCompat.Box>\n );\n}\n\nexport interface BannerDemoOptions {\n readonly stdout?: NodeJS.WriteStream;\n readonly stdin?: NodeJS.ReadStream;\n}\n\nexport async function runBannerDemo(opts: BannerDemoOptions = {}): Promise<void> {\n const stdout = opts.stdout ?? process.stdout;\n const stdin = opts.stdin ?? process.stdin;\n\n if (!stdin.isTTY || !stdout.isTTY) {\n console.error(\"banner-demo requires an interactive TTY.\");\n process.exit(1);\n }\n\n const pools = {\n char: new CharPool(),\n style: new StylePool(),\n hyperlink: new HyperlinkPool(),\n };\n\n let resolveExit: () => void = () => {};\n const exited = new Promise<void>((resolve) => {\n resolveExit = resolve;\n });\n\n const handle: Handle = mount(<Banner onExit={() => resolveExit()} />, {\n viewportWidth: stdout.columns ?? 80,\n viewportHeight: stdout.rows ?? 24,\n pools,\n write: (bytes) => stdout.write(bytes),\n stdin,\n });\n\n const onResize = () => {\n handle.resize(stdout.columns ?? 80, stdout.rows ?? 24);\n };\n stdout.on(\"resize\", onResize);\n\n try {\n await exited;\n } finally {\n stdout.off(\"resize\", onResize);\n handle.destroy();\n stdin.pause();\n }\n}\n"],"mappings":"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","names":[]}