cngkit 1.1.23 → 1.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/dist/{chunk-AS7FIJWP.js → chunk-2Y5FMKFS.js} +3 -4
- package/dist/chunk-2Y5FMKFS.js.map +1 -0
- package/dist/{chunk-VMTXY4KQ.js → chunk-3VDQDFHG.js} +14 -6
- package/dist/chunk-3VDQDFHG.js.map +1 -0
- package/dist/{chunk-U725ZHCI.js → chunk-55IPOJ3R.js} +2 -2
- package/dist/{chunk-BXS4IKUA.js → chunk-DDQ5TITN.js} +91 -15
- package/dist/chunk-DDQ5TITN.js.map +1 -0
- package/dist/{chunk-BRFWVQI4.js → chunk-LC4CYVCT.js} +1 -1
- package/dist/chunk-LC4CYVCT.js.map +1 -0
- package/dist/{chunk-YALWTRIP.js → chunk-LNFZT3R3.js} +2 -2
- package/dist/{chunk-JNHW72SU.js → chunk-QCAHQE7Q.js} +14 -9
- package/dist/chunk-QCAHQE7Q.js.map +1 -0
- package/dist/{chunk-WIEYHKQA.js → chunk-TC6YIS5Z.js} +12 -15
- package/dist/chunk-TC6YIS5Z.js.map +1 -0
- package/dist/{chunk-67FUBMNB.js → chunk-X3UQB2CC.js} +2 -2
- package/dist/{chunk-67FUBMNB.js.map → chunk-X3UQB2CC.js.map} +1 -1
- package/dist/{chunk-GYRLVNJX.js → chunk-YIU6G2D3.js} +2 -2
- package/dist/{chunk-3BATDTKU.js → chunk-YPGDQ6P2.js} +2 -4
- package/dist/chunk-YPGDQ6P2.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/coderoom/index.js +3 -3
- package/dist/commands/coderoom/join.js +14 -5
- package/dist/commands/coderoom/join.js.map +1 -1
- package/dist/commands/coderoom/share.js +4 -4
- package/dist/commands/hookify/index.js +3 -3
- package/dist/commands/hookify/ingest.js +3 -3
- package/dist/commands/hooks/index.js +3 -3
- package/dist/commands/hooks/install.js +3 -3
- package/dist/commands/hooks/uninstall.js +3 -3
- package/dist/commands/index.js +3 -3
- package/dist/commands/knowledges/audiences.js +6 -6
- package/dist/commands/knowledges/cat.js +6 -6
- package/dist/commands/knowledges/files.js +6 -6
- package/dist/commands/knowledges/find.js +6 -6
- package/dist/commands/knowledges/find.js.map +1 -1
- package/dist/commands/knowledges/glob.js +5 -5
- package/dist/commands/knowledges/grep.js +5 -5
- package/dist/commands/knowledges/grep.js.map +1 -1
- package/dist/commands/knowledges/head.js +6 -6
- package/dist/commands/knowledges/index.js +3 -3
- package/dist/commands/knowledges/list.js +6 -6
- package/dist/commands/knowledges/ls.js +6 -6
- package/dist/commands/knowledges/ls.js.map +1 -1
- package/dist/commands/knowledges/read.js +5 -5
- package/dist/commands/knowledges/read.js.map +1 -1
- package/dist/commands/knowledges/realpath.js +3 -3
- package/dist/commands/knowledges/realpath.js.map +1 -1
- package/dist/commands/knowledges/search.js +6 -6
- package/dist/commands/knowledges/stat.js +6 -6
- package/dist/commands/knowledges/status.js +6 -6
- package/dist/commands/knowledges/tail.js +6 -6
- package/dist/commands/knowledges/tree.js +6 -6
- package/dist/commands/login.js +2 -2
- package/dist/commands/scrub.js +17 -14
- package/dist/commands/scrub.js.map +1 -1
- package/dist/commands/transcripts.js +37 -27
- package/dist/commands/transcripts.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-3BATDTKU.js.map +0 -1
- package/dist/chunk-AS7FIJWP.js.map +0 -1
- package/dist/chunk-BRFWVQI4.js.map +0 -1
- package/dist/chunk-BXS4IKUA.js.map +0 -1
- package/dist/chunk-JNHW72SU.js.map +0 -1
- package/dist/chunk-VMTXY4KQ.js.map +0 -1
- package/dist/chunk-WIEYHKQA.js.map +0 -1
- /package/dist/{chunk-U725ZHCI.js.map → chunk-55IPOJ3R.js.map} +0 -0
- /package/dist/{chunk-YALWTRIP.js.map → chunk-LNFZT3R3.js.map} +0 -0
- /package/dist/{chunk-GYRLVNJX.js.map → chunk-YIU6G2D3.js.map} +0 -0
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
CngApiClient,
|
|
3
3
|
formatError,
|
|
4
4
|
resolveApiBaseUrl
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-X3UQB2CC.js";
|
|
6
6
|
|
|
7
7
|
// src/shared/api-client.ts
|
|
8
8
|
function createCngApiClient(options) {
|
|
@@ -32,4 +32,4 @@ export {
|
|
|
32
32
|
createCngApiClient,
|
|
33
33
|
readBackendHealth
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-YIU6G2D3.js.map
|
|
@@ -76,9 +76,7 @@ import { createElement } from "react";
|
|
|
76
76
|
// src/features/hooks/hooks-output.tsx
|
|
77
77
|
import { Box, Text } from "ink";
|
|
78
78
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
79
|
-
function HookTargetResults({
|
|
80
|
-
results
|
|
81
|
-
}) {
|
|
79
|
+
function HookTargetResults({ results }) {
|
|
82
80
|
return /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: results.map((result) => /* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
|
|
83
81
|
/* @__PURE__ */ jsxs(Text, { color: "green", bold: true, children: [
|
|
84
82
|
result.action,
|
|
@@ -287,4 +285,4 @@ export {
|
|
|
287
285
|
runHooksInstallCommand,
|
|
288
286
|
runHooksUninstallCommand
|
|
289
287
|
};
|
|
290
|
-
//# sourceMappingURL=chunk-
|
|
288
|
+
//# sourceMappingURL=chunk-YPGDQ6P2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/features/hooks/hooks-targets.ts","../src/features/hooks/run-hooks-install-command.ts","../src/features/hooks/hooks-output.tsx","../src/features/hooks/hooks-install-flow.ts","../src/features/hooks/hooks-handler.ts","../src/features/hooks/hooks-document-io.ts","../src/features/hooks/hooks-schemas.ts"],"sourcesContent":["import os from \"node:os\";\nimport path from \"node:path\";\n\nexport const hookToolIds = [\"all\", \"claude\", \"codex\"] as const;\n\nexport type HookToolId = (typeof hookToolIds)[number];\n\nexport type InstallTarget = {\n readonly tool: Exclude<HookToolId, \"all\">;\n readonly label: string;\n readonly configPath: string;\n readonly events: readonly string[];\n readonly statusMessages: boolean;\n};\n\nexport const claudeHookEvents = [\n \"SessionStart\",\n \"Setup\",\n \"InstructionsLoaded\",\n \"UserPromptSubmit\",\n \"UserPromptExpansion\",\n \"MessageDisplay\",\n \"PreToolUse\",\n \"PermissionRequest\",\n \"PermissionDenied\",\n \"PostToolUse\",\n \"PostToolUseFailure\",\n \"PostToolBatch\",\n \"Notification\",\n \"SubagentStart\",\n \"SubagentStop\",\n \"TaskCreated\",\n \"TaskCompleted\",\n \"Stop\",\n \"StopFailure\",\n \"TeammateIdle\",\n \"ConfigChange\",\n \"CwdChanged\",\n \"FileChanged\",\n \"WorktreeCreate\",\n \"WorktreeRemove\",\n \"PreCompact\",\n \"PostCompact\",\n \"SessionEnd\",\n \"Elicitation\",\n \"ElicitationResult\",\n] as const;\n\nexport const codexHookEvents = [\n \"SessionStart\",\n \"SubagentStart\",\n \"PreToolUse\",\n \"PermissionRequest\",\n \"PostToolUse\",\n \"PreCompact\",\n \"PostCompact\",\n \"UserPromptSubmit\",\n \"SubagentStop\",\n \"Stop\",\n] as const;\n\nexport function resolveInstallTargets(tool: HookToolId): InstallTarget[] {\n const homeDirectory = os.homedir();\n const targets: InstallTarget[] = [\n {\n tool: \"claude\",\n label: \"Claude Code\",\n configPath: path.join(homeDirectory, \".claude\", \"settings.json\"),\n events: claudeHookEvents,\n statusMessages: false,\n },\n {\n tool: \"codex\",\n label: \"Codex\",\n configPath: path.join(homeDirectory, \".codex\", \"hooks.json\"),\n events: codexHookEvents,\n statusMessages: true,\n },\n ];\n\n if (tool === \"all\") {\n return targets;\n }\n\n return targets.filter((target) => target.tool === tool);\n}\n","// Public API entrypoint for hooks install/uninstall. Implementation lives in\n// `./hooks-{schemas,targets,handler,document-io,install-flow}.ts`; this file\n// just dispatches and renders the result.\n\nimport { createElement } from \"react\";\n\nimport type { CommandOutput } from \"../../shared/output/types.js\";\nimport { HookTargetResults } from \"./hooks-output.js\";\nimport { installHooksForTarget, uninstallHooksForTarget } from \"./hooks-install-flow.js\";\nimport { hookToolIds, resolveInstallTargets, type HookToolId } from \"./hooks-targets.js\";\n\nexport { hookToolIds };\nexport type { HookToolId } from \"./hooks-targets.js\";\n\nexport type HooksInstallCommandOptions = {\n readonly dryRun?: boolean;\n readonly tool?: HookToolId;\n};\n\nexport type HooksUninstallCommandOptions = {\n readonly dryRun?: boolean;\n readonly tool?: HookToolId;\n};\n\nexport async function runHooksInstallCommand(\n options: HooksInstallCommandOptions,\n output: CommandOutput\n): Promise<void> {\n const targets = resolveInstallTargets(options.tool ?? \"all\");\n const results = [];\n\n for (const target of targets) {\n const result = await installHooksForTarget(target, options.dryRun === true);\n results.push(result);\n }\n\n output.component(createElement(HookTargetResults, { results }));\n}\n\nexport async function runHooksUninstallCommand(\n options: HooksUninstallCommandOptions,\n output: CommandOutput\n): Promise<void> {\n const targets = resolveInstallTargets(options.tool ?? \"all\");\n const results = [];\n\n for (const target of targets) {\n const result = await uninstallHooksForTarget(target, options.dryRun === true);\n results.push(result);\n }\n\n output.component(createElement(HookTargetResults, { results }));\n}\n","import { Box, Text } from \"ink\";\n\nexport type HookTargetResult = {\n readonly action: string;\n readonly label: string;\n readonly configPath: string;\n readonly changedCount: number;\n readonly replacedCount?: number;\n readonly events: readonly string[];\n};\n\nexport function HookTargetResults({ results }: { readonly results: readonly HookTargetResult[] }) {\n return (\n <Box flexDirection=\"column\">\n {results.map((result) => (\n <Box flexDirection=\"column\" key={`${result.label}-${result.configPath}`} marginBottom={1}>\n <Text color=\"green\" bold>\n {result.action} {result.changedCount} {result.label} hook\n {result.changedCount === 1 ? \"\" : \"s\"}\n </Text>\n <Text>{result.configPath}</Text>\n {result.replacedCount !== undefined ? (\n <Text dimColor>replaced {result.replacedCount} existing cngkit handler(s)</Text>\n ) : null}\n <Text dimColor>\n events: {result.events.length > 0 ? result.events.join(\", \") : \"none\"}\n </Text>\n </Box>\n ))}\n </Box>\n );\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport type { HookTargetResult } from \"./hooks-output.js\";\nimport { createCngkitHookHandler, isCngkitHookHandler } from \"./hooks-handler.js\";\nimport { parseHookConfig, parseHookGroups, readJsonDocument } from \"./hooks-document-io.js\";\nimport type { HookGroup } from \"./hooks-schemas.js\";\nimport type { InstallTarget } from \"./hooks-targets.js\";\n\nexport async function installHooksForTarget(\n target: InstallTarget,\n dryRun: boolean\n): Promise<HookTargetResult> {\n const document = await readJsonDocument(target.configPath);\n const hooks = parseHookConfig(document.hooks);\n let replacedHandlers = 0;\n\n for (const eventName of target.events) {\n const result = installHookEvent(hooks[eventName], eventName, target.statusMessages);\n hooks[eventName] = result.groups;\n replacedHandlers += result.removedHandlers;\n }\n\n document.hooks = hooks;\n\n if (!dryRun) {\n await fs.mkdir(path.dirname(target.configPath), { recursive: true });\n await fs.writeFile(target.configPath, `${JSON.stringify(document, null, 2)}\\n`);\n }\n\n const action = dryRun ? \"Would install\" : \"Installed\";\n return {\n action,\n label: target.label,\n configPath: target.configPath,\n changedCount: target.events.length,\n replacedCount: replacedHandlers,\n events: target.events,\n };\n}\n\nexport async function uninstallHooksForTarget(\n target: InstallTarget,\n dryRun: boolean\n): Promise<HookTargetResult> {\n const document = await readJsonDocument(target.configPath);\n const hooks = parseHookConfig(document.hooks);\n const removedEvents: string[] = [];\n let removedHandlers = 0;\n\n for (const [eventName, groups] of Object.entries(hooks)) {\n const result = uninstallHookEvent(groups);\n if (result.removedHandlers > 0) {\n removedEvents.push(eventName);\n removedHandlers += result.removedHandlers;\n }\n hooks[eventName] = result.groups;\n }\n\n document.hooks = Object.fromEntries(\n Object.entries(hooks).filter(([, groups]) => groups.length > 0)\n );\n\n if (!dryRun) {\n await fs.mkdir(path.dirname(target.configPath), { recursive: true });\n await fs.writeFile(target.configPath, `${JSON.stringify(document, null, 2)}\\n`);\n }\n\n const action = dryRun ? \"Would remove\" : \"Removed\";\n return {\n action,\n label: target.label,\n configPath: target.configPath,\n changedCount: removedHandlers,\n events: removedEvents,\n };\n}\n\nfunction installHookEvent(\n existingGroups: HookGroup[] | undefined,\n eventName: string,\n withStatusMessage: boolean\n): {\n readonly groups: HookGroup[];\n readonly removedHandlers: number;\n} {\n const result = uninstallHookEvent(existingGroups ?? []);\n\n return {\n groups: [\n ...result.groups,\n {\n hooks: [createCngkitHookHandler(eventName, withStatusMessage)],\n },\n ],\n removedHandlers: result.removedHandlers,\n };\n}\n\nfunction uninstallHookEvent(groups: HookGroup[] | undefined): {\n readonly groups: HookGroup[];\n readonly removedHandlers: number;\n} {\n let removedHandlers = 0;\n const cleanedGroups = parseHookGroups(groups)\n .map((group) => {\n if (group.hooks === undefined) {\n return group;\n }\n\n const hooks = group.hooks.filter((handler) => {\n const keep = !isCngkitHookHandler(handler);\n if (!keep) {\n removedHandlers += 1;\n }\n return keep;\n });\n\n return { ...group, hooks };\n })\n .filter((group) => {\n return group.hooks === undefined || group.hooks.length > 0;\n });\n\n return { groups: cleanedGroups, removedHandlers };\n}\n","import type { HookHandler } from \"./hooks-schemas.js\";\n\nexport const cngkitHookCommandPrefix = \"cngkit hookify ingest --event \";\n\nexport const legacyCngkitHookCommandPrefixes = [\n \"npx --yes cngkit@latest hookify ingest --event \",\n \"npm exec cngkit@latest hookify ingest --event \",\n \"npm exec --yes cngkit@latest hookify ingest --event \",\n] as const;\n\nexport function isCngkitHookHandler(handler: HookHandler): boolean {\n const command = handler.command?.trimStart();\n if (command === undefined) {\n return false;\n }\n\n return [cngkitHookCommandPrefix, ...legacyCngkitHookCommandPrefixes].some((prefix) =>\n command.startsWith(prefix)\n );\n}\n\nexport function createCngkitHookHandler(\n eventName: string,\n withStatusMessage: boolean\n): HookHandler {\n const handler: HookHandler = {\n type: \"command\",\n command: `${cngkitHookCommandPrefix}${eventName}`,\n };\n\n if (!withStatusMessage) {\n return handler;\n }\n\n return {\n ...handler,\n statusMessage: `Forwarding ${eventName} hook to cngkit`,\n };\n}\n","import fs from \"node:fs/promises\";\n\nimport { z } from \"zod\";\n\nimport {\n AgentSettingsDocumentSchema,\n HookGroupSchema,\n type AgentSettingsDocument,\n type HookConfig,\n type HookGroup,\n} from \"./hooks-schemas.js\";\n\nexport async function readJsonDocument(filePath: string): Promise<AgentSettingsDocument> {\n if (!(await fileExists(filePath))) {\n return {};\n }\n\n const content = await fs.readFile(filePath, \"utf8\");\n return AgentSettingsDocumentSchema.parse(JSON.parse(content));\n}\n\nexport async function fileExists(filePath: string): Promise<boolean> {\n return fs.access(filePath).then(\n () => true,\n () => false\n );\n}\n\nexport function parseHookConfig(value: AgentSettingsDocument[\"hooks\"]): HookConfig {\n // The runtime config may be malformed by other tools; fall back to an empty\n // hooks record so callers can still mutate and rewrite it without throwing.\n return z\n .record(z.string(), z.array(HookGroupSchema))\n .catch({})\n .parse(value ?? {});\n}\n\nexport function parseHookGroups(value: HookGroup[] | undefined): HookGroup[] {\n return z\n .array(HookGroupSchema)\n .catch([])\n .parse(value ?? []);\n}\n","import { z } from \"zod\";\n\nexport const HookHandlerSchema = z\n .object({\n command: z.string().optional(),\n })\n .passthrough();\n\nexport const HookGroupSchema = z\n .object({\n hooks: z.array(HookHandlerSchema).optional(),\n })\n .passthrough();\n\nexport const HooksConfigSchema = z.record(z.string(), z.array(HookGroupSchema));\n\nexport const AgentSettingsDocumentSchema = z\n .object({\n hooks: HooksConfigSchema.optional(),\n })\n .passthrough();\n\nexport type HookHandler = z.infer<typeof HookHandlerSchema>;\nexport type HookGroup = z.infer<typeof HookGroupSchema>;\nexport type HookConfig = z.infer<typeof HooksConfigSchema>;\nexport type AgentSettingsDocument = z.infer<typeof AgentSettingsDocumentSchema>;\n"],"mappings":"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","names":["fs","path","z","z","fs","path"]}
|
package/dist/cli.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import {
|
|
3
3
|
renderCngkitHelp,
|
|
4
4
|
renderKnowledgesHelp
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QCAHQE7Q.js";
|
|
6
6
|
import {
|
|
7
7
|
formatError,
|
|
8
8
|
packageVersion,
|
|
9
9
|
parseOutputFormat
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-X3UQB2CC.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/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
|
+
{"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(\n element: ReactElement,\n output: CommandOutput | undefined\n): 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-
|
|
3
|
+
} from "../../chunk-QCAHQE7Q.js";
|
|
4
4
|
import {
|
|
5
5
|
GlobalOptionsSchema
|
|
6
6
|
} from "../../chunk-25Q463MH.js";
|
|
7
7
|
import {
|
|
8
8
|
CommandRunner
|
|
9
|
-
} from "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
9
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
10
|
+
import "../../chunk-X3UQB2CC.js";
|
|
11
11
|
import "../../chunk-PZ5AY32C.js";
|
|
12
12
|
|
|
13
13
|
// src/commands/coderoom/index.tsx
|
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runJoinCommand
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-DDQ5TITN.js";
|
|
4
|
+
import "../../chunk-YIU6G2D3.js";
|
|
5
5
|
import {
|
|
6
6
|
GlobalOptionsSchema,
|
|
7
7
|
RequiredRoomCodeArgsSchema
|
|
8
8
|
} from "../../chunk-25Q463MH.js";
|
|
9
9
|
import {
|
|
10
10
|
CommandRunner
|
|
11
|
-
} from "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
11
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
12
|
+
import "../../chunk-X3UQB2CC.js";
|
|
13
13
|
import "../../chunk-PZ5AY32C.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/coderoom/join.tsx
|
|
16
|
+
import { option } from "pastel";
|
|
17
|
+
import { z } from "zod";
|
|
16
18
|
import { jsx } from "react/jsx-runtime";
|
|
17
19
|
var description = "Join another developer's live room from the current directory";
|
|
18
20
|
var args = RequiredRoomCodeArgsSchema;
|
|
19
|
-
var options = GlobalOptionsSchema
|
|
21
|
+
var options = GlobalOptionsSchema.extend({
|
|
22
|
+
acceptanceToken: z.string().optional().describe(
|
|
23
|
+
option({
|
|
24
|
+
description: "Guest acceptance token from the host's share command",
|
|
25
|
+
valueDescription: "token"
|
|
26
|
+
})
|
|
27
|
+
)
|
|
28
|
+
});
|
|
20
29
|
function JoinCommand({ args: args2, options: options2 }) {
|
|
21
30
|
return /* @__PURE__ */ jsx(CommandRunner, { run: (output) => runJoinCommand(args2[0], options2, output) });
|
|
22
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/coderoom/join.tsx"],"sourcesContent":["import { GlobalOptionsSchema, RequiredRoomCodeArgsSchema } from \"../../cli/options.js\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/commands/coderoom/join.tsx"],"sourcesContent":["import { option } from \"pastel\";\nimport { z } from \"zod\";\n\nimport { GlobalOptionsSchema, RequiredRoomCodeArgsSchema } from \"../../cli/options.js\";\nimport {\n runJoinCommand,\n type JoinCommandOptions,\n} from \"../../features/coderoom/run-coderoom-command.js\";\nimport { CommandRunner } from \"../../cli/command-runner.js\";\n\nexport const description = \"Join another developer's live room from the current directory\";\nexport const args = RequiredRoomCodeArgsSchema;\nexport const options = GlobalOptionsSchema.extend({\n acceptanceToken: z\n .string()\n .optional()\n .describe(\n option({\n description: \"Guest acceptance token from the host's share command\",\n valueDescription: \"token\",\n })\n ),\n});\n\ntype JoinCommandProps = {\n readonly args: [string];\n readonly options: JoinCommandOptions;\n};\n\nexport default function JoinCommand({ args, options }: JoinCommandProps) {\n return <CommandRunner run={(output) => runJoinCommand(args[0], options, output)} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,SAAS;AA6BT;AApBF,IAAM,cAAc;AACpB,IAAM,OAAO;AACb,IAAM,UAAU,oBAAoB,OAAO;AAAA,EAChD,iBAAiB,EACd,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,eAAeD,MAAK,CAAC,GAAGC,UAAS,MAAM,GAAG;AACnF;","names":["args","options"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runShareCommand
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-DDQ5TITN.js";
|
|
4
|
+
import "../../chunk-YIU6G2D3.js";
|
|
5
5
|
import {
|
|
6
6
|
GlobalOptionsSchema
|
|
7
7
|
} from "../../chunk-25Q463MH.js";
|
|
8
8
|
import {
|
|
9
9
|
CommandRunner
|
|
10
|
-
} from "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
10
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
11
|
+
import "../../chunk-X3UQB2CC.js";
|
|
12
12
|
import "../../chunk-PZ5AY32C.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/coderoom/share.tsx
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
renderCngkitHelp
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-QCAHQE7Q.js";
|
|
4
4
|
import {
|
|
5
5
|
GlobalOptionsSchema
|
|
6
6
|
} from "../../chunk-25Q463MH.js";
|
|
7
7
|
import {
|
|
8
8
|
CommandRunner
|
|
9
|
-
} from "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
9
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
10
|
+
import "../../chunk-X3UQB2CC.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-
|
|
3
|
+
} from "../../chunk-YIU6G2D3.js";
|
|
4
4
|
import {
|
|
5
5
|
GlobalOptionsSchema
|
|
6
6
|
} from "../../chunk-25Q463MH.js";
|
|
7
7
|
import {
|
|
8
8
|
CommandRunner
|
|
9
|
-
} from "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
9
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
10
|
+
import "../../chunk-X3UQB2CC.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-
|
|
3
|
+
} from "../../chunk-QCAHQE7Q.js";
|
|
4
4
|
import {
|
|
5
5
|
GlobalOptionsSchema
|
|
6
6
|
} from "../../chunk-25Q463MH.js";
|
|
7
7
|
import {
|
|
8
8
|
CommandRunner
|
|
9
|
-
} from "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
9
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
10
|
+
import "../../chunk-X3UQB2CC.js";
|
|
11
11
|
import "../../chunk-PZ5AY32C.js";
|
|
12
12
|
|
|
13
13
|
// src/commands/hooks/index.tsx
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
hookToolIds,
|
|
3
3
|
runHooksInstallCommand
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-YPGDQ6P2.js";
|
|
5
5
|
import {
|
|
6
6
|
GlobalOptionsSchema
|
|
7
7
|
} from "../../chunk-25Q463MH.js";
|
|
8
8
|
import {
|
|
9
9
|
CommandRunner
|
|
10
|
-
} from "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
10
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
11
|
+
import "../../chunk-X3UQB2CC.js";
|
|
12
12
|
import "../../chunk-PZ5AY32C.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/hooks/install.tsx
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
hookToolIds,
|
|
3
3
|
runHooksUninstallCommand
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-YPGDQ6P2.js";
|
|
5
5
|
import {
|
|
6
6
|
GlobalOptionsSchema
|
|
7
7
|
} from "../../chunk-25Q463MH.js";
|
|
8
8
|
import {
|
|
9
9
|
CommandRunner
|
|
10
|
-
} from "../../chunk-
|
|
11
|
-
import "../../chunk-
|
|
10
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
11
|
+
import "../../chunk-X3UQB2CC.js";
|
|
12
12
|
import "../../chunk-PZ5AY32C.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/hooks/uninstall.tsx
|
package/dist/commands/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
renderCngkitHelp
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-QCAHQE7Q.js";
|
|
4
4
|
import {
|
|
5
5
|
CommandRunner
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-TC6YIS5Z.js";
|
|
7
|
+
import "../chunk-X3UQB2CC.js";
|
|
8
8
|
import "../chunk-PZ5AY32C.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/index.tsx
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KnowAudienceList
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-3VDQDFHG.js";
|
|
4
4
|
import {
|
|
5
5
|
createKnowledgesApi
|
|
6
|
-
} from "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
6
|
+
} from "../../chunk-55IPOJ3R.js";
|
|
7
|
+
import "../../chunk-2Y5FMKFS.js";
|
|
8
8
|
import {
|
|
9
9
|
formatJson,
|
|
10
10
|
shouldPrintJson
|
|
11
11
|
} from "../../chunk-XQGLUQFM.js";
|
|
12
|
-
import "../../chunk-
|
|
12
|
+
import "../../chunk-YIU6G2D3.js";
|
|
13
13
|
import {
|
|
14
14
|
JsonOutputOptionsSchema
|
|
15
15
|
} from "../../chunk-25Q463MH.js";
|
|
16
16
|
import {
|
|
17
17
|
CommandRunner
|
|
18
|
-
} from "../../chunk-
|
|
19
|
-
import "../../chunk-
|
|
18
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
19
|
+
import "../../chunk-X3UQB2CC.js";
|
|
20
20
|
import "../../chunk-PZ5AY32C.js";
|
|
21
21
|
|
|
22
22
|
// src/features/knowledges/handlers/audiences.ts
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
outputRawContent
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-LC4CYVCT.js";
|
|
4
4
|
import {
|
|
5
5
|
createKnowledgesApi
|
|
6
|
-
} from "../../chunk-
|
|
6
|
+
} from "../../chunk-55IPOJ3R.js";
|
|
7
7
|
import {
|
|
8
8
|
normalizeCatalogPath
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-2Y5FMKFS.js";
|
|
10
10
|
import "../../chunk-XQGLUQFM.js";
|
|
11
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-YIU6G2D3.js";
|
|
12
12
|
import {
|
|
13
13
|
JsonOutputOptionsSchema,
|
|
14
14
|
RequiredFilePathArgsSchema
|
|
15
15
|
} from "../../chunk-25Q463MH.js";
|
|
16
16
|
import {
|
|
17
17
|
CommandRunner
|
|
18
|
-
} from "../../chunk-
|
|
19
|
-
import "../../chunk-
|
|
18
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
19
|
+
import "../../chunk-X3UQB2CC.js";
|
|
20
20
|
import "../../chunk-PZ5AY32C.js";
|
|
21
21
|
|
|
22
22
|
// src/features/knowledges/handlers/cat.ts
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KnowTopicFileList
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-3VDQDFHG.js";
|
|
4
4
|
import {
|
|
5
5
|
createKnowledgesApi
|
|
6
|
-
} from "../../chunk-
|
|
6
|
+
} from "../../chunk-55IPOJ3R.js";
|
|
7
7
|
import {
|
|
8
8
|
normalizeAudienceId
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-2Y5FMKFS.js";
|
|
10
10
|
import {
|
|
11
11
|
coerceLimit,
|
|
12
12
|
formatJson,
|
|
13
13
|
shouldPrintJson
|
|
14
14
|
} from "../../chunk-XQGLUQFM.js";
|
|
15
|
-
import "../../chunk-
|
|
15
|
+
import "../../chunk-YIU6G2D3.js";
|
|
16
16
|
import {
|
|
17
17
|
JsonOutputOptionsSchema,
|
|
18
18
|
OptionalQueryArgsSchema
|
|
19
19
|
} from "../../chunk-25Q463MH.js";
|
|
20
20
|
import {
|
|
21
21
|
CommandRunner
|
|
22
|
-
} from "../../chunk-
|
|
23
|
-
import "../../chunk-
|
|
22
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
23
|
+
import "../../chunk-X3UQB2CC.js";
|
|
24
24
|
import "../../chunk-PZ5AY32C.js";
|
|
25
25
|
|
|
26
26
|
// src/commands/knowledges/files.tsx
|
|
@@ -2,28 +2,28 @@ import {
|
|
|
2
2
|
coerceOptionalFiniteNumber,
|
|
3
3
|
compareFilesystemEntries,
|
|
4
4
|
formatFilesystemEntryPath
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-LNFZT3R3.js";
|
|
6
6
|
import {
|
|
7
7
|
createKnowledgesApi
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-55IPOJ3R.js";
|
|
9
9
|
import {
|
|
10
10
|
formatCatalogPathForDisplay,
|
|
11
11
|
normalizeFilesystemCatalogPath
|
|
12
|
-
} from "../../chunk-
|
|
12
|
+
} from "../../chunk-2Y5FMKFS.js";
|
|
13
13
|
import {
|
|
14
14
|
coerceLimit,
|
|
15
15
|
formatJson,
|
|
16
16
|
shouldPrintJson
|
|
17
17
|
} from "../../chunk-XQGLUQFM.js";
|
|
18
|
-
import "../../chunk-
|
|
18
|
+
import "../../chunk-YIU6G2D3.js";
|
|
19
19
|
import {
|
|
20
20
|
JsonOutputOptionsSchema,
|
|
21
21
|
OptionalPathArgsSchema
|
|
22
22
|
} from "../../chunk-25Q463MH.js";
|
|
23
23
|
import {
|
|
24
24
|
CommandRunner
|
|
25
|
-
} from "../../chunk-
|
|
26
|
-
import "../../chunk-
|
|
25
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
26
|
+
import "../../chunk-X3UQB2CC.js";
|
|
27
27
|
import "../../chunk-PZ5AY32C.js";
|
|
28
28
|
|
|
29
29
|
// src/commands/knowledges/find.tsx
|
|
@@ -1 +1 @@
|
|
|
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 {
|
|
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 {\n formatCatalogPathForDisplay,\n normalizeFilesystemCatalogPath,\n} 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;;;ACalB,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;;;ADoBS;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,24 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createKnowledgesApi
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-55IPOJ3R.js";
|
|
4
4
|
import {
|
|
5
5
|
formatCatalogPathForDisplay,
|
|
6
6
|
normalizeCatalogPath
|
|
7
|
-
} from "../../chunk-
|
|
7
|
+
} from "../../chunk-2Y5FMKFS.js";
|
|
8
8
|
import {
|
|
9
9
|
coerceOptionalNumber,
|
|
10
10
|
formatJson,
|
|
11
11
|
shouldPrintJson
|
|
12
12
|
} from "../../chunk-XQGLUQFM.js";
|
|
13
|
-
import "../../chunk-
|
|
13
|
+
import "../../chunk-YIU6G2D3.js";
|
|
14
14
|
import {
|
|
15
15
|
LimitOptionsSchema,
|
|
16
16
|
OptionalGlobPatternArgsSchema
|
|
17
17
|
} from "../../chunk-25Q463MH.js";
|
|
18
18
|
import {
|
|
19
19
|
CommandRunner
|
|
20
|
-
} from "../../chunk-
|
|
21
|
-
import "../../chunk-
|
|
20
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
21
|
+
import "../../chunk-X3UQB2CC.js";
|
|
22
22
|
import "../../chunk-PZ5AY32C.js";
|
|
23
23
|
|
|
24
24
|
// src/commands/knowledges/glob.tsx
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createKnowledgesApi
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-55IPOJ3R.js";
|
|
4
4
|
import {
|
|
5
5
|
formatCatalogPathForDisplay,
|
|
6
6
|
normalizeCatalogPath,
|
|
7
7
|
normalizeGrepMode
|
|
8
|
-
} from "../../chunk-
|
|
8
|
+
} from "../../chunk-2Y5FMKFS.js";
|
|
9
9
|
import {
|
|
10
10
|
coerceLimit,
|
|
11
11
|
coerceOptionalNumber,
|
|
12
12
|
formatJson,
|
|
13
13
|
shouldPrintJson
|
|
14
14
|
} from "../../chunk-XQGLUQFM.js";
|
|
15
|
-
import "../../chunk-
|
|
15
|
+
import "../../chunk-YIU6G2D3.js";
|
|
16
16
|
import {
|
|
17
17
|
LimitOptionsSchema,
|
|
18
18
|
RequiredPatternArgsSchema
|
|
19
19
|
} from "../../chunk-25Q463MH.js";
|
|
20
20
|
import {
|
|
21
21
|
CommandRunner
|
|
22
|
-
} from "../../chunk-
|
|
23
|
-
import "../../chunk-
|
|
22
|
+
} from "../../chunk-TC6YIS5Z.js";
|
|
23
|
+
import "../../chunk-X3UQB2CC.js";
|
|
24
24
|
import "../../chunk-PZ5AY32C.js";
|
|
25
25
|
|
|
26
26
|
// src/commands/knowledges/grep.tsx
|
|
@@ -1 +1 @@
|
|
|
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 {
|
|
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 {\n formatCatalogPathForDisplay,\n normalizeCatalogPath,\n normalizeGrepMode,\n} 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":"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","names":["options","lines","args","options"]}
|