cngkit 1.1.21 → 1.1.23

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 (87) hide show
  1. package/LICENSE +198 -4
  2. package/README.md +22 -12
  3. package/dist/{chunk-NGEWD4BW.js → chunk-25Q463MH.js} +1 -2
  4. package/dist/{chunk-SMTQ3W3F.js → chunk-3BATDTKU.js} +131 -112
  5. package/dist/chunk-3BATDTKU.js.map +1 -0
  6. package/dist/{chunk-DIJEVOVN.js → chunk-67FUBMNB.js} +71 -240
  7. package/dist/chunk-67FUBMNB.js.map +1 -0
  8. package/dist/chunk-AS7FIJWP.js +88 -0
  9. package/dist/chunk-AS7FIJWP.js.map +1 -0
  10. package/dist/chunk-BRFWVQI4.js +18 -0
  11. package/dist/chunk-BRFWVQI4.js.map +1 -0
  12. package/dist/{chunk-CVF2ODLP.js → chunk-BXS4IKUA.js} +300 -143
  13. package/dist/chunk-BXS4IKUA.js.map +1 -0
  14. package/dist/{chunk-YJXAH7D5.js → chunk-GYRLVNJX.js} +2 -2
  15. package/dist/chunk-GYRLVNJX.js.map +1 -0
  16. package/dist/{chunk-SKK2XLRZ.js → chunk-JNHW72SU.js} +21 -15
  17. package/dist/chunk-JNHW72SU.js.map +1 -0
  18. package/dist/chunk-U725ZHCI.js +67 -0
  19. package/dist/chunk-U725ZHCI.js.map +1 -0
  20. package/dist/chunk-VMTXY4KQ.js +111 -0
  21. package/dist/chunk-VMTXY4KQ.js.map +1 -0
  22. package/dist/chunk-WIEYHKQA.js +268 -0
  23. package/dist/chunk-WIEYHKQA.js.map +1 -0
  24. package/dist/chunk-YALWTRIP.js +102 -0
  25. package/dist/chunk-YALWTRIP.js.map +1 -0
  26. package/dist/cli.js +2 -2
  27. package/dist/cli.js.map +1 -1
  28. package/dist/commands/coderoom/index.js +4 -4
  29. package/dist/commands/coderoom/join.js +5 -5
  30. package/dist/commands/coderoom/share.js +8 -11
  31. package/dist/commands/coderoom/share.js.map +1 -1
  32. package/dist/commands/hookify/index.js +4 -4
  33. package/dist/commands/hookify/ingest.js +4 -4
  34. package/dist/commands/hooks/index.js +4 -4
  35. package/dist/commands/hooks/install.js +4 -4
  36. package/dist/commands/hooks/uninstall.js +4 -4
  37. package/dist/commands/index.js +3 -3
  38. package/dist/commands/knowledges/audiences.js +26 -8
  39. package/dist/commands/knowledges/audiences.js.map +1 -1
  40. package/dist/commands/knowledges/cat.js +26 -7
  41. package/dist/commands/knowledges/cat.js.map +1 -1
  42. package/dist/commands/knowledges/files.js +39 -8
  43. package/dist/commands/knowledges/files.js.map +1 -1
  44. package/dist/commands/knowledges/find.js +48 -8
  45. package/dist/commands/knowledges/find.js.map +1 -1
  46. package/dist/commands/knowledges/glob.js +41 -8
  47. package/dist/commands/knowledges/glob.js.map +1 -1
  48. package/dist/commands/knowledges/grep.js +73 -8
  49. package/dist/commands/knowledges/grep.js.map +1 -1
  50. package/dist/commands/knowledges/head.js +31 -8
  51. package/dist/commands/knowledges/head.js.map +1 -1
  52. package/dist/commands/knowledges/index.js +4 -4
  53. package/dist/commands/knowledges/list.js +39 -8
  54. package/dist/commands/knowledges/list.js.map +1 -1
  55. package/dist/commands/knowledges/ls.js +47 -8
  56. package/dist/commands/knowledges/ls.js.map +1 -1
  57. package/dist/commands/knowledges/read.js +46 -8
  58. package/dist/commands/knowledges/read.js.map +1 -1
  59. package/dist/commands/knowledges/realpath.js +23 -8
  60. package/dist/commands/knowledges/realpath.js.map +1 -1
  61. package/dist/commands/knowledges/search.js +34 -8
  62. package/dist/commands/knowledges/search.js.map +1 -1
  63. package/dist/commands/knowledges/stat.js +32 -8
  64. package/dist/commands/knowledges/stat.js.map +1 -1
  65. package/dist/commands/knowledges/status.js +26 -8
  66. package/dist/commands/knowledges/status.js.map +1 -1
  67. package/dist/commands/knowledges/tail.js +30 -8
  68. package/dist/commands/knowledges/tail.js.map +1 -1
  69. package/dist/commands/knowledges/tree.js +38 -8
  70. package/dist/commands/knowledges/tree.js.map +1 -1
  71. package/dist/commands/login.js +3 -3
  72. package/dist/commands/login.js.map +1 -1
  73. package/dist/commands/scrub.js +3 -3
  74. package/dist/commands/scrub.js.map +1 -1
  75. package/dist/commands/transcripts.js +137 -119
  76. package/dist/commands/transcripts.js.map +1 -1
  77. package/package.json +2 -2
  78. package/dist/chunk-52PGDSFU.js +0 -42
  79. package/dist/chunk-52PGDSFU.js.map +0 -1
  80. package/dist/chunk-5WTRGYAO.js +0 -658
  81. package/dist/chunk-5WTRGYAO.js.map +0 -1
  82. package/dist/chunk-CVF2ODLP.js.map +0 -1
  83. package/dist/chunk-DIJEVOVN.js.map +0 -1
  84. package/dist/chunk-SKK2XLRZ.js.map +0 -1
  85. package/dist/chunk-SMTQ3W3F.js.map +0 -1
  86. package/dist/chunk-YJXAH7D5.js.map +0 -1
  87. /package/dist/{chunk-NGEWD4BW.js.map → chunk-25Q463MH.js.map} +0 -0
@@ -0,0 +1,268 @@
1
+ import {
2
+ formatError,
3
+ resolveOutputFormat
4
+ } from "./chunk-67FUBMNB.js";
5
+
6
+ // src/cli/command-runner.tsx
7
+ import { useCallback, useEffect as useEffect2, useRef, useState } from "react";
8
+ import { useApp } from "ink";
9
+
10
+ // src/shared/output/factory.ts
11
+ import process2 from "process";
12
+
13
+ // src/shared/output/markdown.ts
14
+ function prepareMarkdownForTerminal(markdown) {
15
+ if (!markdown.startsWith("---\n")) {
16
+ return markdown;
17
+ }
18
+ const frontmatterEndIndex = markdown.indexOf("\n---", 4);
19
+ if (frontmatterEndIndex < 0) {
20
+ return formatFrontmatterForTerminal(markdown.slice(4).trimEnd());
21
+ }
22
+ const frontmatter = markdown.slice(4, frontmatterEndIndex).trimEnd();
23
+ const body = markdown.slice(frontmatterEndIndex + "\n---".length).replace(/^\n+/, "");
24
+ return `${formatFrontmatterForTerminal(frontmatter)}
25
+
26
+ ${body}`;
27
+ }
28
+ function formatFrontmatterForTerminal(frontmatter) {
29
+ return `## Metadata
30
+
31
+ \`\`\`yaml
32
+ ${frontmatter}
33
+ \`\`\``;
34
+ }
35
+
36
+ // src/shared/output/factory.ts
37
+ function createCommandOutput(sink) {
38
+ const stdout = sink.stdout ?? process2.stdout;
39
+ const stderr = sink.stderr ?? process2.stderr;
40
+ return {
41
+ info(message) {
42
+ appendStyledMessage(sink, stdout, "stdout", "info", message);
43
+ },
44
+ success(message) {
45
+ appendStyledMessage(sink, stdout, "stdout", "success", message);
46
+ },
47
+ warning(message) {
48
+ appendStyledMessage(sink, stdout, "stdout", "warning", message);
49
+ },
50
+ muted(message) {
51
+ appendStyledMessage(sink, stdout, "stdout", "muted", message);
52
+ },
53
+ markdown(message) {
54
+ if (resolveOutputFormat() === "markdown") {
55
+ stdout.write(`${message}
56
+ `);
57
+ return;
58
+ }
59
+ if (sink.appendMessage) {
60
+ sink.appendMessage({ kind: "markdown", message: prepareMarkdownForTerminal(message) });
61
+ return;
62
+ }
63
+ stdout.write(`${message}
64
+ `);
65
+ },
66
+ component(element) {
67
+ if (sink.appendMessage) {
68
+ sink.appendMessage({ kind: "component", element });
69
+ return;
70
+ }
71
+ stdout.write("\n");
72
+ },
73
+ raw(message) {
74
+ stdout.write(`${message}
75
+ `);
76
+ },
77
+ error(message) {
78
+ appendStyledMessage(sink, stderr, "stderr", "error", message);
79
+ }
80
+ };
81
+ }
82
+ function appendStyledMessage(sink, stream, streamName, style, message) {
83
+ if (sink.appendMessage) {
84
+ sink.appendMessage({ kind: "styled", stream: streamName, style, message });
85
+ return;
86
+ }
87
+ stream.write(`${message}
88
+ `);
89
+ }
90
+
91
+ // src/shared/output/renderer.tsx
92
+ import process3 from "process";
93
+ import { createElement, useEffect } from "react";
94
+ import { Static, Text, useStderr, useStdout } from "ink";
95
+ import Markdown from "@inkkit/ink-markdown";
96
+
97
+ // src/shared/theme.ts
98
+ import { Chalk } from "chalk";
99
+ var statusStylePropsByOutputStyle = {
100
+ info: {
101
+ color: "cyan"
102
+ },
103
+ success: {
104
+ color: "green",
105
+ bold: true
106
+ },
107
+ warning: {
108
+ color: "yellow",
109
+ bold: true
110
+ },
111
+ muted: {
112
+ dimColor: true
113
+ },
114
+ error: {
115
+ color: "red",
116
+ bold: true
117
+ }
118
+ };
119
+ function createMarkdownTheme(useColor) {
120
+ const chalk = new Chalk({ level: useColor ? 1 : 0 });
121
+ const identity = (value) => value;
122
+ return {
123
+ code: chalk.green,
124
+ blockquote: chalk.dim.italic,
125
+ html: chalk.gray,
126
+ heading: chalk.blueBright.bold,
127
+ firstHeading: chalk.magentaBright.bold,
128
+ hr: chalk.gray,
129
+ listitem: identity,
130
+ table: identity,
131
+ paragraph: identity,
132
+ strong: chalk.bold,
133
+ em: chalk.italic,
134
+ codespan: chalk.cyanBright,
135
+ del: chalk.dim.strikethrough,
136
+ link: chalk.blueBright,
137
+ href: chalk.blue.underline,
138
+ text: identity,
139
+ showSectionPrefix: false,
140
+ reflowText: true,
141
+ unescape: true,
142
+ emoji: false,
143
+ tab: 2
144
+ };
145
+ }
146
+
147
+ // src/shared/output/renderer.tsx
148
+ function CommandOutputMessages({
149
+ messages
150
+ }) {
151
+ const { stdout } = useStdout();
152
+ const width = clampMarkdownWidth(stdout.columns);
153
+ const useColor = shouldRenderColor(stdout);
154
+ if (messages.length === 0) {
155
+ return null;
156
+ }
157
+ return createElement(
158
+ Static,
159
+ {
160
+ items: [...messages],
161
+ style: { flexDirection: "column" },
162
+ children: (message) => createElement(CommandOutputMessageView, {
163
+ key: message.id,
164
+ message,
165
+ useColor,
166
+ width
167
+ })
168
+ }
169
+ );
170
+ }
171
+ function CommandOutputMessageView({
172
+ message,
173
+ useColor,
174
+ width
175
+ }) {
176
+ if (message.kind === "styled") {
177
+ if (message.stream === "stderr") {
178
+ return createElement(StderrLine, { message: message.message });
179
+ }
180
+ return createElement(
181
+ Text,
182
+ {
183
+ ...statusStylePropsByOutputStyle[message.style],
184
+ wrap: "wrap"
185
+ },
186
+ message.message
187
+ );
188
+ }
189
+ if (message.kind === "markdown") {
190
+ return createElement(
191
+ Markdown,
192
+ {
193
+ ...createMarkdownTheme(useColor),
194
+ width
195
+ },
196
+ message.message
197
+ );
198
+ }
199
+ return message.element;
200
+ }
201
+ function StderrLine({ message }) {
202
+ const { write } = useStderr();
203
+ useEffect(() => {
204
+ write(`${message}
205
+ `);
206
+ }, [message, write]);
207
+ return null;
208
+ }
209
+ function shouldRenderColor(stream) {
210
+ if (process3.env.CNGKIT_NO_COLOR === "1") {
211
+ return false;
212
+ }
213
+ const colorMode = process3.env.CNGKIT_COLOR?.toLowerCase();
214
+ if (colorMode === "never" || colorMode === "0" || colorMode === "false") {
215
+ return false;
216
+ }
217
+ if (colorMode === "always" || colorMode === "1" || colorMode === "true") {
218
+ return true;
219
+ }
220
+ if (process3.env.FORCE_COLOR !== void 0 && process3.env.FORCE_COLOR !== "0") {
221
+ return true;
222
+ }
223
+ if (process3.env.NO_COLOR !== void 0) {
224
+ return false;
225
+ }
226
+ return stream.isTTY === true;
227
+ }
228
+ function clampMarkdownWidth(columns) {
229
+ if (columns === void 0) {
230
+ return 100;
231
+ }
232
+ return Math.max(72, Math.min(columns, 120));
233
+ }
234
+
235
+ // src/cli/command-runner.tsx
236
+ import { jsx } from "react/jsx-runtime";
237
+ function CommandRunner({ run }) {
238
+ const { exit } = useApp();
239
+ const nextMessageIdRef = useRef(1);
240
+ const [messages, setMessages] = useState([]);
241
+ const appendMessage = useCallback((message) => {
242
+ const nextMessage = {
243
+ ...message,
244
+ id: nextMessageIdRef.current
245
+ };
246
+ nextMessageIdRef.current += 1;
247
+ setMessages((currentMessages) => [...currentMessages, nextMessage]);
248
+ }, []);
249
+ useEffect2(() => {
250
+ const output = createCommandOutput({
251
+ appendMessage,
252
+ stdout: process.stdout,
253
+ stderr: process.stderr
254
+ });
255
+ void run(output).catch((error) => {
256
+ process.exitCode = 1;
257
+ output.error(formatError(error));
258
+ }).finally(() => {
259
+ setTimeout(() => exit(), 0);
260
+ });
261
+ }, [appendMessage, exit, run]);
262
+ return /* @__PURE__ */ jsx(CommandOutputMessages, { messages });
263
+ }
264
+
265
+ export {
266
+ CommandRunner
267
+ };
268
+ //# sourceMappingURL=chunk-WIEYHKQA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/command-runner.tsx","../src/shared/output/factory.ts","../src/shared/output/markdown.ts","../src/shared/output/renderer.tsx","../src/shared/theme.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useApp } from \"ink\";\n\nimport {\n CommandOutputMessages,\n createCommandOutput,\n formatError,\n type CommandOutput,\n type CommandOutputMessage,\n type CommandOutputMessagePayload,\n} from \"../shared/output/index.js\";\n\ntype CommandRunnerProps = {\n readonly run: (output: CommandOutput) => Promise<void>;\n};\n\nexport function CommandRunner({ run }: CommandRunnerProps) {\n const { exit } = useApp();\n const nextMessageIdRef = useRef(1);\n const [messages, setMessages] = useState<CommandOutputMessage[]>([]);\n const appendMessage = useCallback((message: CommandOutputMessagePayload) => {\n const nextMessage: CommandOutputMessage = {\n ...message,\n id: nextMessageIdRef.current,\n };\n nextMessageIdRef.current += 1;\n setMessages((currentMessages) => [...currentMessages, nextMessage]);\n }, []);\n\n useEffect(() => {\n const output = createCommandOutput({\n appendMessage,\n stdout: process.stdout,\n stderr: process.stderr,\n });\n\n void run(output)\n .catch((error: unknown) => {\n process.exitCode = 1;\n output.error(formatError(error));\n })\n .finally(() => {\n setTimeout(() => exit(), 0);\n });\n }, [appendMessage, exit, run]);\n\n return <CommandOutputMessages messages={messages} />;\n}\n","import process from \"node:process\";\n\nimport { resolveOutputFormat } from \"../config.js\";\nimport { prepareMarkdownForTerminal } from \"./markdown.js\";\nimport type {\n CommandOutput,\n CommandOutputSink,\n OutputStream,\n} from \"./types.js\";\n\nexport function createCommandOutput(sink: CommandOutputSink): CommandOutput {\n const stdout = sink.stdout ?? process.stdout;\n const stderr = sink.stderr ?? process.stderr;\n\n return {\n info(message) {\n appendStyledMessage(sink, stdout, \"stdout\", \"info\", message);\n },\n success(message) {\n appendStyledMessage(sink, stdout, \"stdout\", \"success\", message);\n },\n warning(message) {\n appendStyledMessage(sink, stdout, \"stdout\", \"warning\", message);\n },\n muted(message) {\n appendStyledMessage(sink, stdout, \"stdout\", \"muted\", message);\n },\n markdown(message) {\n if (resolveOutputFormat() === \"markdown\") {\n stdout.write(`${message}\\n`);\n return;\n }\n\n if (sink.appendMessage) {\n sink.appendMessage({ kind: \"markdown\", message: prepareMarkdownForTerminal(message) });\n return;\n }\n\n stdout.write(`${message}\\n`);\n },\n component(element) {\n if (sink.appendMessage) {\n sink.appendMessage({ kind: \"component\", element });\n return;\n }\n\n stdout.write(\"\\n\");\n },\n raw(message) {\n stdout.write(`${message}\\n`);\n },\n error(message) {\n appendStyledMessage(sink, stderr, \"stderr\", \"error\", message);\n },\n };\n}\n\nfunction appendStyledMessage(\n sink: CommandOutputSink,\n stream: OutputStream,\n streamName: \"stdout\" | \"stderr\",\n style: \"info\" | \"success\" | \"warning\" | \"muted\" | \"error\",\n message: string\n): void {\n if (sink.appendMessage) {\n sink.appendMessage({ kind: \"styled\", stream: streamName, style, message });\n return;\n }\n\n stream.write(`${message}\\n`);\n}\n","export function prepareMarkdownForTerminal(markdown: string): string {\n if (!markdown.startsWith(\"---\\n\")) {\n return markdown;\n }\n\n const frontmatterEndIndex = markdown.indexOf(\"\\n---\", 4);\n if (frontmatterEndIndex < 0) {\n return formatFrontmatterForTerminal(markdown.slice(4).trimEnd());\n }\n\n const frontmatter = markdown.slice(4, frontmatterEndIndex).trimEnd();\n const body = markdown.slice(frontmatterEndIndex + \"\\n---\".length).replace(/^\\n+/, \"\");\n\n return `${formatFrontmatterForTerminal(frontmatter)}\\n\\n${body}`;\n}\n\nexport function formatFrontmatterForTerminal(frontmatter: string): string {\n return `## Metadata\\n\\n\\`\\`\\`yaml\\n${frontmatter}\\n\\`\\`\\``;\n}\n","import process from \"node:process\";\nimport { createElement, useEffect, type ReactElement } from \"react\";\nimport { Static, Text, useStderr, useStdout } from \"ink\";\nimport Markdown from \"@inkkit/ink-markdown\";\n\nimport { createMarkdownTheme, statusStylePropsByOutputStyle } from \"../theme.js\";\nimport type { CommandOutputMessage, OutputStream } from \"./types.js\";\n\nexport function CommandOutputMessages({\n messages,\n}: {\n readonly messages: readonly CommandOutputMessage[];\n}): ReactElement | null {\n const { stdout } = useStdout();\n const width = clampMarkdownWidth(stdout.columns);\n const useColor = shouldRenderColor(stdout);\n\n if (messages.length === 0) {\n return null;\n }\n\n return createElement(\n Static<CommandOutputMessage>,\n {\n items: [...messages],\n style: { flexDirection: \"column\" },\n children: (message: CommandOutputMessage) =>\n createElement(CommandOutputMessageView, {\n key: message.id,\n message,\n useColor,\n width,\n }),\n }\n );\n}\n\nfunction CommandOutputMessageView({\n message,\n useColor,\n width,\n}: {\n readonly message: CommandOutputMessage;\n readonly useColor: boolean;\n readonly width: number;\n}): ReactElement {\n if (message.kind === \"styled\") {\n if (message.stream === \"stderr\") {\n return createElement(StderrLine, { message: message.message });\n }\n\n return createElement(\n Text,\n {\n ...statusStylePropsByOutputStyle[message.style],\n wrap: \"wrap\",\n },\n message.message\n );\n }\n\n if (message.kind === \"markdown\") {\n return createElement(\n Markdown,\n {\n ...createMarkdownTheme(useColor),\n width,\n },\n message.message\n );\n }\n\n return message.element;\n}\n\nfunction StderrLine({ message }: { readonly message: string }): null {\n const { write } = useStderr();\n\n useEffect(() => {\n write(`${message}\\n`);\n }, [message, write]);\n\n return null;\n}\n\nfunction shouldRenderColor(stream: OutputStream): boolean {\n if (process.env.CNGKIT_NO_COLOR === \"1\") {\n return false;\n }\n\n const colorMode = process.env.CNGKIT_COLOR?.toLowerCase();\n\n if (colorMode === \"never\" || colorMode === \"0\" || colorMode === \"false\") {\n return false;\n }\n\n if (colorMode === \"always\" || colorMode === \"1\" || colorMode === \"true\") {\n return true;\n }\n\n if (process.env.FORCE_COLOR !== undefined && process.env.FORCE_COLOR !== \"0\") {\n return true;\n }\n\n if (process.env.NO_COLOR !== undefined) {\n return false;\n }\n\n return stream.isTTY === true;\n}\n\nfunction clampMarkdownWidth(columns: number | undefined): number {\n if (columns === undefined) {\n return 100;\n }\n\n return Math.max(72, Math.min(columns, 120));\n}\n","import { Chalk } from \"chalk\";\nimport type { TextProps } from \"ink\";\n\nexport type OutputStyle = \"info\" | \"success\" | \"warning\" | \"muted\" | \"error\";\n\nexport const statusStylePropsByOutputStyle = {\n info: {\n color: \"cyan\",\n },\n success: {\n color: \"green\",\n bold: true,\n },\n warning: {\n color: \"yellow\",\n bold: true,\n },\n muted: {\n dimColor: true,\n },\n error: {\n color: \"red\",\n bold: true,\n },\n} satisfies Record<OutputStyle, TextProps>;\n\nexport function createMarkdownTheme(useColor: boolean) {\n const chalk = new Chalk({ level: useColor ? 1 : 0 });\n const identity = (value: string) => value;\n\n return {\n code: chalk.green,\n blockquote: chalk.dim.italic,\n html: chalk.gray,\n heading: chalk.blueBright.bold,\n firstHeading: chalk.magentaBright.bold,\n hr: chalk.gray,\n listitem: identity,\n table: identity,\n paragraph: identity,\n strong: chalk.bold,\n em: chalk.italic,\n codespan: chalk.cyanBright,\n del: chalk.dim.strikethrough,\n link: chalk.blueBright,\n href: chalk.blue.underline,\n text: identity,\n showSectionPrefix: false,\n reflowText: true,\n unescape: true,\n emoji: false,\n tab: 2,\n };\n}\n"],"mappings":"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","names":["useEffect","process","process","process","process","useEffect"]}
@@ -0,0 +1,102 @@
1
+ import {
2
+ formatCatalogPathForDisplay
3
+ } from "./chunk-AS7FIJWP.js";
4
+ import {
5
+ coerceOptionalNumber
6
+ } from "./chunk-XQGLUQFM.js";
7
+
8
+ // src/features/knowledges/format/filesystem-format.ts
9
+ function compareFilesystemEntries(left, right) {
10
+ if (left.type !== right.type) {
11
+ return left.type === "directory" ? -1 : 1;
12
+ }
13
+ return left.path.localeCompare(right.path);
14
+ }
15
+ function formatFilesystemTree(rootPath, entries) {
16
+ const normalizedRootPath = rootPath.replace(/\/+$/, "");
17
+ const rootLine = formatTreeDirectoryName(rootPath);
18
+ const entryLines = [...entries].sort(compareFilesystemEntries).map((entry) => {
19
+ const relativePath = stripRootPath(entry.path, normalizedRootPath);
20
+ const segmentCount = relativePath.split("/").filter(Boolean).length;
21
+ const indent = " ".repeat(Math.max(segmentCount - 1, 0));
22
+ return `${indent}${formatShellFilesystemEntryName(entry)}`;
23
+ });
24
+ return [rootLine, ...entryLines];
25
+ }
26
+ function stripRootPath(path, rootPath) {
27
+ if (path === rootPath) {
28
+ return "";
29
+ }
30
+ if (rootPath && path.startsWith(`${rootPath}/`)) {
31
+ return path.slice(rootPath.length + 1);
32
+ }
33
+ return path;
34
+ }
35
+ function formatTreeDirectoryName(path) {
36
+ const normalizedPath = formatCatalogPathForDisplay(path).replace(/\/+$/, "");
37
+ return normalizedPath ? `${normalizedPath}/` : "/";
38
+ }
39
+ function formatShellFilesystemEntryName(entry) {
40
+ return entry.type === "directory" ? `${entry.name}/` : entry.name;
41
+ }
42
+ function formatFilesystemEntryPath(entry) {
43
+ const displayPath = formatCatalogPathForDisplay(entry.path);
44
+ return entry.type === "directory" ? `${displayPath}/` : displayPath;
45
+ }
46
+ function formatLongFilesystemEntryLine(entry) {
47
+ const fields = [
48
+ entry.type,
49
+ formatCatalogPathForDisplay(entry.path),
50
+ ...formatOptionalEntryFields([
51
+ ["size", entry.size],
52
+ ["files", entry.file_count],
53
+ ["children", entry.child_count],
54
+ ["total_size", entry.total_size],
55
+ ["sha256", entry.sha256],
56
+ ["asset_kind", entry.asset_kind],
57
+ ["topic", entry.topic_name]
58
+ ])
59
+ ];
60
+ return fields.join(" ");
61
+ }
62
+ function coerceOptionalFiniteNumber(value) {
63
+ const normalizedValue = coerceOptionalNumber(value);
64
+ return normalizedValue === void 0 || Number.isNaN(normalizedValue) ? void 0 : Math.max(1, Math.trunc(normalizedValue));
65
+ }
66
+ function formatFilesystemStat(entry) {
67
+ const fields = [
68
+ ["path", formatCatalogPathForDisplay(entry.path)],
69
+ ["type", entry.type],
70
+ ["name", entry.name],
71
+ ["depth", entry.depth],
72
+ ["size", entry.size],
73
+ ["files", entry.file_count],
74
+ ["children", entry.child_count],
75
+ ["total_size", entry.total_size],
76
+ ["sha256", entry.sha256],
77
+ ["asset_kind", entry.asset_kind],
78
+ ["title", entry.title],
79
+ ["topic", entry.topic_name],
80
+ ["updated_at", entry.updated_at]
81
+ ];
82
+ return formatOptionalEntryFields(fields).join("\n");
83
+ }
84
+ function formatOptionalEntryFields(fields) {
85
+ return fields.flatMap(([key, value]) => {
86
+ if (value === null || value === "") {
87
+ return [];
88
+ }
89
+ return [`${key}=${value}`];
90
+ });
91
+ }
92
+
93
+ export {
94
+ compareFilesystemEntries,
95
+ formatFilesystemTree,
96
+ formatShellFilesystemEntryName,
97
+ formatFilesystemEntryPath,
98
+ formatLongFilesystemEntryLine,
99
+ coerceOptionalFiniteNumber,
100
+ formatFilesystemStat
101
+ };
102
+ //# sourceMappingURL=chunk-YALWTRIP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/features/knowledges/format/filesystem-format.ts"],"sourcesContent":["import type { CngApi } from \"@cng/client\";\n\nimport { coerceOptionalNumber, type NumberOption } from \"../../../shared/command-utils.js\";\nimport { formatCatalogPathForDisplay } from \"../knowledges-input.js\";\n\nexport function compareFilesystemEntries(\n left: CngApi.HarnessFilesystemEntry,\n right: CngApi.HarnessFilesystemEntry\n): number {\n if (left.type !== right.type) {\n return left.type === \"directory\" ? -1 : 1;\n }\n\n return left.path.localeCompare(right.path);\n}\n\nexport function formatFilesystemTree(\n rootPath: string,\n entries: CngApi.HarnessFilesystemEntry[]\n): string[] {\n const normalizedRootPath = rootPath.replace(/\\/+$/, \"\");\n const rootLine = formatTreeDirectoryName(rootPath);\n const entryLines = [...entries].sort(compareFilesystemEntries).map((entry) => {\n const relativePath = stripRootPath(entry.path, normalizedRootPath);\n const segmentCount = relativePath.split(\"/\").filter(Boolean).length;\n const indent = \" \".repeat(Math.max(segmentCount - 1, 0));\n return `${indent}${formatShellFilesystemEntryName(entry)}`;\n });\n\n return [rootLine, ...entryLines];\n}\n\nexport function stripRootPath(path: string, rootPath: string): string {\n if (path === rootPath) {\n return \"\";\n }\n\n if (rootPath && path.startsWith(`${rootPath}/`)) {\n return path.slice(rootPath.length + 1);\n }\n\n return path;\n}\n\nexport function formatTreeDirectoryName(path: string): string {\n const normalizedPath = formatCatalogPathForDisplay(path).replace(/\\/+$/, \"\");\n return normalizedPath ? `${normalizedPath}/` : \"/\";\n}\n\nexport function formatShellFilesystemEntryName(entry: CngApi.HarnessFilesystemEntry): string {\n return entry.type === \"directory\" ? `${entry.name}/` : entry.name;\n}\n\nexport function formatFilesystemEntryPath(entry: CngApi.HarnessFilesystemEntry): string {\n const displayPath = formatCatalogPathForDisplay(entry.path);\n return entry.type === \"directory\" ? `${displayPath}/` : displayPath;\n}\n\nexport function formatLongFilesystemEntryLine(entry: CngApi.HarnessFilesystemEntry): string {\n const fields = [\n entry.type,\n formatCatalogPathForDisplay(entry.path),\n ...formatOptionalEntryFields([\n [\"size\", entry.size],\n [\"files\", entry.file_count],\n [\"children\", entry.child_count],\n [\"total_size\", entry.total_size],\n [\"sha256\", entry.sha256],\n [\"asset_kind\", entry.asset_kind],\n [\"topic\", entry.topic_name],\n ]),\n ];\n\n return fields.join(\"\\t\");\n}\n\nexport function coerceOptionalFiniteNumber(value: NumberOption | undefined): number | undefined {\n const normalizedValue = coerceOptionalNumber(value);\n return normalizedValue === undefined || Number.isNaN(normalizedValue)\n ? undefined\n : Math.max(1, Math.trunc(normalizedValue));\n}\n\nexport function formatFilesystemStat(entry: CngApi.HarnessFilesystemStatResponse): string {\n const fields: Array<[string, string | number | null]> = [\n [\"path\", formatCatalogPathForDisplay(entry.path)],\n [\"type\", entry.type],\n [\"name\", entry.name],\n [\"depth\", entry.depth],\n [\"size\", entry.size],\n [\"files\", entry.file_count],\n [\"children\", entry.child_count],\n [\"total_size\", entry.total_size],\n [\"sha256\", entry.sha256],\n [\"asset_kind\", entry.asset_kind],\n [\"title\", entry.title],\n [\"topic\", entry.topic_name],\n [\"updated_at\", entry.updated_at],\n ];\n\n return formatOptionalEntryFields(fields).join(\"\\n\");\n}\n\nexport function formatOptionalEntryFields(\n fields: Array<[string, string | number | null]>\n): string[] {\n return fields.flatMap(([key, value]) => {\n if (value === null || value === \"\") {\n return [];\n }\n\n return [`${key}=${value}`];\n });\n}\n"],"mappings":";;;;;;;;AAKO,SAAS,yBACd,MACA,OACQ;AACR,MAAI,KAAK,SAAS,MAAM,MAAM;AAC5B,WAAO,KAAK,SAAS,cAAc,KAAK;AAAA,EAC1C;AAEA,SAAO,KAAK,KAAK,cAAc,MAAM,IAAI;AAC3C;AAEO,SAAS,qBACd,UACA,SACU;AACV,QAAM,qBAAqB,SAAS,QAAQ,QAAQ,EAAE;AACtD,QAAM,WAAW,wBAAwB,QAAQ;AACjD,QAAM,aAAa,CAAC,GAAG,OAAO,EAAE,KAAK,wBAAwB,EAAE,IAAI,CAAC,UAAU;AAC5E,UAAM,eAAe,cAAc,MAAM,MAAM,kBAAkB;AACjE,UAAM,eAAe,aAAa,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE;AAC7D,UAAM,SAAS,KAAK,OAAO,KAAK,IAAI,eAAe,GAAG,CAAC,CAAC;AACxD,WAAO,GAAG,MAAM,GAAG,+BAA+B,KAAK,CAAC;AAAA,EAC1D,CAAC;AAED,SAAO,CAAC,UAAU,GAAG,UAAU;AACjC;AAEO,SAAS,cAAc,MAAc,UAA0B;AACpE,MAAI,SAAS,UAAU;AACrB,WAAO;AAAA,EACT;AAEA,MAAI,YAAY,KAAK,WAAW,GAAG,QAAQ,GAAG,GAAG;AAC/C,WAAO,KAAK,MAAM,SAAS,SAAS,CAAC;AAAA,EACvC;AAEA,SAAO;AACT;AAEO,SAAS,wBAAwB,MAAsB;AAC5D,QAAM,iBAAiB,4BAA4B,IAAI,EAAE,QAAQ,QAAQ,EAAE;AAC3E,SAAO,iBAAiB,GAAG,cAAc,MAAM;AACjD;AAEO,SAAS,+BAA+B,OAA8C;AAC3F,SAAO,MAAM,SAAS,cAAc,GAAG,MAAM,IAAI,MAAM,MAAM;AAC/D;AAEO,SAAS,0BAA0B,OAA8C;AACtF,QAAM,cAAc,4BAA4B,MAAM,IAAI;AAC1D,SAAO,MAAM,SAAS,cAAc,GAAG,WAAW,MAAM;AAC1D;AAEO,SAAS,8BAA8B,OAA8C;AAC1F,QAAM,SAAS;AAAA,IACb,MAAM;AAAA,IACN,4BAA4B,MAAM,IAAI;AAAA,IACtC,GAAG,0BAA0B;AAAA,MAC3B,CAAC,QAAQ,MAAM,IAAI;AAAA,MACnB,CAAC,SAAS,MAAM,UAAU;AAAA,MAC1B,CAAC,YAAY,MAAM,WAAW;AAAA,MAC9B,CAAC,cAAc,MAAM,UAAU;AAAA,MAC/B,CAAC,UAAU,MAAM,MAAM;AAAA,MACvB,CAAC,cAAc,MAAM,UAAU;AAAA,MAC/B,CAAC,SAAS,MAAM,UAAU;AAAA,IAC5B,CAAC;AAAA,EACH;AAEA,SAAO,OAAO,KAAK,GAAI;AACzB;AAEO,SAAS,2BAA2B,OAAqD;AAC9F,QAAM,kBAAkB,qBAAqB,KAAK;AAClD,SAAO,oBAAoB,UAAa,OAAO,MAAM,eAAe,IAChE,SACA,KAAK,IAAI,GAAG,KAAK,MAAM,eAAe,CAAC;AAC7C;AAEO,SAAS,qBAAqB,OAAqD;AACxF,QAAM,SAAkD;AAAA,IACtD,CAAC,QAAQ,4BAA4B,MAAM,IAAI,CAAC;AAAA,IAChD,CAAC,QAAQ,MAAM,IAAI;AAAA,IACnB,CAAC,QAAQ,MAAM,IAAI;AAAA,IACnB,CAAC,SAAS,MAAM,KAAK;AAAA,IACrB,CAAC,QAAQ,MAAM,IAAI;AAAA,IACnB,CAAC,SAAS,MAAM,UAAU;AAAA,IAC1B,CAAC,YAAY,MAAM,WAAW;AAAA,IAC9B,CAAC,cAAc,MAAM,UAAU;AAAA,IAC/B,CAAC,UAAU,MAAM,MAAM;AAAA,IACvB,CAAC,cAAc,MAAM,UAAU;AAAA,IAC/B,CAAC,SAAS,MAAM,KAAK;AAAA,IACrB,CAAC,SAAS,MAAM,UAAU;AAAA,IAC1B,CAAC,cAAc,MAAM,UAAU;AAAA,EACjC;AAEA,SAAO,0BAA0B,MAAM,EAAE,KAAK,IAAI;AACpD;AAEO,SAAS,0BACd,QACU;AACV,SAAO,OAAO,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACtC,QAAI,UAAU,QAAQ,UAAU,IAAI;AAClC,aAAO,CAAC;AAAA,IACV;AAEA,WAAO,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE;AAAA,EAC3B,CAAC;AACH;","names":[]}
package/dist/cli.js CHANGED
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  renderCngkitHelp,
4
4
  renderKnowledgesHelp
5
- } from "./chunk-SKK2XLRZ.js";
5
+ } from "./chunk-JNHW72SU.js";
6
6
  import {
7
7
  formatError,
8
8
  packageVersion,
9
9
  parseOutputFormat
10
- } from "./chunk-DIJEVOVN.js";
10
+ } from "./chunk-67FUBMNB.js";
11
11
  import "./chunk-PZ5AY32C.js";
12
12
 
13
13
  // src/cli.ts
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts","../src/cli/render-once.ts","../src/cli/help.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport process from \"node:process\";\nimport { createElement } from \"react\";\nimport { Text } from \"ink\";\n\nimport Pastel from \"pastel\";\n\nimport { printHelpIfRequested } from \"./cli/help.js\";\nimport { renderOnce } from \"./cli/render-once.js\";\nimport { packageVersion, parseOutputFormat } from \"./shared/config.js\";\nimport { formatError } from \"./shared/output.js\";\n\ntry {\n const normalizedArgv = normalizeGlobalOptions(process.argv);\n\n if (await printHelpIfRequested(normalizedArgv)) {\n process.exit(0);\n }\n\n guardKnownCommand(normalizedArgv);\n\n const app = new Pastel({\n importMeta: import.meta,\n name: \"cngkit\",\n version: packageVersion,\n description: \"Opinionated CNG CLI kit for Coderoom collaboration and operator workflows.\",\n });\n\n await app.run(normalizedArgv);\n} catch (error) {\n await renderOnce(\n createElement(\n Text,\n {\n bold: true,\n color: \"red\",\n wrap: \"wrap\",\n },\n formatError(error)\n ),\n { stdout: process.stderr }\n );\n process.exitCode = 1;\n}\n\nfunction normalizeGlobalOptions(argv: string[]): string[] {\n const normalizedArgv = [...argv];\n\n for (let index = 2; index < normalizedArgv.length; index += 1) {\n const argument = normalizedArgv[index];\n\n if (argument === \"--format\") {\n const value = normalizedArgv[index + 1];\n if (!value || value.startsWith(\"-\")) {\n throw new Error(\"Missing value for --format\");\n }\n\n process.env.CNGKIT_FORMAT = parseOutputFormat(value);\n normalizedArgv.splice(index, 2);\n index -= 1;\n continue;\n }\n\n if (argument.startsWith(\"--format=\")) {\n process.env.CNGKIT_FORMAT = parseOutputFormat(argument.slice(\"--format=\".length));\n normalizedArgv.splice(index, 1);\n index -= 1;\n continue;\n }\n\n if (argument === \"--no-color\" || argument === \"--no-colors\") {\n process.env.CNGKIT_COLOR = \"never\";\n process.env.CNGKIT_NO_COLOR = \"1\";\n normalizedArgv.splice(index, 1);\n index -= 1;\n continue;\n }\n\n if (argument === \"--color\") {\n process.env.CNGKIT_COLOR = \"always\";\n normalizedArgv.splice(index, 1);\n index -= 1;\n continue;\n }\n\n if (argument.startsWith(\"--color=\")) {\n const colorMode = argument.slice(\"--color=\".length);\n process.env.CNGKIT_COLOR =\n colorMode === \"false\" || colorMode === \"never\" ? \"never\" : \"always\";\n normalizedArgv.splice(index, 1);\n index -= 1;\n }\n }\n\n normalizeKnowledgesFindOptions(normalizedArgv);\n return normalizedArgv;\n}\n\nfunction normalizeKnowledgesFindOptions(argv: string[]): void {\n if (argv[2] !== \"knowledges\" || argv[3] !== \"find\") {\n return;\n }\n\n for (let index = 4; index < argv.length; index += 1) {\n if (argv[index] === \"-name\") {\n argv[index] = \"--name\";\n continue;\n }\n\n if (argv[index] === \"-type\") {\n argv[index] = \"--type\";\n continue;\n }\n\n if (argv[index] === \"-maxdepth\") {\n argv[index] = \"--max-depth\";\n }\n }\n}\n\nfunction guardKnownCommand(argv: string[]): void {\n const commandName = argv[2];\n if (commandName === undefined || commandName.startsWith(\"-\")) {\n return;\n }\n\n const knownCommands = new Set([\n \"help\",\n \"login\",\n \"coderoom\",\n \"scrub\",\n \"transcripts\",\n \"knowledges\",\n \"hooks\",\n \"hookify\",\n ]);\n if (!knownCommands.has(commandName)) {\n throw new Error(`Unknown command \"${commandName}\". Run cngkit --help for available commands.`);\n }\n\n guardKnownSubcommand(commandName, argv.slice(3));\n}\n\nfunction guardKnownSubcommand(commandName: string, commandArgs: string[]): void {\n const subcommand = commandArgs.find((argument) => !argument.startsWith(\"-\"));\n if (!subcommand) {\n return;\n }\n\n if (commandName === \"coderoom\") {\n const knownCoderoomSubcommands = new Set([\"share\", \"join\"]);\n if (!knownCoderoomSubcommands.has(subcommand)) {\n throw new Error(`Unknown coderoom command \"${subcommand}\". Use one of: share, join.`);\n }\n }\n\n if (commandName === \"knowledges\") {\n const knownKnowledgesSubcommands = new Set([\n \"status\",\n \"audiences\",\n \"search\",\n \"list\",\n \"files\",\n \"read\",\n \"cat\",\n \"head\",\n \"tail\",\n \"grep\",\n \"glob\",\n \"ls\",\n \"tree\",\n \"find\",\n \"stat\",\n \"realpath\",\n \"help\",\n ]);\n if (!knownKnowledgesSubcommands.has(subcommand)) {\n throw new Error(\n `Unknown knowledges command \"${subcommand}\". Use one of: status, audiences, search, list, files, read, cat, head, tail, grep, glob, ls, tree, find, stat, realpath.`\n );\n }\n }\n\n if (commandName === \"hookify\") {\n const knownHookifySubcommands = new Set([\"ingest\"]);\n if (!knownHookifySubcommands.has(subcommand)) {\n throw new Error(`Unknown hookify command \"${subcommand}\". Use one of: ingest.`);\n }\n }\n\n if (commandName === \"hooks\") {\n const knownHooksSubcommands = new Set([\"install\", \"uninstall\"]);\n if (!knownHooksSubcommands.has(subcommand)) {\n throw new Error(`Unknown hooks command \"${subcommand}\". Use one of: install, uninstall.`);\n }\n }\n}\n","import process from \"node:process\";\nimport { createElement, useEffect, type ReactElement } from \"react\";\nimport { render, useApp } from \"ink\";\n\ntype OutputStream = NodeJS.WriteStream;\n\nexport async function renderOnce(\n element: ReactElement,\n options?: {\n readonly stdout?: OutputStream;\n }\n): Promise<void> {\n const instance = render(createElement(ExitAfterFirstRender, { element }), {\n stdin: process.stdin,\n stdout: options?.stdout ?? process.stdout,\n stderr: process.stderr,\n });\n await instance.waitUntilExit();\n}\n\nfunction ExitAfterFirstRender({ element }: { readonly element: ReactElement }) {\n const { exit } = useApp();\n\n useEffect(() => {\n queueMicrotask(() => exit());\n }, [exit]);\n\n return element;\n}\n","import type { ReactElement } from \"react\";\n\nimport { renderCngkitHelp, renderKnowledgesHelp } from \"./help-specs.js\";\nimport { renderOnce } from \"./render-once.js\";\nimport type { CommandOutput } from \"../shared/output.js\";\n\nexport async function printHelpIfRequested(\n argv: string[],\n output?: CommandOutput\n): Promise<boolean> {\n const commandName = argv[2];\n\n if (commandName === undefined || commandName === \"--help\" || commandName === \"-h\") {\n await printHelpComponent(renderCngkitHelp(), output);\n return true;\n }\n\n if (commandName === \"help\") {\n const [topicName, subtopicName] = argv.slice(3);\n const topic =\n (topicName === \"knowledges\" ||\n topicName === \"coderoom\" ||\n topicName === \"hookify\" ||\n topicName === \"hooks\") &&\n subtopicName\n ? `${topicName}-${subtopicName}`\n : topicName;\n await printHelpComponent(renderCngkitHelp(topic), output);\n return true;\n }\n\n const commandArgs = argv.slice(3);\n const helpIndex = commandArgs.findIndex((argument) => argument === \"--help\" || argument === \"-h\");\n\n if (helpIndex < 0) {\n return false;\n }\n\n if (commandName === \"knowledges\") {\n const topic = commandArgs.find(\n (argument, index) => index !== helpIndex && !argument.startsWith(\"-\")\n );\n await printHelpComponent(renderKnowledgesHelp(topic), output);\n return true;\n }\n\n if (commandName === \"coderoom\") {\n const topic = commandArgs.find(\n (argument, index) => index !== helpIndex && !argument.startsWith(\"-\")\n );\n await printHelpComponent(renderCngkitHelp(topic ? `coderoom-${topic}` : \"coderoom\"), output);\n return true;\n }\n\n if (commandName === \"hookify\") {\n const topic = commandArgs.find(\n (argument, index) => index !== helpIndex && !argument.startsWith(\"-\")\n );\n await printHelpComponent(renderCngkitHelp(topic ? `hookify-${topic}` : \"hookify\"), output);\n return true;\n }\n\n if (commandName === \"hooks\") {\n const topic = commandArgs.find(\n (argument, index) => index !== helpIndex && !argument.startsWith(\"-\")\n );\n await printHelpComponent(renderCngkitHelp(topic ? `hooks-${topic}` : \"hooks\"), output);\n return true;\n }\n\n await printHelpComponent(renderCngkitHelp(commandName), output);\n return true;\n}\n\nasync function printHelpComponent(element: ReactElement, output: CommandOutput | undefined): Promise<void> {\n if (output) {\n output.component(element);\n return;\n }\n\n await renderOnce(element);\n}\n"],"mappings":"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","names":["process","createElement","process","createElement"]}
1
+ {"version":3,"sources":["../src/cli.ts","../src/cli/render-once.ts","../src/cli/help.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport process from \"node:process\";\nimport { createElement } from \"react\";\nimport { Text } from \"ink\";\n\nimport Pastel from \"pastel\";\n\nimport { printHelpIfRequested } from \"./cli/help.js\";\nimport { renderOnce } from \"./cli/render-once.js\";\nimport { packageVersion, parseOutputFormat } from \"./shared/config.js\";\nimport { formatError } from \"./shared/output/errors.js\";\n\ntry {\n const normalizedArgv = normalizeGlobalOptions(process.argv);\n\n if (await printHelpIfRequested(normalizedArgv)) {\n process.exit(0);\n }\n\n guardKnownCommand(normalizedArgv);\n\n const app = new Pastel({\n importMeta: import.meta,\n name: \"cngkit\",\n version: packageVersion,\n description: \"Opinionated CNG CLI kit for Coderoom collaboration and operator workflows.\",\n });\n\n await app.run(normalizedArgv);\n} catch (error) {\n await renderOnce(\n createElement(\n Text,\n {\n bold: true,\n color: \"red\",\n wrap: \"wrap\",\n },\n formatError(error)\n ),\n { stdout: process.stderr }\n );\n process.exitCode = 1;\n}\n\nfunction normalizeGlobalOptions(argv: string[]): string[] {\n const normalizedArgv = [...argv];\n\n for (let index = 2; index < normalizedArgv.length; index += 1) {\n const argument = normalizedArgv[index];\n\n if (argument === \"--format\") {\n const value = normalizedArgv[index + 1];\n if (!value || value.startsWith(\"-\")) {\n throw new Error(\"Missing value for --format\");\n }\n\n process.env.CNGKIT_FORMAT = parseOutputFormat(value);\n normalizedArgv.splice(index, 2);\n index -= 1;\n continue;\n }\n\n if (argument.startsWith(\"--format=\")) {\n process.env.CNGKIT_FORMAT = parseOutputFormat(argument.slice(\"--format=\".length));\n normalizedArgv.splice(index, 1);\n index -= 1;\n continue;\n }\n\n if (argument === \"--no-color\" || argument === \"--no-colors\") {\n process.env.CNGKIT_COLOR = \"never\";\n process.env.CNGKIT_NO_COLOR = \"1\";\n normalizedArgv.splice(index, 1);\n index -= 1;\n continue;\n }\n\n if (argument === \"--color\") {\n process.env.CNGKIT_COLOR = \"always\";\n normalizedArgv.splice(index, 1);\n index -= 1;\n continue;\n }\n\n if (argument.startsWith(\"--color=\")) {\n const colorMode = argument.slice(\"--color=\".length);\n process.env.CNGKIT_COLOR =\n colorMode === \"false\" || colorMode === \"never\" ? \"never\" : \"always\";\n normalizedArgv.splice(index, 1);\n index -= 1;\n }\n }\n\n normalizeKnowledgesFindOptions(normalizedArgv);\n return normalizedArgv;\n}\n\nfunction normalizeKnowledgesFindOptions(argv: string[]): void {\n if (argv[2] !== \"knowledges\" || argv[3] !== \"find\") {\n return;\n }\n\n for (let index = 4; index < argv.length; index += 1) {\n if (argv[index] === \"-name\") {\n argv[index] = \"--name\";\n continue;\n }\n\n if (argv[index] === \"-type\") {\n argv[index] = \"--type\";\n continue;\n }\n\n if (argv[index] === \"-maxdepth\") {\n argv[index] = \"--max-depth\";\n }\n }\n}\n\nfunction guardKnownCommand(argv: string[]): void {\n const commandName = argv[2];\n if (commandName === undefined || commandName.startsWith(\"-\")) {\n return;\n }\n\n const knownCommands = new Set([\n \"help\",\n \"login\",\n \"coderoom\",\n \"scrub\",\n \"transcripts\",\n \"knowledges\",\n \"hooks\",\n \"hookify\",\n ]);\n if (!knownCommands.has(commandName)) {\n throw new Error(`Unknown command \"${commandName}\". Run cngkit --help for available commands.`);\n }\n\n guardKnownSubcommand(commandName, argv.slice(3));\n}\n\nfunction guardKnownSubcommand(commandName: string, commandArgs: string[]): void {\n const subcommand = commandArgs.find((argument) => !argument.startsWith(\"-\"));\n if (!subcommand) {\n return;\n }\n\n if (commandName === \"coderoom\") {\n const knownCoderoomSubcommands = new Set([\"share\", \"join\"]);\n if (!knownCoderoomSubcommands.has(subcommand)) {\n throw new Error(`Unknown coderoom command \"${subcommand}\". Use one of: share, join.`);\n }\n }\n\n if (commandName === \"knowledges\") {\n const knownKnowledgesSubcommands = new Set([\n \"status\",\n \"audiences\",\n \"search\",\n \"list\",\n \"files\",\n \"read\",\n \"cat\",\n \"head\",\n \"tail\",\n \"grep\",\n \"glob\",\n \"ls\",\n \"tree\",\n \"find\",\n \"stat\",\n \"realpath\",\n \"help\",\n ]);\n if (!knownKnowledgesSubcommands.has(subcommand)) {\n throw new Error(\n `Unknown knowledges command \"${subcommand}\". Use one of: status, audiences, search, list, files, read, cat, head, tail, grep, glob, ls, tree, find, stat, realpath.`\n );\n }\n }\n\n if (commandName === \"hookify\") {\n const knownHookifySubcommands = new Set([\"ingest\"]);\n if (!knownHookifySubcommands.has(subcommand)) {\n throw new Error(`Unknown hookify command \"${subcommand}\". Use one of: ingest.`);\n }\n }\n\n if (commandName === \"hooks\") {\n const knownHooksSubcommands = new Set([\"install\", \"uninstall\"]);\n if (!knownHooksSubcommands.has(subcommand)) {\n throw new Error(`Unknown hooks command \"${subcommand}\". Use one of: install, uninstall.`);\n }\n }\n}\n","import process from \"node:process\";\nimport { createElement, useEffect, type ReactElement } from \"react\";\nimport { render, useApp } from \"ink\";\n\ntype OutputStream = NodeJS.WriteStream;\n\nexport async function renderOnce(\n element: ReactElement,\n options?: {\n readonly stdout?: OutputStream;\n }\n): Promise<void> {\n const instance = render(createElement(ExitAfterFirstRender, { element }), {\n stdin: process.stdin,\n stdout: options?.stdout ?? process.stdout,\n stderr: process.stderr,\n });\n await instance.waitUntilExit();\n}\n\nfunction ExitAfterFirstRender({ element }: { readonly element: ReactElement }) {\n const { exit } = useApp();\n\n useEffect(() => {\n queueMicrotask(() => exit());\n }, [exit]);\n\n return element;\n}\n","import type { ReactElement } from \"react\";\n\nimport { renderCngkitHelp, renderKnowledgesHelp } from \"./help-specs.js\";\nimport { renderOnce } from \"./render-once.js\";\nimport type { CommandOutput } from \"../shared/output/types.js\";\n\nexport async function printHelpIfRequested(\n argv: string[],\n output?: CommandOutput\n): Promise<boolean> {\n const commandName = argv[2];\n\n if (commandName === undefined || commandName === \"--help\" || commandName === \"-h\") {\n await printHelpComponent(renderCngkitHelp(), output);\n return true;\n }\n\n if (commandName === \"help\") {\n const [topicName, subtopicName] = argv.slice(3);\n const topic =\n (topicName === \"knowledges\" ||\n topicName === \"coderoom\" ||\n topicName === \"hookify\" ||\n topicName === \"hooks\") &&\n subtopicName\n ? `${topicName}-${subtopicName}`\n : topicName;\n await printHelpComponent(renderCngkitHelp(topic), output);\n return true;\n }\n\n const commandArgs = argv.slice(3);\n const helpIndex = commandArgs.findIndex((argument) => argument === \"--help\" || argument === \"-h\");\n\n if (helpIndex < 0) {\n return false;\n }\n\n if (commandName === \"knowledges\") {\n const topic = commandArgs.find(\n (argument, index) => index !== helpIndex && !argument.startsWith(\"-\")\n );\n await printHelpComponent(renderKnowledgesHelp(topic), output);\n return true;\n }\n\n if (commandName === \"coderoom\") {\n const topic = commandArgs.find(\n (argument, index) => index !== helpIndex && !argument.startsWith(\"-\")\n );\n await printHelpComponent(renderCngkitHelp(topic ? `coderoom-${topic}` : \"coderoom\"), output);\n return true;\n }\n\n if (commandName === \"hookify\") {\n const topic = commandArgs.find(\n (argument, index) => index !== helpIndex && !argument.startsWith(\"-\")\n );\n await printHelpComponent(renderCngkitHelp(topic ? `hookify-${topic}` : \"hookify\"), output);\n return true;\n }\n\n if (commandName === \"hooks\") {\n const topic = commandArgs.find(\n (argument, index) => index !== helpIndex && !argument.startsWith(\"-\")\n );\n await printHelpComponent(renderCngkitHelp(topic ? `hooks-${topic}` : \"hooks\"), output);\n return true;\n }\n\n await printHelpComponent(renderCngkitHelp(commandName), output);\n return true;\n}\n\nasync function printHelpComponent(element: ReactElement, output: CommandOutput | undefined): Promise<void> {\n if (output) {\n output.component(element);\n return;\n }\n\n await renderOnce(element);\n}\n"],"mappings":"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","names":["process","createElement","process","createElement"]}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  renderCngkitHelp
3
- } from "../../chunk-SKK2XLRZ.js";
3
+ } from "../../chunk-JNHW72SU.js";
4
4
  import {
5
5
  GlobalOptionsSchema
6
- } from "../../chunk-NGEWD4BW.js";
6
+ } from "../../chunk-25Q463MH.js";
7
7
  import {
8
8
  CommandRunner
9
- } from "../../chunk-52PGDSFU.js";
10
- import "../../chunk-DIJEVOVN.js";
9
+ } from "../../chunk-WIEYHKQA.js";
10
+ import "../../chunk-67FUBMNB.js";
11
11
  import "../../chunk-PZ5AY32C.js";
12
12
 
13
13
  // src/commands/coderoom/index.tsx
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  runJoinCommand
3
- } from "../../chunk-CVF2ODLP.js";
4
- import "../../chunk-YJXAH7D5.js";
3
+ } from "../../chunk-BXS4IKUA.js";
4
+ import "../../chunk-GYRLVNJX.js";
5
5
  import {
6
6
  GlobalOptionsSchema,
7
7
  RequiredRoomCodeArgsSchema
8
- } from "../../chunk-NGEWD4BW.js";
8
+ } from "../../chunk-25Q463MH.js";
9
9
  import {
10
10
  CommandRunner
11
- } from "../../chunk-52PGDSFU.js";
12
- import "../../chunk-DIJEVOVN.js";
11
+ } from "../../chunk-WIEYHKQA.js";
12
+ import "../../chunk-67FUBMNB.js";
13
13
  import "../../chunk-PZ5AY32C.js";
14
14
 
15
15
  // src/commands/coderoom/join.tsx
@@ -1,27 +1,24 @@
1
1
  import {
2
2
  runShareCommand
3
- } from "../../chunk-CVF2ODLP.js";
4
- import "../../chunk-YJXAH7D5.js";
3
+ } from "../../chunk-BXS4IKUA.js";
4
+ import "../../chunk-GYRLVNJX.js";
5
5
  import {
6
- GlobalOptionsSchema,
7
- OptionalRoomCodeArgsSchema
8
- } from "../../chunk-NGEWD4BW.js";
6
+ GlobalOptionsSchema
7
+ } from "../../chunk-25Q463MH.js";
9
8
  import {
10
9
  CommandRunner
11
- } from "../../chunk-52PGDSFU.js";
12
- import "../../chunk-DIJEVOVN.js";
10
+ } from "../../chunk-WIEYHKQA.js";
11
+ import "../../chunk-67FUBMNB.js";
13
12
  import "../../chunk-PZ5AY32C.js";
14
13
 
15
14
  // src/commands/coderoom/share.tsx
16
15
  import { jsx } from "react/jsx-runtime";
17
16
  var description = "Start a live room from the current directory";
18
- var args = OptionalRoomCodeArgsSchema;
19
17
  var options = GlobalOptionsSchema;
20
- function ShareCommand({ args: args2, options: options2 }) {
21
- return /* @__PURE__ */ jsx(CommandRunner, { run: (output) => runShareCommand(args2[0], options2, output) });
18
+ function ShareCommand({ options: options2 }) {
19
+ return /* @__PURE__ */ jsx(CommandRunner, { run: (output) => runShareCommand(options2, output) });
22
20
  }
23
21
  export {
24
- args,
25
22
  ShareCommand as default,
26
23
  description,
27
24
  options
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/coderoom/share.tsx"],"sourcesContent":["import { GlobalOptionsSchema, OptionalRoomCodeArgsSchema } from \"../../cli/options.js\";\nimport { runShareCommand, type ShareCommandOptions } from \"../../features/coderoom/run-coderoom-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Start a live room from the current directory\";\nexport const args = OptionalRoomCodeArgsSchema;\nexport const options = GlobalOptionsSchema;\n\ntype ShareCommandProps = {\n readonly args: [string?];\n readonly options: ShareCommandOptions;\n};\n\nexport default function ShareCommand({ args, options }: ShareCommandProps) {\n return <CommandRunner run={(output) => runShareCommand(args[0], options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAcS;AAVF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU;AAOR,SAAR,aAA8B,EAAE,MAAAA,OAAM,SAAAC,SAAQ,GAAsB;AACzE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,gBAAgBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACpF;","names":["args","options"]}
1
+ {"version":3,"sources":["../../../src/commands/coderoom/share.tsx"],"sourcesContent":["import { GlobalOptionsSchema } from \"../../cli/options.js\";\nimport {\n runShareCommand,\n type ShareCommandOptions,\n} from \"../../features/coderoom/run-coderoom-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Start a live room from the current directory\";\nexport const options = GlobalOptionsSchema;\n\ntype ShareCommandProps = {\n readonly options: ShareCommandOptions;\n};\n\nexport default function ShareCommand({ options }: ShareCommandProps) {\n return <CommandRunner run={(output) => runShareCommand(options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;AAeS;AARF,IAAM,cAAc;AACpB,IAAM,UAAU;AAMR,SAAR,aAA8B,EAAE,SAAAA,SAAQ,GAAsB;AACnE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,gBAAgBA,UAAS,MAAM,GAAG;AAC3E;","names":["options"]}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  renderCngkitHelp
3
- } from "../../chunk-SKK2XLRZ.js";
3
+ } from "../../chunk-JNHW72SU.js";
4
4
  import {
5
5
  GlobalOptionsSchema
6
- } from "../../chunk-NGEWD4BW.js";
6
+ } from "../../chunk-25Q463MH.js";
7
7
  import {
8
8
  CommandRunner
9
- } from "../../chunk-52PGDSFU.js";
10
- import "../../chunk-DIJEVOVN.js";
9
+ } from "../../chunk-WIEYHKQA.js";
10
+ import "../../chunk-67FUBMNB.js";
11
11
  import "../../chunk-PZ5AY32C.js";
12
12
 
13
13
  // src/commands/hookify/index.tsx
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createCngApiClient
3
- } from "../../chunk-YJXAH7D5.js";
3
+ } from "../../chunk-GYRLVNJX.js";
4
4
  import {
5
5
  GlobalOptionsSchema
6
- } from "../../chunk-NGEWD4BW.js";
6
+ } from "../../chunk-25Q463MH.js";
7
7
  import {
8
8
  CommandRunner
9
- } from "../../chunk-52PGDSFU.js";
10
- import "../../chunk-DIJEVOVN.js";
9
+ } from "../../chunk-WIEYHKQA.js";
10
+ import "../../chunk-67FUBMNB.js";
11
11
  import "../../chunk-PZ5AY32C.js";
12
12
 
13
13
  // src/commands/hookify/ingest.tsx
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  renderCngkitHelp
3
- } from "../../chunk-SKK2XLRZ.js";
3
+ } from "../../chunk-JNHW72SU.js";
4
4
  import {
5
5
  GlobalOptionsSchema
6
- } from "../../chunk-NGEWD4BW.js";
6
+ } from "../../chunk-25Q463MH.js";
7
7
  import {
8
8
  CommandRunner
9
- } from "../../chunk-52PGDSFU.js";
10
- import "../../chunk-DIJEVOVN.js";
9
+ } from "../../chunk-WIEYHKQA.js";
10
+ import "../../chunk-67FUBMNB.js";
11
11
  import "../../chunk-PZ5AY32C.js";
12
12
 
13
13
  // src/commands/hooks/index.tsx