@detergent-software/atk 8.0.0-dev.1 → 8.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAiFvC,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,2CAyDhE"}
1
+ {"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AA8EvC,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,2CAyDhE"}
@@ -9,6 +9,7 @@ import Header from '../components/Header.js';
9
9
  import NoticeBanner from '../components/NoticeBanner.js';
10
10
  import UpdateBanner from '../components/UpdateBanner.js';
11
11
  import { getNotices, subscribeNotices } from '../lib/notices.js';
12
+ import { renderJson } from '../lib/output.js';
12
13
  import { getUpdateInfo } from '../lib/update-check.js';
13
14
  const __dirname = dirname(fileURLToPath(import.meta.url));
14
15
  const pkg = JSON.parse(readFileSync(join(__dirname, '..', '..', 'package.json'), 'utf8'));
@@ -40,7 +41,7 @@ class CommandErrorBoundary extends React.Component {
40
41
  outcome: 'error',
41
42
  stack: this.state.error.stack,
42
43
  };
43
- return (_jsx(Box, { width: 9999, children: _jsx(Text, { children: JSON.stringify(payload, null, 2) }) }));
44
+ return renderJson(payload);
44
45
  }
45
46
  return (_jsxs(Box, { flexDirection: 'column', gap: 1, children: [_jsx(ErrorView, { command: command, hint: hint, message: this.state.error.message }), _jsx(Text, { dimColor: true, children: "Re-run with --verbose for more details." })] }));
46
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"_app.js","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_app.js","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"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"}
@@ -7,7 +7,11 @@ interface SpinnerProps {
7
7
  /**
8
8
  * Loading indicator with a message. Wraps ink-spinner with
9
9
  * consistent styling used across all commands.
10
+ *
11
+ * Renders nothing when stdout is not a terminal (piped, redirected, CI,
12
+ * agents): the animation frames would otherwise land in the captured output
13
+ * ahead of the command's result and break `--json` parsing.
10
14
  */
11
- export default function Spinner({ color, message }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
15
+ export default function Spinner({ color, message }: SpinnerProps): import("react/jsx-runtime").JSX.Element | null;
12
16
  export {};
13
17
  //# sourceMappingURL=Spinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/components/Spinner.tsx"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,KAAe,EAAE,OAAO,EAAE,EAAE,YAAY,2CASzE"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/components/Spinner.tsx"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,KAAe,EAAE,OAAO,EAAE,EAAE,YAAY,kDAYzE"}
@@ -1,11 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Text } from 'ink';
2
+ import { Text, useStdout } from 'ink';
3
3
  import InkSpinner from 'ink-spinner';
4
4
  /**
5
5
  * Loading indicator with a message. Wraps ink-spinner with
6
6
  * consistent styling used across all commands.
7
+ *
8
+ * Renders nothing when stdout is not a terminal (piped, redirected, CI,
9
+ * agents): the animation frames would otherwise land in the captured output
10
+ * ahead of the command's result and break `--json` parsing.
7
11
  */
8
12
  export default function Spinner({ color = 'green', message }) {
13
+ const { stdout } = useStdout();
14
+ if (!stdout.isTTY)
15
+ return null;
9
16
  return (_jsxs(Text, { children: [_jsx(Text, { color: color, children: _jsx(InkSpinner, { type: 'dots' }) }), ' ', message] }));
10
17
  }
11
18
  //# sourceMappingURL=Spinner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/components/Spinner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,UAAU,MAAM,aAAa,CAAC;AASrC;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,OAAO,EAAgB;IACxE,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YAChB,KAAC,UAAU,IAAC,IAAI,EAAC,MAAM,GAAG,GACrB,EAAC,GAAG,EACV,OAAO,IACH,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/components/Spinner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,UAAU,MAAM,aAAa,CAAC;AASrC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,OAAO,EAAgB;IACxE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YAChB,KAAC,UAAU,IAAC,IAAI,EAAC,MAAM,GAAG,GACrB,EAAC,GAAG,EACV,OAAO,IACH,CACR,CAAC;AACJ,CAAC"}
@@ -3,10 +3,15 @@ export interface NonInteractiveState {
3
3
  isTTY: boolean;
4
4
  json: boolean;
5
5
  }
6
+ /** Minimum width of the {@link renderJson} Box; wider when the JSON has longer lines. */
7
+ export declare const MIN_JSON_WIDTH = 9999;
6
8
  /**
7
- * Renders an arbitrary value as pretty-printed JSON wrapped in a very wide Box
8
- * so Ink does not soft-wrap long lines (which would corrupt downstream JSON
9
- * parsers). Mirrors the pattern used in `src/commands/info.tsx`.
9
+ * Renders an arbitrary value as pretty-printed JSON wrapped in a Box wide
10
+ * enough that Ink never soft-wraps a line (a wrap inside a string literal
11
+ * corrupts downstream JSON parsers). The width is twice the longest line's
12
+ * UTF-16 length, an upper bound on its terminal width since no code unit is
13
+ * wider than two columns. Ink sizes its frame buffer from the terminal width,
14
+ * not this Box, so a wide Box costs nothing extra.
10
15
  */
11
16
  export declare function renderJson(value: unknown): ReactElement;
12
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAS1C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAMvD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,mBAAmB,CAMxE"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAS1C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAMD,yFAAyF;AACzF,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAQvD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,mBAAmB,CAMxE"}
@@ -4,13 +4,20 @@ import React from 'react';
4
4
  // ---------------------------------------------------------------------------
5
5
  // Hook
6
6
  // ---------------------------------------------------------------------------
7
+ /** Minimum width of the {@link renderJson} Box; wider when the JSON has longer lines. */
8
+ export const MIN_JSON_WIDTH = 9999;
7
9
  /**
8
- * Renders an arbitrary value as pretty-printed JSON wrapped in a very wide Box
9
- * so Ink does not soft-wrap long lines (which would corrupt downstream JSON
10
- * parsers). Mirrors the pattern used in `src/commands/info.tsx`.
10
+ * Renders an arbitrary value as pretty-printed JSON wrapped in a Box wide
11
+ * enough that Ink never soft-wraps a line (a wrap inside a string literal
12
+ * corrupts downstream JSON parsers). The width is twice the longest line's
13
+ * UTF-16 length, an upper bound on its terminal width since no code unit is
14
+ * wider than two columns. Ink sizes its frame buffer from the terminal width,
15
+ * not this Box, so a wide Box costs nothing extra.
11
16
  */
12
17
  export function renderJson(value) {
13
- return (_jsx(Box, { width: 9999, children: _jsx(Text, { children: JSON.stringify(value, null, 2) }) }));
18
+ const text = JSON.stringify(value, null, 2) ?? 'null';
19
+ const longest = text.split('\n').reduce((max, line) => Math.max(max, line.length), 0);
20
+ return (_jsx(Box, { width: Math.max(MIN_JSON_WIDTH, longest * 2 + 1), children: _jsx(Text, { children: text }) }));
14
21
  }
15
22
  // ---------------------------------------------------------------------------
16
23
  // Render helpers
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,IAAI,YACd,KAAC,IAAI,cAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAQ,GACzC,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,MAAM,EAAE,kBAAkB,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC1C,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,kBAAkB;QAC3B,IAAI,EAAE,QAAQ,IAAI,CAAC,kBAAkB;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,yFAAyF;AACzF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,YACnD,KAAC,IAAI,cAAE,IAAI,GAAQ,GACf,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,MAAM,EAAE,kBAAkB,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC1C,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,kBAAkB;QAC3B,IAAI,EAAE,QAAQ,IAAI,CAAC,kBAAkB;KACtC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@detergent-software/atk",
3
- "version": "8.0.0-dev.1",
3
+ "version": "8.0.0",
4
4
  "description": "Agentic Tool Kit — CLI for managing AI coding tool assets.",
5
5
  "type": "module",
6
6
  "bin": {