cngkit 1.1.20 → 1.1.22

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 +8 -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-AS7FIJWP.js +88 -0
  7. package/dist/chunk-AS7FIJWP.js.map +1 -0
  8. package/dist/chunk-BRFWVQI4.js +18 -0
  9. package/dist/chunk-BRFWVQI4.js.map +1 -0
  10. package/dist/{chunk-WDI43VPW.js → chunk-DCW4RKLC.js} +63 -234
  11. package/dist/chunk-DCW4RKLC.js.map +1 -0
  12. package/dist/{chunk-SKK2XLRZ.js → chunk-JNHW72SU.js} +21 -15
  13. package/dist/chunk-JNHW72SU.js.map +1 -0
  14. package/dist/{chunk-E2GLGGKO.js → chunk-KURN5BJ6.js} +300 -143
  15. package/dist/chunk-KURN5BJ6.js.map +1 -0
  16. package/dist/{chunk-CIZBVLN5.js → chunk-N255PYL7.js} +2 -2
  17. package/dist/chunk-N255PYL7.js.map +1 -0
  18. package/dist/chunk-NLAANOBW.js +67 -0
  19. package/dist/chunk-NLAANOBW.js.map +1 -0
  20. package/dist/chunk-TIY4RTXC.js +268 -0
  21. package/dist/chunk-TIY4RTXC.js.map +1 -0
  22. package/dist/chunk-VMTXY4KQ.js +111 -0
  23. package/dist/chunk-VMTXY4KQ.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-CIZBVLN5.js.map +0 -1
  79. package/dist/chunk-E2GLGGKO.js.map +0 -1
  80. package/dist/chunk-MRXGD6TC.js +0 -42
  81. package/dist/chunk-MRXGD6TC.js.map +0 -1
  82. package/dist/chunk-NODJM6SH.js +0 -658
  83. package/dist/chunk-NODJM6SH.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-WDI43VPW.js.map +0 -1
  87. /package/dist/{chunk-NGEWD4BW.js.map → chunk-25Q463MH.js.map} +0 -0
@@ -1,22 +1,62 @@
1
1
  import {
2
- runKnowFindCommand
3
- } from "../../chunk-NODJM6SH.js";
4
- import "../../chunk-XQGLUQFM.js";
5
- import "../../chunk-SKK2XLRZ.js";
6
- import "../../chunk-CIZBVLN5.js";
2
+ coerceOptionalFiniteNumber,
3
+ compareFilesystemEntries,
4
+ formatFilesystemEntryPath
5
+ } from "../../chunk-YALWTRIP.js";
6
+ import {
7
+ createKnowledgesApi
8
+ } from "../../chunk-NLAANOBW.js";
9
+ import {
10
+ formatCatalogPathForDisplay,
11
+ normalizeFilesystemCatalogPath
12
+ } from "../../chunk-AS7FIJWP.js";
13
+ import "../../chunk-N255PYL7.js";
14
+ import {
15
+ coerceLimit,
16
+ formatJson,
17
+ shouldPrintJson
18
+ } from "../../chunk-XQGLUQFM.js";
7
19
  import {
8
20
  JsonOutputOptionsSchema,
9
21
  OptionalPathArgsSchema
10
- } from "../../chunk-NGEWD4BW.js";
22
+ } from "../../chunk-25Q463MH.js";
11
23
  import {
12
24
  CommandRunner
13
- } from "../../chunk-MRXGD6TC.js";
14
- import "../../chunk-WDI43VPW.js";
25
+ } from "../../chunk-TIY4RTXC.js";
26
+ import "../../chunk-DCW4RKLC.js";
15
27
  import "../../chunk-PZ5AY32C.js";
16
28
 
17
29
  // src/commands/knowledges/find.tsx
18
30
  import { option } from "pastel";
19
31
  import { z } from "zod";
32
+
33
+ // src/features/knowledges/handlers/find.ts
34
+ async function runKnowFindCommand(path, options2, output, dependencies) {
35
+ const api = dependencies?.api ?? createKnowledgesApi(options2);
36
+ const response = await api.find({
37
+ path: normalizeFilesystemCatalogPath(path ?? "/"),
38
+ name: options2.name,
39
+ type: options2.type,
40
+ maxDepth: coerceOptionalFiniteNumber(options2.maxDepth),
41
+ limit: coerceLimit(options2.limit, 500, 2e3)
42
+ });
43
+ if (shouldPrintJson(options2)) {
44
+ output.raw(formatJson(response.data));
45
+ return;
46
+ }
47
+ const entries = [...response.data.entries].sort(compareFilesystemEntries);
48
+ const lines = entries.map(formatFilesystemEntryPath);
49
+ if (lines.length > 0) {
50
+ output.raw(lines.join("\n"));
51
+ } else {
52
+ output.warning(`No entries found under ${formatCatalogPathForDisplay(response.data.path)}.`);
53
+ }
54
+ if (response.data.truncated) {
55
+ output.warning(`[truncated: ${response.data.total_entries} total entries]`);
56
+ }
57
+ }
58
+
59
+ // src/commands/knowledges/find.tsx
20
60
  import { jsx } from "react/jsx-runtime";
21
61
  var description = "Find remote catalog paths";
22
62
  var args = OptionalPathArgsSchema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/knowledges/find.tsx"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { JsonOutputOptionsSchema, OptionalPathArgsSchema } from \"../../cli/options.js\";\nimport { runKnowFindCommand, type KnowFindCommandOptions } from \"../../features/knowledges/run-knowledges-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Find remote catalog paths\";\nexport const args = OptionalPathArgsSchema;\nexport const options = JsonOutputOptionsSchema.extend({\n name: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Basename wildcard pattern\",\n valueDescription: \"pattern\",\n })\n ),\n type: z\n .enum([\"file\", \"directory\", \"f\", \"d\"])\n .transform((value) => {\n if (value === \"f\") {\n return \"file\";\n }\n\n if (value === \"d\") {\n return \"directory\";\n }\n\n return value;\n })\n .optional()\n .describe(\n option({\n description: \"Path type: file or directory\",\n valueDescription: \"type\",\n })\n ),\n maxDepth: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Maximum descendant depth\",\n valueDescription: \"n\",\n })\n ),\n limit: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Maximum results\",\n valueDescription: \"n\",\n })\n ),\n});\n\ntype FindCommandProps = {\n readonly args: [string?];\n readonly options: KnowFindCommandOptions;\n};\n\nexport default function FindCommand({ args, options }: FindCommandProps) {\n return <CommandRunner run={(output) => runKnowFindCommand(args[0], options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;AAgET;AA1DF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,wBAAwB,OAAO;AAAA,EACpD,MAAM,EACH,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,MAAM,EACH,KAAK,CAAC,QAAQ,aAAa,KAAK,GAAG,CAAC,EACpC,UAAU,CAAC,UAAU;AACpB,QAAI,UAAU,KAAK;AACjB,aAAO;AAAA,IACT;AAEA,QAAI,UAAU,KAAK;AACjB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,CAAC,EACA,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,UAAU,EACP,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,OAAO,EACJ,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAA,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACvF;","names":["args","options"]}
1
+ {"version":3,"sources":["../../../src/commands/knowledges/find.tsx","../../../src/features/knowledges/handlers/find.ts"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { JsonOutputOptionsSchema, OptionalPathArgsSchema } from \"../../cli/options.js\";\nimport { runKnowFindCommand } from \"../../features/knowledges/handlers/find.js\";\nimport type { KnowFindCommandOptions } from \"../../features/knowledges/knowledges-options.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Find remote catalog paths\";\nexport const args = OptionalPathArgsSchema;\nexport const options = JsonOutputOptionsSchema.extend({\n name: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Basename wildcard pattern\",\n valueDescription: \"pattern\",\n })\n ),\n type: z\n .enum([\"file\", \"directory\", \"f\", \"d\"])\n .transform((value) => {\n if (value === \"f\") {\n return \"file\";\n }\n\n if (value === \"d\") {\n return \"directory\";\n }\n\n return value;\n })\n .optional()\n .describe(\n option({\n description: \"Path type: file or directory\",\n valueDescription: \"type\",\n })\n ),\n maxDepth: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Maximum descendant depth\",\n valueDescription: \"n\",\n })\n ),\n limit: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Maximum results\",\n valueDescription: \"n\",\n })\n ),\n});\n\ntype FindCommandProps = {\n readonly args: [string?];\n readonly options: KnowFindCommandOptions;\n};\n\nexport default function FindCommand({ args, options }: FindCommandProps) {\n return <CommandRunner run={(output) => runKnowFindCommand(args[0], options, output)} />;\n}\n","import { coerceLimit, formatJson, shouldPrintJson } from \"../../../shared/command-utils.js\";\nimport type { CommandOutput } from \"../../../shared/output/types.js\";\nimport {\n coerceOptionalFiniteNumber,\n compareFilesystemEntries,\n formatFilesystemEntryPath,\n} from \"../format/filesystem-format.js\";\nimport { createKnowledgesApi, type KnowCommandDependencies } from \"../knowledges-api.js\";\nimport { formatCatalogPathForDisplay, normalizeFilesystemCatalogPath } from \"../knowledges-input.js\";\nimport type { KnowFindCommandOptions } from \"../knowledges-options.js\";\n\nexport async function runKnowFindCommand(\n path: string | undefined,\n options: KnowFindCommandOptions,\n output: CommandOutput,\n dependencies?: KnowCommandDependencies\n): Promise<void> {\n const api = dependencies?.api ?? createKnowledgesApi(options);\n const response = await api.find({\n path: normalizeFilesystemCatalogPath(path ?? \"/\"),\n name: options.name,\n type: options.type,\n maxDepth: coerceOptionalFiniteNumber(options.maxDepth),\n limit: coerceLimit(options.limit, 500, 2000),\n });\n\n if (shouldPrintJson(options)) {\n output.raw(formatJson(response.data));\n return;\n }\n\n const entries = [...response.data.entries].sort(compareFilesystemEntries);\n const lines = entries.map(formatFilesystemEntryPath);\n\n if (lines.length > 0) {\n output.raw(lines.join(\"\\n\"));\n } else {\n output.warning(`No entries found under ${formatCatalogPathForDisplay(response.data.path)}.`);\n }\n\n if (response.data.truncated) {\n output.warning(`[truncated: ${response.data.total_entries} total entries]`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;;;ACUlB,eAAsB,mBACpB,MACAA,UACA,QACA,cACe;AACf,QAAM,MAAM,cAAc,OAAO,oBAAoBA,QAAO;AAC5D,QAAM,WAAW,MAAM,IAAI,KAAK;AAAA,IAC9B,MAAM,+BAA+B,QAAQ,GAAG;AAAA,IAChD,MAAMA,SAAQ;AAAA,IACd,MAAMA,SAAQ;AAAA,IACd,UAAU,2BAA2BA,SAAQ,QAAQ;AAAA,IACrD,OAAO,YAAYA,SAAQ,OAAO,KAAK,GAAI;AAAA,EAC7C,CAAC;AAED,MAAI,gBAAgBA,QAAO,GAAG;AAC5B,WAAO,IAAI,WAAW,SAAS,IAAI,CAAC;AACpC;AAAA,EACF;AAEA,QAAM,UAAU,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,KAAK,wBAAwB;AACxE,QAAM,QAAQ,QAAQ,IAAI,yBAAyB;AAEnD,MAAI,MAAM,SAAS,GAAG;AACpB,WAAO,IAAI,MAAM,KAAK,IAAI,CAAC;AAAA,EAC7B,OAAO;AACL,WAAO,QAAQ,0BAA0B,4BAA4B,SAAS,KAAK,IAAI,CAAC,GAAG;AAAA,EAC7F;AAEA,MAAI,SAAS,KAAK,WAAW;AAC3B,WAAO,QAAQ,eAAe,SAAS,KAAK,aAAa,iBAAiB;AAAA,EAC5E;AACF;;;ADuBS;AA1DF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,wBAAwB,OAAO;AAAA,EACpD,MAAM,EACH,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,MAAM,EACH,KAAK,CAAC,QAAQ,aAAa,KAAK,GAAG,CAAC,EACpC,UAAU,CAAC,UAAU;AACpB,QAAI,UAAU,KAAK;AACjB,aAAO;AAAA,IACT;AAEA,QAAI,UAAU,KAAK;AACjB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,CAAC,EACA,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,UAAU,EACP,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,OAAO,EACJ,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAC,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACvF;","names":["options","args","options"]}
@@ -1,22 +1,55 @@
1
1
  import {
2
- runKnowGlobCommand
3
- } from "../../chunk-NODJM6SH.js";
4
- import "../../chunk-XQGLUQFM.js";
5
- import "../../chunk-SKK2XLRZ.js";
6
- import "../../chunk-CIZBVLN5.js";
2
+ createKnowledgesApi
3
+ } from "../../chunk-NLAANOBW.js";
4
+ import {
5
+ formatCatalogPathForDisplay,
6
+ normalizeCatalogPath
7
+ } from "../../chunk-AS7FIJWP.js";
8
+ import "../../chunk-N255PYL7.js";
9
+ import {
10
+ coerceOptionalNumber,
11
+ formatJson,
12
+ shouldPrintJson
13
+ } from "../../chunk-XQGLUQFM.js";
7
14
  import {
8
15
  LimitOptionsSchema,
9
16
  OptionalGlobPatternArgsSchema
10
- } from "../../chunk-NGEWD4BW.js";
17
+ } from "../../chunk-25Q463MH.js";
11
18
  import {
12
19
  CommandRunner
13
- } from "../../chunk-MRXGD6TC.js";
14
- import "../../chunk-WDI43VPW.js";
20
+ } from "../../chunk-TIY4RTXC.js";
21
+ import "../../chunk-DCW4RKLC.js";
15
22
  import "../../chunk-PZ5AY32C.js";
16
23
 
17
24
  // src/commands/knowledges/glob.tsx
18
25
  import { option } from "pastel";
19
26
  import { z } from "zod";
27
+
28
+ // src/features/knowledges/handlers/glob.ts
29
+ async function runKnowGlobCommand(pattern, options2, output, dependencies) {
30
+ const api = dependencies?.api ?? createKnowledgesApi(options2);
31
+ const limit = options2.limit !== void 0 ? coerceOptionalNumber(options2.limit) : void 0;
32
+ const response = await api.glob({
33
+ pattern: pattern ?? "**/*.md",
34
+ path: normalizeCatalogPath(options2.path ?? "/")
35
+ });
36
+ if (shouldPrintJson(options2)) {
37
+ output.raw(formatJson(response.data));
38
+ return;
39
+ }
40
+ const files = limit ? response.data.files.slice(0, limit) : response.data.files;
41
+ const wasClientTruncated = limit ? response.data.files.length > limit : false;
42
+ if (files.length > 0) {
43
+ output.raw(files.map(formatCatalogPathForDisplay).join("\n"));
44
+ } else {
45
+ output.warning("No matching files.");
46
+ }
47
+ if (response.data.truncated || wasClientTruncated) {
48
+ output.warning(`[truncated: ${response.data.total_files} total files]`);
49
+ }
50
+ }
51
+
52
+ // src/commands/knowledges/glob.tsx
20
53
  import { jsx } from "react/jsx-runtime";
21
54
  var description = "Claude-style file discovery";
22
55
  var args = OptionalGlobPatternArgsSchema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/knowledges/glob.tsx"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { LimitOptionsSchema, OptionalGlobPatternArgsSchema } from \"../../cli/options.js\";\nimport { runKnowGlobCommand, type KnowGlobCommandOptions } from \"../../features/knowledges/run-knowledges-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Claude-style file discovery\";\nexport const args = OptionalGlobPatternArgsSchema;\nexport const options = LimitOptionsSchema.extend({\n path: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Catalog path prefix\",\n valueDescription: \"path\",\n })\n ),\n});\n\ntype GlobCommandProps = {\n readonly args: string[];\n readonly options: KnowGlobCommandOptions;\n};\n\nexport default function GlobCommand({ args, options }: GlobCommandProps) {\n return <CommandRunner run={(output) => runKnowGlobCommand(args.join(\" \"), options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;AA0BT;AApBF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAC/C,MAAM,EACH,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAA,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,KAAK,GAAG,GAAGC,UAAS,MAAM,GAAG;AAC9F;","names":["args","options"]}
1
+ {"version":3,"sources":["../../../src/commands/knowledges/glob.tsx","../../../src/features/knowledges/handlers/glob.ts"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { LimitOptionsSchema, OptionalGlobPatternArgsSchema } from \"../../cli/options.js\";\nimport { runKnowGlobCommand } from \"../../features/knowledges/handlers/glob.js\";\nimport type { KnowGlobCommandOptions } from \"../../features/knowledges/knowledges-options.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Claude-style file discovery\";\nexport const args = OptionalGlobPatternArgsSchema;\nexport const options = LimitOptionsSchema.extend({\n path: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Catalog path prefix\",\n valueDescription: \"path\",\n })\n ),\n});\n\ntype GlobCommandProps = {\n readonly args: string[];\n readonly options: KnowGlobCommandOptions;\n};\n\nexport default function GlobCommand({ args, options }: GlobCommandProps) {\n return <CommandRunner run={(output) => runKnowGlobCommand(args.join(\" \"), options, output)} />;\n}\n","import {\n coerceOptionalNumber,\n formatJson,\n shouldPrintJson,\n} from \"../../../shared/command-utils.js\";\nimport type { CommandOutput } from \"../../../shared/output/types.js\";\nimport { createKnowledgesApi, type KnowCommandDependencies } from \"../knowledges-api.js\";\nimport { formatCatalogPathForDisplay, normalizeCatalogPath } from \"../knowledges-input.js\";\nimport type { KnowGlobCommandOptions } from \"../knowledges-options.js\";\n\nexport async function runKnowGlobCommand(\n pattern: string | undefined,\n options: KnowGlobCommandOptions,\n output: CommandOutput,\n dependencies?: KnowCommandDependencies\n): Promise<void> {\n const api = dependencies?.api ?? createKnowledgesApi(options);\n const limit = options.limit !== undefined ? coerceOptionalNumber(options.limit) : undefined;\n const response = await api.glob({\n pattern: pattern ?? \"**/*.md\",\n path: normalizeCatalogPath(options.path ?? \"/\"),\n });\n\n if (shouldPrintJson(options)) {\n output.raw(formatJson(response.data));\n return;\n }\n\n const files = limit ? response.data.files.slice(0, limit) : response.data.files;\n const wasClientTruncated = limit ? response.data.files.length > limit : false;\n\n if (files.length > 0) {\n output.raw(files.map(formatCatalogPathForDisplay).join(\"\\n\"));\n } else {\n output.warning(\"No matching files.\");\n }\n if (response.data.truncated || wasClientTruncated) {\n output.warning(`[truncated: ${response.data.total_files} total files]`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;;;ACSlB,eAAsB,mBACpB,SACAA,UACA,QACA,cACe;AACf,QAAM,MAAM,cAAc,OAAO,oBAAoBA,QAAO;AAC5D,QAAM,QAAQA,SAAQ,UAAU,SAAY,qBAAqBA,SAAQ,KAAK,IAAI;AAClF,QAAM,WAAW,MAAM,IAAI,KAAK;AAAA,IAC9B,SAAS,WAAW;AAAA,IACpB,MAAM,qBAAqBA,SAAQ,QAAQ,GAAG;AAAA,EAChD,CAAC;AAED,MAAI,gBAAgBA,QAAO,GAAG;AAC5B,WAAO,IAAI,WAAW,SAAS,IAAI,CAAC;AACpC;AAAA,EACF;AAEA,QAAM,QAAQ,QAAQ,SAAS,KAAK,MAAM,MAAM,GAAG,KAAK,IAAI,SAAS,KAAK;AAC1E,QAAM,qBAAqB,QAAQ,SAAS,KAAK,MAAM,SAAS,QAAQ;AAExE,MAAI,MAAM,SAAS,GAAG;AACpB,WAAO,IAAI,MAAM,IAAI,2BAA2B,EAAE,KAAK,IAAI,CAAC;AAAA,EAC9D,OAAO;AACL,WAAO,QAAQ,oBAAoB;AAAA,EACrC;AACA,MAAI,SAAS,KAAK,aAAa,oBAAoB;AACjD,WAAO,QAAQ,eAAe,SAAS,KAAK,WAAW,eAAe;AAAA,EACxE;AACF;;;ADXS;AApBF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAC/C,MAAM,EACH,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAC,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,KAAK,GAAG,GAAGC,UAAS,MAAM,GAAG;AAC9F;","names":["options","args","options"]}
@@ -1,22 +1,87 @@
1
1
  import {
2
- runKnowGrepCommand
3
- } from "../../chunk-NODJM6SH.js";
4
- import "../../chunk-XQGLUQFM.js";
5
- import "../../chunk-SKK2XLRZ.js";
6
- import "../../chunk-CIZBVLN5.js";
2
+ createKnowledgesApi
3
+ } from "../../chunk-NLAANOBW.js";
4
+ import {
5
+ formatCatalogPathForDisplay,
6
+ normalizeCatalogPath,
7
+ normalizeGrepMode
8
+ } from "../../chunk-AS7FIJWP.js";
9
+ import "../../chunk-N255PYL7.js";
10
+ import {
11
+ coerceLimit,
12
+ coerceOptionalNumber,
13
+ formatJson,
14
+ shouldPrintJson
15
+ } from "../../chunk-XQGLUQFM.js";
7
16
  import {
8
17
  LimitOptionsSchema,
9
18
  RequiredPatternArgsSchema
10
- } from "../../chunk-NGEWD4BW.js";
19
+ } from "../../chunk-25Q463MH.js";
11
20
  import {
12
21
  CommandRunner
13
- } from "../../chunk-MRXGD6TC.js";
14
- import "../../chunk-WDI43VPW.js";
22
+ } from "../../chunk-TIY4RTXC.js";
23
+ import "../../chunk-DCW4RKLC.js";
15
24
  import "../../chunk-PZ5AY32C.js";
16
25
 
17
26
  // src/commands/knowledges/grep.tsx
18
27
  import { option } from "pastel";
19
28
  import { z } from "zod";
29
+
30
+ // src/features/knowledges/handlers/grep.ts
31
+ async function runKnowGrepCommand(pattern, options2, output, dependencies) {
32
+ if (!pattern) {
33
+ throw new Error("Missing pattern. Usage: cngkit knowledges grep <pattern>");
34
+ }
35
+ const api = dependencies?.api ?? createKnowledgesApi(options2);
36
+ const limit = options2.limit !== void 0 ? coerceOptionalNumber(options2.limit) : void 0;
37
+ const response = await api.grep({
38
+ pattern,
39
+ path: normalizeCatalogPath(options2.path ?? "/"),
40
+ include: options2.include ?? "*",
41
+ mode: normalizeGrepMode(options2.outputMode),
42
+ context: coerceLimit(options2.context, 0, 20),
43
+ ignoreCase: options2.caseInsensitive === true
44
+ });
45
+ if (shouldPrintJson(options2)) {
46
+ output.raw(formatJson(response.data));
47
+ return;
48
+ }
49
+ if (response.data.mode === "files_with_matches") {
50
+ const files = limit ? response.data.files.slice(0, limit) : response.data.files;
51
+ if (files.length > 0) {
52
+ output.raw(files.map(formatCatalogPathForDisplay).join("\n"));
53
+ return;
54
+ }
55
+ output.warning(`No files matched "${pattern}".`);
56
+ return;
57
+ }
58
+ if (response.data.mode === "count") {
59
+ const counts = limit ? response.data.counts.slice(0, limit) : response.data.counts;
60
+ const lines2 = counts.map(
61
+ (count) => `${formatCatalogPathForDisplay(count.file_path)}: ${count.match_count}`
62
+ );
63
+ if (lines2.length > 0) {
64
+ output.raw(lines2.join("\n"));
65
+ return;
66
+ }
67
+ output.warning(`No matches for "${pattern}".`);
68
+ return;
69
+ }
70
+ const matches = limit ? response.data.matches.slice(0, limit) : response.data.matches;
71
+ const lines = matches.flatMap((match) => [
72
+ `${formatCatalogPathForDisplay(match.file_path)}:${match.line_number}`,
73
+ ...match.context_before.map((line) => ` ${line}`),
74
+ `> ${match.line}`,
75
+ ...match.context_after.map((line) => ` ${line}`)
76
+ ]);
77
+ if (lines.length > 0) {
78
+ output.raw(lines.join("\n"));
79
+ return;
80
+ }
81
+ output.warning(`No matches for "${pattern}".`);
82
+ }
83
+
84
+ // src/commands/knowledges/grep.tsx
20
85
  import { jsx } from "react/jsx-runtime";
21
86
  var description = "Claude-style content search";
22
87
  var args = RequiredPatternArgsSchema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/knowledges/grep.tsx"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { LimitOptionsSchema, RequiredPatternArgsSchema } from \"../../cli/options.js\";\nimport { runKnowGrepCommand, type KnowGrepCommandOptions } from \"../../features/knowledges/run-knowledges-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Claude-style content search\";\nexport const args = RequiredPatternArgsSchema;\nexport const options = LimitOptionsSchema.extend({\n path: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Catalog path prefix\",\n valueDescription: \"path\",\n })\n ),\n include: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Filename include filter\",\n valueDescription: \"glob\",\n })\n ),\n outputMode: z\n .enum([\"content\", \"files_with_matches\", \"count\"])\n .optional()\n .describe(\n option({\n description: \"Output mode: content, files_with_matches, count\",\n valueDescription: \"mode\",\n })\n ),\n context: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Context lines around content matches\",\n valueDescription: \"n\",\n })\n ),\n caseInsensitive: z\n .boolean()\n .optional()\n .describe(\n option({\n description: \"Case-insensitive search\",\n })\n ),\n});\n\ntype GrepCommandProps = {\n readonly args: string[];\n readonly options: KnowGrepCommandOptions;\n};\n\nexport default function GrepCommand({ args, options }: GrepCommandProps) {\n return <CommandRunner run={(output) => runKnowGrepCommand(args.join(\" \"), options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;AA6DT;AAvDF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAC/C,MAAM,EACH,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,SAAS,EACN,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,YAAY,EACT,KAAK,CAAC,WAAW,sBAAsB,OAAO,CAAC,EAC/C,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,SAAS,EACN,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,iBAAiB,EACd,QAAQ,EACR,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAA,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,KAAK,GAAG,GAAGC,UAAS,MAAM,GAAG;AAC9F;","names":["args","options"]}
1
+ {"version":3,"sources":["../../../src/commands/knowledges/grep.tsx","../../../src/features/knowledges/handlers/grep.ts"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { LimitOptionsSchema, RequiredPatternArgsSchema } from \"../../cli/options.js\";\nimport { runKnowGrepCommand } from \"../../features/knowledges/handlers/grep.js\";\nimport type { KnowGrepCommandOptions } from \"../../features/knowledges/knowledges-options.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Claude-style content search\";\nexport const args = RequiredPatternArgsSchema;\nexport const options = LimitOptionsSchema.extend({\n path: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Catalog path prefix\",\n valueDescription: \"path\",\n })\n ),\n include: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Filename include filter\",\n valueDescription: \"glob\",\n })\n ),\n outputMode: z\n .enum([\"content\", \"files_with_matches\", \"count\"])\n .optional()\n .describe(\n option({\n description: \"Output mode: content, files_with_matches, count\",\n valueDescription: \"mode\",\n })\n ),\n context: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Context lines around content matches\",\n valueDescription: \"n\",\n })\n ),\n caseInsensitive: z\n .boolean()\n .optional()\n .describe(\n option({\n description: \"Case-insensitive search\",\n })\n ),\n});\n\ntype GrepCommandProps = {\n readonly args: string[];\n readonly options: KnowGrepCommandOptions;\n};\n\nexport default function GrepCommand({ args, options }: GrepCommandProps) {\n return <CommandRunner run={(output) => runKnowGrepCommand(args.join(\" \"), options, output)} />;\n}\n","import {\n coerceLimit,\n coerceOptionalNumber,\n formatJson,\n shouldPrintJson,\n} from \"../../../shared/command-utils.js\";\nimport type { CommandOutput } from \"../../../shared/output/types.js\";\nimport { createKnowledgesApi, type KnowCommandDependencies } from \"../knowledges-api.js\";\nimport { formatCatalogPathForDisplay, normalizeCatalogPath, normalizeGrepMode } from \"../knowledges-input.js\";\nimport type { KnowGrepCommandOptions } from \"../knowledges-options.js\";\n\nexport async function runKnowGrepCommand(\n pattern: string | undefined,\n options: KnowGrepCommandOptions,\n output: CommandOutput,\n dependencies?: KnowCommandDependencies\n): Promise<void> {\n if (!pattern) {\n throw new Error(\"Missing pattern. Usage: cngkit knowledges grep <pattern>\");\n }\n\n const api = dependencies?.api ?? createKnowledgesApi(options);\n const limit = options.limit !== undefined ? coerceOptionalNumber(options.limit) : undefined;\n const response = await api.grep({\n pattern,\n path: normalizeCatalogPath(options.path ?? \"/\"),\n include: options.include ?? \"*\",\n mode: normalizeGrepMode(options.outputMode),\n context: coerceLimit(options.context, 0, 20),\n ignoreCase: options.caseInsensitive === true,\n });\n\n if (shouldPrintJson(options)) {\n output.raw(formatJson(response.data));\n return;\n }\n\n if (response.data.mode === \"files_with_matches\") {\n const files = limit ? response.data.files.slice(0, limit) : response.data.files;\n if (files.length > 0) {\n output.raw(files.map(formatCatalogPathForDisplay).join(\"\\n\"));\n return;\n }\n\n output.warning(`No files matched \"${pattern}\".`);\n return;\n }\n\n if (response.data.mode === \"count\") {\n const counts = limit ? response.data.counts.slice(0, limit) : response.data.counts;\n const lines = counts.map(\n (count) => `${formatCatalogPathForDisplay(count.file_path)}: ${count.match_count}`\n );\n if (lines.length > 0) {\n output.raw(lines.join(\"\\n\"));\n return;\n }\n\n output.warning(`No matches for \"${pattern}\".`);\n return;\n }\n\n const matches = limit ? response.data.matches.slice(0, limit) : response.data.matches;\n const lines = matches.flatMap((match) => [\n `${formatCatalogPathForDisplay(match.file_path)}:${match.line_number}`,\n ...match.context_before.map((line) => ` ${line}`),\n `> ${match.line}`,\n ...match.context_after.map((line) => ` ${line}`),\n ]);\n\n if (lines.length > 0) {\n output.raw(lines.join(\"\\n\"));\n return;\n }\n\n output.warning(`No matches for \"${pattern}\".`);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;;;ACUlB,eAAsB,mBACpB,SACAA,UACA,QACA,cACe;AACf,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAEA,QAAM,MAAM,cAAc,OAAO,oBAAoBA,QAAO;AAC5D,QAAM,QAAQA,SAAQ,UAAU,SAAY,qBAAqBA,SAAQ,KAAK,IAAI;AAClF,QAAM,WAAW,MAAM,IAAI,KAAK;AAAA,IAC9B;AAAA,IACA,MAAM,qBAAqBA,SAAQ,QAAQ,GAAG;AAAA,IAC9C,SAASA,SAAQ,WAAW;AAAA,IAC5B,MAAM,kBAAkBA,SAAQ,UAAU;AAAA,IAC1C,SAAS,YAAYA,SAAQ,SAAS,GAAG,EAAE;AAAA,IAC3C,YAAYA,SAAQ,oBAAoB;AAAA,EAC1C,CAAC;AAED,MAAI,gBAAgBA,QAAO,GAAG;AAC5B,WAAO,IAAI,WAAW,SAAS,IAAI,CAAC;AACpC;AAAA,EACF;AAEA,MAAI,SAAS,KAAK,SAAS,sBAAsB;AAC/C,UAAM,QAAQ,QAAQ,SAAS,KAAK,MAAM,MAAM,GAAG,KAAK,IAAI,SAAS,KAAK;AAC1E,QAAI,MAAM,SAAS,GAAG;AACpB,aAAO,IAAI,MAAM,IAAI,2BAA2B,EAAE,KAAK,IAAI,CAAC;AAC5D;AAAA,IACF;AAEA,WAAO,QAAQ,qBAAqB,OAAO,IAAI;AAC/C;AAAA,EACF;AAEA,MAAI,SAAS,KAAK,SAAS,SAAS;AAClC,UAAM,SAAS,QAAQ,SAAS,KAAK,OAAO,MAAM,GAAG,KAAK,IAAI,SAAS,KAAK;AAC5E,UAAMC,SAAQ,OAAO;AAAA,MACnB,CAAC,UAAU,GAAG,4BAA4B,MAAM,SAAS,CAAC,KAAK,MAAM,WAAW;AAAA,IAClF;AACA,QAAIA,OAAM,SAAS,GAAG;AACpB,aAAO,IAAIA,OAAM,KAAK,IAAI,CAAC;AAC3B;AAAA,IACF;AAEA,WAAO,QAAQ,mBAAmB,OAAO,IAAI;AAC7C;AAAA,EACF;AAEA,QAAM,UAAU,QAAQ,SAAS,KAAK,QAAQ,MAAM,GAAG,KAAK,IAAI,SAAS,KAAK;AAC9E,QAAM,QAAQ,QAAQ,QAAQ,CAAC,UAAU;AAAA,IACvC,GAAG,4BAA4B,MAAM,SAAS,CAAC,IAAI,MAAM,WAAW;AAAA,IACpE,GAAG,MAAM,eAAe,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAAA,IACjD,KAAK,MAAM,IAAI;AAAA,IACf,GAAG,MAAM,cAAc,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAAA,EAClD,CAAC;AAED,MAAI,MAAM,SAAS,GAAG;AACpB,WAAO,IAAI,MAAM,KAAK,IAAI,CAAC;AAC3B;AAAA,EACF;AAEA,SAAO,QAAQ,mBAAmB,OAAO,IAAI;AAC/C;;;ADbS;AAvDF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAC/C,MAAM,EACH,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,SAAS,EACN,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,YAAY,EACT,KAAK,CAAC,WAAW,sBAAsB,OAAO,CAAC,EAC/C,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,SAAS,EACN,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,iBAAiB,EACd,QAAQ,EACR,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAC,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,KAAK,GAAG,GAAGC,UAAS,MAAM,GAAG;AAC9F;","names":["options","lines","args","options"]}
@@ -1,22 +1,45 @@
1
1
  import {
2
- runKnowHeadCommand
3
- } from "../../chunk-NODJM6SH.js";
4
- import "../../chunk-XQGLUQFM.js";
5
- import "../../chunk-SKK2XLRZ.js";
6
- import "../../chunk-CIZBVLN5.js";
2
+ outputRawContent
3
+ } from "../../chunk-BRFWVQI4.js";
4
+ import {
5
+ createKnowledgesApi
6
+ } from "../../chunk-NLAANOBW.js";
7
+ import {
8
+ normalizeCatalogPath
9
+ } from "../../chunk-AS7FIJWP.js";
10
+ import "../../chunk-N255PYL7.js";
11
+ import {
12
+ coerceLimit
13
+ } from "../../chunk-XQGLUQFM.js";
7
14
  import {
8
15
  JsonOutputOptionsSchema,
9
16
  RequiredFilePathArgsSchema
10
- } from "../../chunk-NGEWD4BW.js";
17
+ } from "../../chunk-25Q463MH.js";
11
18
  import {
12
19
  CommandRunner
13
- } from "../../chunk-MRXGD6TC.js";
14
- import "../../chunk-WDI43VPW.js";
20
+ } from "../../chunk-TIY4RTXC.js";
21
+ import "../../chunk-DCW4RKLC.js";
15
22
  import "../../chunk-PZ5AY32C.js";
16
23
 
17
24
  // src/commands/knowledges/head.tsx
18
25
  import { option } from "pastel";
19
26
  import { z } from "zod";
27
+
28
+ // src/features/knowledges/handlers/head.ts
29
+ async function runKnowHeadCommand(filePath, options2, output, dependencies) {
30
+ if (!filePath) {
31
+ throw new Error("Missing file_path. Usage: cngkit knowledges head <file_path> -n 10");
32
+ }
33
+ const api = dependencies?.api ?? createKnowledgesApi(options2);
34
+ const response = await api.read({
35
+ filePath: normalizeCatalogPath(filePath),
36
+ offset: 0,
37
+ limit: coerceLimit(options2.lines, 10, 2e3)
38
+ });
39
+ outputRawContent(response.data, options2, output);
40
+ }
41
+
42
+ // src/commands/knowledges/head.tsx
20
43
  import { jsx } from "react/jsx-runtime";
21
44
  var description = "Print the first lines of a remote catalog file";
22
45
  var args = RequiredFilePathArgsSchema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/knowledges/head.tsx"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { JsonOutputOptionsSchema, RequiredFilePathArgsSchema } from \"../../cli/options.js\";\nimport { runKnowHeadCommand, type KnowHeadCommandOptions } from \"../../features/knowledges/run-knowledges-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Print the first lines of a remote catalog file\";\nexport const args = RequiredFilePathArgsSchema;\nexport const options = JsonOutputOptionsSchema.extend({\n lines: z\n .number()\n .optional()\n .describe(\n option({\n alias: \"n\",\n description: \"Number of lines\",\n valueDescription: \"n\",\n })\n ),\n});\n\ntype HeadCommandProps = {\n readonly args: [string];\n readonly options: KnowHeadCommandOptions;\n};\n\nexport default function HeadCommand({ args, options }: HeadCommandProps) {\n return <CommandRunner run={(output) => runKnowHeadCommand(args[0], options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;AA2BT;AArBF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,wBAAwB,OAAO;AAAA,EACpD,OAAO,EACJ,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,OAAO;AAAA,MACP,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAA,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACvF;","names":["args","options"]}
1
+ {"version":3,"sources":["../../../src/commands/knowledges/head.tsx","../../../src/features/knowledges/handlers/head.ts"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { JsonOutputOptionsSchema, RequiredFilePathArgsSchema } from \"../../cli/options.js\";\nimport { runKnowHeadCommand } from \"../../features/knowledges/handlers/head.js\";\nimport type { KnowHeadCommandOptions } from \"../../features/knowledges/knowledges-options.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Print the first lines of a remote catalog file\";\nexport const args = RequiredFilePathArgsSchema;\nexport const options = JsonOutputOptionsSchema.extend({\n lines: z\n .number()\n .optional()\n .describe(\n option({\n alias: \"n\",\n description: \"Number of lines\",\n valueDescription: \"n\",\n })\n ),\n});\n\ntype HeadCommandProps = {\n readonly args: [string];\n readonly options: KnowHeadCommandOptions;\n};\n\nexport default function HeadCommand({ args, options }: HeadCommandProps) {\n return <CommandRunner run={(output) => runKnowHeadCommand(args[0], options, output)} />;\n}\n","import { coerceLimit } from \"../../../shared/command-utils.js\";\nimport type { CommandOutput } from \"../../../shared/output/types.js\";\nimport { createKnowledgesApi, type KnowCommandDependencies } from \"../knowledges-api.js\";\nimport { normalizeCatalogPath } from \"../knowledges-input.js\";\nimport type { KnowHeadCommandOptions } from \"../knowledges-options.js\";\nimport { outputRawContent } from \"../format/content-format.js\";\n\nexport async function runKnowHeadCommand(\n filePath: string | undefined,\n options: KnowHeadCommandOptions,\n output: CommandOutput,\n dependencies?: KnowCommandDependencies\n): Promise<void> {\n if (!filePath) {\n throw new Error(\"Missing file_path. Usage: cngkit knowledges head <file_path> -n 10\");\n }\n\n const api = dependencies?.api ?? createKnowledgesApi(options);\n const response = await api.read({\n filePath: normalizeCatalogPath(filePath),\n offset: 0,\n limit: coerceLimit(options.lines, 10, 2000),\n });\n\n outputRawContent(response.data, options, output);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;;;ACMlB,eAAsB,mBACpB,UACAA,UACA,QACA,cACe;AACf,MAAI,CAAC,UAAU;AACb,UAAM,IAAI,MAAM,oEAAoE;AAAA,EACtF;AAEA,QAAM,MAAM,cAAc,OAAO,oBAAoBA,QAAO;AAC5D,QAAM,WAAW,MAAM,IAAI,KAAK;AAAA,IAC9B,UAAU,qBAAqB,QAAQ;AAAA,IACvC,QAAQ;AAAA,IACR,OAAO,YAAYA,SAAQ,OAAO,IAAI,GAAI;AAAA,EAC5C,CAAC;AAED,mBAAiB,SAAS,MAAMA,UAAS,MAAM;AACjD;;;ADIS;AArBF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,wBAAwB,OAAO;AAAA,EACpD,OAAO,EACJ,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,OAAO;AAAA,MACP,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAC,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACvF;","names":["options","args","options"]}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  renderKnowledgesHelp
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-MRXGD6TC.js";
10
- import "../../chunk-WDI43VPW.js";
9
+ } from "../../chunk-TIY4RTXC.js";
10
+ import "../../chunk-DCW4RKLC.js";
11
11
  import "../../chunk-PZ5AY32C.js";
12
12
 
13
13
  // src/commands/knowledges/index.tsx
@@ -1,19 +1,50 @@
1
1
  import {
2
- runKnowListCommand
3
- } from "../../chunk-NODJM6SH.js";
4
- import "../../chunk-XQGLUQFM.js";
5
- import "../../chunk-SKK2XLRZ.js";
6
- import "../../chunk-CIZBVLN5.js";
2
+ KnowTopicList
3
+ } from "../../chunk-VMTXY4KQ.js";
4
+ import {
5
+ createKnowledgesApi
6
+ } from "../../chunk-NLAANOBW.js";
7
+ import "../../chunk-AS7FIJWP.js";
8
+ import "../../chunk-N255PYL7.js";
9
+ import {
10
+ coerceLimit,
11
+ formatJson,
12
+ shouldPrintJson
13
+ } from "../../chunk-XQGLUQFM.js";
7
14
  import {
8
15
  LimitOptionsSchema,
9
16
  OptionalQueryArgsSchema
10
- } from "../../chunk-NGEWD4BW.js";
17
+ } from "../../chunk-25Q463MH.js";
11
18
  import {
12
19
  CommandRunner
13
- } from "../../chunk-MRXGD6TC.js";
14
- import "../../chunk-WDI43VPW.js";
20
+ } from "../../chunk-TIY4RTXC.js";
21
+ import "../../chunk-DCW4RKLC.js";
15
22
  import "../../chunk-PZ5AY32C.js";
16
23
 
24
+ // src/features/knowledges/handlers/list.ts
25
+ import { createElement } from "react";
26
+ async function runKnowListCommand(query, options2, output, dependencies) {
27
+ const api = dependencies?.api ?? createKnowledgesApi(options2);
28
+ const response = await api.listTopics();
29
+ const limit = coerceLimit(options2.limit, 25);
30
+ const normalizedQuery = query?.toLowerCase();
31
+ const topics = response.data.topics.filter((topic) => {
32
+ if (!normalizedQuery) {
33
+ return true;
34
+ }
35
+ return [topic.name, topic.title, topic.description, topic.type].join(" ").toLowerCase().includes(normalizedQuery);
36
+ }).slice(0, limit);
37
+ if (shouldPrintJson(options2)) {
38
+ output.raw(formatJson({ topics, total: topics.length }));
39
+ return;
40
+ }
41
+ if (topics.length > 0) {
42
+ output.component(createElement(KnowTopicList, { topics }));
43
+ return;
44
+ }
45
+ output.warning("No matching topics.");
46
+ }
47
+
17
48
  // src/commands/knowledges/list.tsx
18
49
  import { jsx } from "react/jsx-runtime";
19
50
  var description = "List known topics";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/knowledges/list.tsx"],"sourcesContent":["import { LimitOptionsSchema, OptionalQueryArgsSchema } from \"../../cli/options.js\";\nimport { runKnowListCommand, type KnowListCommandOptions } from \"../../features/knowledges/run-knowledges-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"List known topics\";\nexport const args = OptionalQueryArgsSchema;\nexport const options = LimitOptionsSchema;\n\ntype ListCommandProps = {\n readonly args: [string?];\n readonly options: KnowListCommandOptions;\n};\n\nexport default function ListCommand({ args, options }: ListCommandProps) {\n return <CommandRunner run={(output) => runKnowListCommand(args[0], options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAcS;AAVF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU;AAOR,SAAR,YAA6B,EAAE,MAAAA,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACvF;","names":["args","options"]}
1
+ {"version":3,"sources":["../../../src/features/knowledges/handlers/list.ts","../../../src/commands/knowledges/list.tsx"],"sourcesContent":["import { createElement } from \"react\";\n\nimport { coerceLimit, formatJson, shouldPrintJson } from \"../../../shared/command-utils.js\";\nimport type { CommandOutput } from \"../../../shared/output/types.js\";\nimport { createKnowledgesApi, type KnowCommandDependencies } from \"../knowledges-api.js\";\nimport { KnowTopicList } from \"../knowledges-output.js\";\nimport type { KnowListCommandOptions } from \"../knowledges-options.js\";\n\nexport async function runKnowListCommand(\n query: string | undefined,\n options: KnowListCommandOptions,\n output: CommandOutput,\n dependencies?: KnowCommandDependencies\n): Promise<void> {\n const api = dependencies?.api ?? createKnowledgesApi(options);\n const response = await api.listTopics();\n const limit = coerceLimit(options.limit, 25);\n const normalizedQuery = query?.toLowerCase();\n const topics = response.data.topics\n .filter((topic) => {\n if (!normalizedQuery) {\n return true;\n }\n return [topic.name, topic.title, topic.description, topic.type]\n .join(\" \")\n .toLowerCase()\n .includes(normalizedQuery);\n })\n .slice(0, limit);\n\n if (shouldPrintJson(options)) {\n output.raw(formatJson({ topics, total: topics.length }));\n return;\n }\n\n if (topics.length > 0) {\n output.component(createElement(KnowTopicList, { topics }));\n return;\n }\n\n output.warning(\"No matching topics.\");\n}\n","import { LimitOptionsSchema, OptionalQueryArgsSchema } from \"../../cli/options.js\";\nimport { runKnowListCommand } from \"../../features/knowledges/handlers/list.js\";\nimport type { KnowListCommandOptions } from \"../../features/knowledges/knowledges-options.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"List known topics\";\nexport const args = OptionalQueryArgsSchema;\nexport const options = LimitOptionsSchema;\n\ntype ListCommandProps = {\n readonly args: [string?];\n readonly options: KnowListCommandOptions;\n};\n\nexport default function ListCommand({ args, options }: ListCommandProps) {\n return <CommandRunner run={(output) => runKnowListCommand(args[0], options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAQ9B,eAAsB,mBACpB,OACAA,UACA,QACA,cACe;AACf,QAAM,MAAM,cAAc,OAAO,oBAAoBA,QAAO;AAC5D,QAAM,WAAW,MAAM,IAAI,WAAW;AACtC,QAAM,QAAQ,YAAYA,SAAQ,OAAO,EAAE;AAC3C,QAAM,kBAAkB,OAAO,YAAY;AAC3C,QAAM,SAAS,SAAS,KAAK,OAC1B,OAAO,CAAC,UAAU;AACjB,QAAI,CAAC,iBAAiB;AACpB,aAAO;AAAA,IACT;AACA,WAAO,CAAC,MAAM,MAAM,MAAM,OAAO,MAAM,aAAa,MAAM,IAAI,EAC3D,KAAK,GAAG,EACR,YAAY,EACZ,SAAS,eAAe;AAAA,EAC7B,CAAC,EACA,MAAM,GAAG,KAAK;AAEjB,MAAI,gBAAgBA,QAAO,GAAG;AAC5B,WAAO,IAAI,WAAW,EAAE,QAAQ,OAAO,OAAO,OAAO,CAAC,CAAC;AACvD;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,GAAG;AACrB,WAAO,UAAU,cAAc,eAAe,EAAE,OAAO,CAAC,CAAC;AACzD;AAAA,EACF;AAEA,SAAO,QAAQ,qBAAqB;AACtC;;;AC1BS;AAVF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU;AAOR,SAAR,YAA6B,EAAE,MAAAC,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACvF;","names":["options","args","options"]}
@@ -1,22 +1,61 @@
1
1
  import {
2
- runKnowLsCommand
3
- } from "../../chunk-NODJM6SH.js";
4
- import "../../chunk-XQGLUQFM.js";
5
- import "../../chunk-SKK2XLRZ.js";
6
- import "../../chunk-CIZBVLN5.js";
2
+ compareFilesystemEntries,
3
+ formatLongFilesystemEntryLine,
4
+ formatShellFilesystemEntryName
5
+ } from "../../chunk-YALWTRIP.js";
6
+ import {
7
+ createKnowledgesApi
8
+ } from "../../chunk-NLAANOBW.js";
9
+ import {
10
+ formatCatalogPathForDisplay,
11
+ normalizeFilesystemCatalogPath
12
+ } from "../../chunk-AS7FIJWP.js";
13
+ import "../../chunk-N255PYL7.js";
14
+ import {
15
+ coerceLimit,
16
+ formatJson,
17
+ shouldPrintJson
18
+ } from "../../chunk-XQGLUQFM.js";
7
19
  import {
8
20
  LimitOptionsSchema,
9
21
  OptionalPathArgsSchema
10
- } from "../../chunk-NGEWD4BW.js";
22
+ } from "../../chunk-25Q463MH.js";
11
23
  import {
12
24
  CommandRunner
13
- } from "../../chunk-MRXGD6TC.js";
14
- import "../../chunk-WDI43VPW.js";
25
+ } from "../../chunk-TIY4RTXC.js";
26
+ import "../../chunk-DCW4RKLC.js";
15
27
  import "../../chunk-PZ5AY32C.js";
16
28
 
17
29
  // src/commands/knowledges/ls.tsx
18
30
  import { option } from "pastel";
19
31
  import { z } from "zod";
32
+
33
+ // src/features/knowledges/handlers/ls.ts
34
+ async function runKnowLsCommand(path, options2, output, dependencies) {
35
+ const api = dependencies?.api ?? createKnowledgesApi(options2);
36
+ const response = await api.listDirectory({
37
+ path: normalizeFilesystemCatalogPath(path ?? "/"),
38
+ limit: coerceLimit(options2.limit, 100, 1e3)
39
+ });
40
+ if (shouldPrintJson(options2)) {
41
+ output.raw(formatJson(response.data));
42
+ return;
43
+ }
44
+ const entries = [...response.data.entries].sort(compareFilesystemEntries);
45
+ const lines = entries.map(
46
+ (entry) => options2.long === true ? formatLongFilesystemEntryLine(entry) : formatShellFilesystemEntryName(entry)
47
+ );
48
+ if (lines.length > 0) {
49
+ output.raw(lines.join("\n"));
50
+ } else {
51
+ output.warning(`No entries under ${formatCatalogPathForDisplay(response.data.path)}.`);
52
+ }
53
+ if (response.data.truncated) {
54
+ output.warning(`[truncated: ${response.data.total_entries} total entries]`);
55
+ }
56
+ }
57
+
58
+ // src/commands/knowledges/ls.tsx
20
59
  import { jsx } from "react/jsx-runtime";
21
60
  var description = "List remote catalog directory entries";
22
61
  var args = OptionalPathArgsSchema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/knowledges/ls.tsx"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { LimitOptionsSchema, OptionalPathArgsSchema } from \"../../cli/options.js\";\nimport { runKnowLsCommand, type KnowLsCommandOptions } from \"../../features/knowledges/run-knowledges-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"List remote catalog directory entries\";\nexport const args = OptionalPathArgsSchema;\nexport const options = LimitOptionsSchema.extend({\n long: z\n .boolean()\n .optional()\n .describe(\n option({\n alias: \"l\",\n description: \"Print type, path, and metadata fields\",\n })\n ),\n});\n\ntype LsCommandProps = {\n readonly args: [string?];\n readonly options: KnowLsCommandOptions;\n};\n\nexport default function LsCommand({ args, options }: LsCommandProps) {\n return <CommandRunner run={(output) => runKnowLsCommand(args[0], options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;AA0BT;AApBF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAC/C,MAAM,EACH,QAAQ,EACR,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,UAA2B,EAAE,MAAAA,OAAM,SAAAC,SAAQ,GAAmB;AACnE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,iBAAiBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACrF;","names":["args","options"]}
1
+ {"version":3,"sources":["../../../src/commands/knowledges/ls.tsx","../../../src/features/knowledges/handlers/ls.ts"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { LimitOptionsSchema, OptionalPathArgsSchema } from \"../../cli/options.js\";\nimport { runKnowLsCommand } from \"../../features/knowledges/handlers/ls.js\";\nimport type { KnowLsCommandOptions } from \"../../features/knowledges/knowledges-options.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"List remote catalog directory entries\";\nexport const args = OptionalPathArgsSchema;\nexport const options = LimitOptionsSchema.extend({\n long: z\n .boolean()\n .optional()\n .describe(\n option({\n alias: \"l\",\n description: \"Print type, path, and metadata fields\",\n })\n ),\n});\n\ntype LsCommandProps = {\n readonly args: [string?];\n readonly options: KnowLsCommandOptions;\n};\n\nexport default function LsCommand({ args, options }: LsCommandProps) {\n return <CommandRunner run={(output) => runKnowLsCommand(args[0], options, output)} />;\n}\n","import { coerceLimit, formatJson, shouldPrintJson } from \"../../../shared/command-utils.js\";\nimport type { CommandOutput } from \"../../../shared/output/types.js\";\nimport {\n compareFilesystemEntries,\n formatLongFilesystemEntryLine,\n formatShellFilesystemEntryName,\n} from \"../format/filesystem-format.js\";\nimport { createKnowledgesApi, type KnowCommandDependencies } from \"../knowledges-api.js\";\nimport { formatCatalogPathForDisplay, normalizeFilesystemCatalogPath } from \"../knowledges-input.js\";\nimport type { KnowLsCommandOptions } from \"../knowledges-options.js\";\n\nexport async function runKnowLsCommand(\n path: string | undefined,\n options: KnowLsCommandOptions,\n output: CommandOutput,\n dependencies?: KnowCommandDependencies\n): Promise<void> {\n const api = dependencies?.api ?? createKnowledgesApi(options);\n const response = await api.listDirectory({\n path: normalizeFilesystemCatalogPath(path ?? \"/\"),\n limit: coerceLimit(options.limit, 100, 1000),\n });\n\n if (shouldPrintJson(options)) {\n output.raw(formatJson(response.data));\n return;\n }\n\n const entries = [...response.data.entries].sort(compareFilesystemEntries);\n const lines = entries.map((entry) =>\n options.long === true\n ? formatLongFilesystemEntryLine(entry)\n : formatShellFilesystemEntryName(entry)\n );\n\n if (lines.length > 0) {\n output.raw(lines.join(\"\\n\"));\n } else {\n output.warning(`No entries under ${formatCatalogPathForDisplay(response.data.path)}.`);\n }\n\n if (response.data.truncated) {\n output.warning(`[truncated: ${response.data.total_entries} total entries]`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;;;ACUlB,eAAsB,iBACpB,MACAA,UACA,QACA,cACe;AACf,QAAM,MAAM,cAAc,OAAO,oBAAoBA,QAAO;AAC5D,QAAM,WAAW,MAAM,IAAI,cAAc;AAAA,IACvC,MAAM,+BAA+B,QAAQ,GAAG;AAAA,IAChD,OAAO,YAAYA,SAAQ,OAAO,KAAK,GAAI;AAAA,EAC7C,CAAC;AAED,MAAI,gBAAgBA,QAAO,GAAG;AAC5B,WAAO,IAAI,WAAW,SAAS,IAAI,CAAC;AACpC;AAAA,EACF;AAEA,QAAM,UAAU,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,KAAK,wBAAwB;AACxE,QAAM,QAAQ,QAAQ;AAAA,IAAI,CAAC,UACzBA,SAAQ,SAAS,OACb,8BAA8B,KAAK,IACnC,+BAA+B,KAAK;AAAA,EAC1C;AAEA,MAAI,MAAM,SAAS,GAAG;AACpB,WAAO,IAAI,MAAM,KAAK,IAAI,CAAC;AAAA,EAC7B,OAAO;AACL,WAAO,QAAQ,oBAAoB,4BAA4B,SAAS,KAAK,IAAI,CAAC,GAAG;AAAA,EACvF;AAEA,MAAI,SAAS,KAAK,WAAW;AAC3B,WAAO,QAAQ,eAAe,SAAS,KAAK,aAAa,iBAAiB;AAAA,EAC5E;AACF;;;ADhBS;AApBF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,mBAAmB,OAAO;AAAA,EAC/C,MAAM,EACH,QAAQ,EACR,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,UAA2B,EAAE,MAAAC,OAAM,SAAAC,SAAQ,GAAmB;AACnE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,iBAAiBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACrF;","names":["options","args","options"]}
@@ -1,22 +1,60 @@
1
1
  import {
2
- runKnowReadCommand
3
- } from "../../chunk-NODJM6SH.js";
4
- import "../../chunk-XQGLUQFM.js";
5
- import "../../chunk-SKK2XLRZ.js";
6
- import "../../chunk-CIZBVLN5.js";
2
+ createKnowledgesApi
3
+ } from "../../chunk-NLAANOBW.js";
4
+ import {
5
+ normalizeCatalogPath
6
+ } from "../../chunk-AS7FIJWP.js";
7
+ import "../../chunk-N255PYL7.js";
8
+ import {
9
+ coerceLimit,
10
+ coerceOptionalNumber,
11
+ formatJson,
12
+ shouldPrintJson
13
+ } from "../../chunk-XQGLUQFM.js";
7
14
  import {
8
15
  JsonOutputOptionsSchema,
9
16
  RequiredFilePathArgsSchema
10
- } from "../../chunk-NGEWD4BW.js";
17
+ } from "../../chunk-25Q463MH.js";
11
18
  import {
12
19
  CommandRunner
13
- } from "../../chunk-MRXGD6TC.js";
14
- import "../../chunk-WDI43VPW.js";
20
+ } from "../../chunk-TIY4RTXC.js";
21
+ import {
22
+ resolveOutputFormat
23
+ } from "../../chunk-DCW4RKLC.js";
15
24
  import "../../chunk-PZ5AY32C.js";
16
25
 
17
26
  // src/commands/knowledges/read.tsx
18
27
  import { option } from "pastel";
19
28
  import { z } from "zod";
29
+
30
+ // src/features/knowledges/handlers/read.ts
31
+ async function runKnowReadCommand(filePath, options2, output, dependencies) {
32
+ if (!filePath) {
33
+ throw new Error("Missing file_path. Usage: cngkit knowledges read <file_path>");
34
+ }
35
+ const api = dependencies?.api ?? createKnowledgesApi(options2);
36
+ const response = await api.read({
37
+ filePath: normalizeCatalogPath(filePath),
38
+ offset: coerceOptionalNumber(options2.offset),
39
+ limit: coerceLimit(options2.limit, 200, 2e3)
40
+ });
41
+ if (shouldPrintJson(options2)) {
42
+ output.raw(formatJson(response.data));
43
+ return;
44
+ }
45
+ if (resolveOutputFormat() === "markdown" || !response.data.file_path.endsWith(".md")) {
46
+ output.raw(response.data.content);
47
+ } else {
48
+ output.markdown(response.data.content);
49
+ }
50
+ if (response.data.truncated) {
51
+ output.warning(
52
+ `[truncated: showing ${response.data.limit} lines from offset ${response.data.offset} of ${response.data.total_lines}]`
53
+ );
54
+ }
55
+ }
56
+
57
+ // src/commands/knowledges/read.tsx
20
58
  import { jsx } from "react/jsx-runtime";
21
59
  var description = "Claude-style file read";
22
60
  var args = RequiredFilePathArgsSchema;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/knowledges/read.tsx"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { JsonOutputOptionsSchema, RequiredFilePathArgsSchema } from \"../../cli/options.js\";\nimport { runKnowReadCommand, type KnowReadCommandOptions } from \"../../features/knowledges/run-knowledges-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Claude-style file read\";\nexport const args = RequiredFilePathArgsSchema;\nexport const options = JsonOutputOptionsSchema.extend({\n offset: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Starting line offset\",\n valueDescription: \"n\",\n })\n ),\n limit: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Maximum lines\",\n valueDescription: \"n\",\n })\n ),\n});\n\ntype ReadCommandProps = {\n readonly args: [string];\n readonly options: KnowReadCommandOptions;\n};\n\nexport default function ReadCommand({ args, options }: ReadCommandProps) {\n return <CommandRunner run={(output) => runKnowReadCommand(args[0], options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;AAmCT;AA7BF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,wBAAwB,OAAO;AAAA,EACpD,QAAQ,EACL,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,OAAO,EACJ,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAA,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACvF;","names":["args","options"]}
1
+ {"version":3,"sources":["../../../src/commands/knowledges/read.tsx","../../../src/features/knowledges/handlers/read.ts"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { JsonOutputOptionsSchema, RequiredFilePathArgsSchema } from \"../../cli/options.js\";\nimport { runKnowReadCommand } from \"../../features/knowledges/handlers/read.js\";\nimport type { KnowReadCommandOptions } from \"../../features/knowledges/knowledges-options.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Claude-style file read\";\nexport const args = RequiredFilePathArgsSchema;\nexport const options = JsonOutputOptionsSchema.extend({\n offset: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Starting line offset\",\n valueDescription: \"n\",\n })\n ),\n limit: z\n .number()\n .optional()\n .describe(\n option({\n description: \"Maximum lines\",\n valueDescription: \"n\",\n })\n ),\n});\n\ntype ReadCommandProps = {\n readonly args: [string];\n readonly options: KnowReadCommandOptions;\n};\n\nexport default function ReadCommand({ args, options }: ReadCommandProps) {\n return <CommandRunner run={(output) => runKnowReadCommand(args[0], options, output)} />;\n}\n","import { coerceLimit, coerceOptionalNumber, formatJson, shouldPrintJson } from \"../../../shared/command-utils.js\";\nimport { resolveOutputFormat } from \"../../../shared/config.js\";\nimport type { CommandOutput } from \"../../../shared/output/types.js\";\nimport { createKnowledgesApi, type KnowCommandDependencies } from \"../knowledges-api.js\";\nimport { normalizeCatalogPath } from \"../knowledges-input.js\";\nimport type { KnowReadCommandOptions } from \"../knowledges-options.js\";\n\nexport async function runKnowReadCommand(\n filePath: string | undefined,\n options: KnowReadCommandOptions,\n output: CommandOutput,\n dependencies?: KnowCommandDependencies\n): Promise<void> {\n if (!filePath) {\n throw new Error(\"Missing file_path. Usage: cngkit knowledges read <file_path>\");\n }\n\n const api = dependencies?.api ?? createKnowledgesApi(options);\n const response = await api.read({\n filePath: normalizeCatalogPath(filePath),\n offset: coerceOptionalNumber(options.offset),\n limit: coerceLimit(options.limit, 200, 2000),\n });\n\n if (shouldPrintJson(options)) {\n output.raw(formatJson(response.data));\n return;\n }\n\n if (resolveOutputFormat() === \"markdown\" || !response.data.file_path.endsWith(\".md\")) {\n output.raw(response.data.content);\n } else {\n output.markdown(response.data.content);\n }\n\n if (response.data.truncated) {\n output.warning(\n `[truncated: showing ${response.data.limit} lines from offset ${response.data.offset} of ${response.data.total_lines}]`\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;;;ACMlB,eAAsB,mBACpB,UACAA,UACA,QACA,cACe;AACf,MAAI,CAAC,UAAU;AACb,UAAM,IAAI,MAAM,8DAA8D;AAAA,EAChF;AAEA,QAAM,MAAM,cAAc,OAAO,oBAAoBA,QAAO;AAC5D,QAAM,WAAW,MAAM,IAAI,KAAK;AAAA,IAC9B,UAAU,qBAAqB,QAAQ;AAAA,IACvC,QAAQ,qBAAqBA,SAAQ,MAAM;AAAA,IAC3C,OAAO,YAAYA,SAAQ,OAAO,KAAK,GAAI;AAAA,EAC7C,CAAC;AAED,MAAI,gBAAgBA,QAAO,GAAG;AAC5B,WAAO,IAAI,WAAW,SAAS,IAAI,CAAC;AACpC;AAAA,EACF;AAEA,MAAI,oBAAoB,MAAM,cAAc,CAAC,SAAS,KAAK,UAAU,SAAS,KAAK,GAAG;AACpF,WAAO,IAAI,SAAS,KAAK,OAAO;AAAA,EAClC,OAAO;AACL,WAAO,SAAS,SAAS,KAAK,OAAO;AAAA,EACvC;AAEA,MAAI,SAAS,KAAK,WAAW;AAC3B,WAAO;AAAA,MACL,uBAAuB,SAAS,KAAK,KAAK,sBAAsB,SAAS,KAAK,MAAM,OAAO,SAAS,KAAK,WAAW;AAAA,IACtH;AAAA,EACF;AACF;;;ADHS;AA7BF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,wBAAwB,OAAO;AAAA,EACpD,QAAQ,EACL,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACF,OAAO,EACJ,OAAO,EACP,SAAS,EACT;AAAA,IACC,OAAO;AAAA,MACL,aAAa;AAAA,MACb,kBAAkB;AAAA,IACpB,CAAC;AAAA,EACH;AACJ,CAAC;AAOc,SAAR,YAA6B,EAAE,MAAAC,OAAM,SAAAC,SAAQ,GAAqB;AACvE,SAAO,oBAAC,iBAAc,KAAK,CAAC,WAAW,mBAAmBD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACvF;","names":["options","args","options"]}