@kynetic-ai/spec 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +263 -0
- package/dist/acp/client.d.ts +159 -0
- package/dist/acp/client.d.ts.map +1 -0
- package/dist/acp/client.js +255 -0
- package/dist/acp/client.js.map +1 -0
- package/dist/acp/framing.d.ts +119 -0
- package/dist/acp/framing.d.ts.map +1 -0
- package/dist/acp/framing.js +302 -0
- package/dist/acp/framing.js.map +1 -0
- package/dist/acp/index.d.ts +14 -0
- package/dist/acp/index.d.ts.map +1 -0
- package/dist/acp/index.js +13 -0
- package/dist/acp/index.js.map +1 -0
- package/dist/acp/types.d.ts +89 -0
- package/dist/acp/types.d.ts.map +1 -0
- package/dist/acp/types.js +99 -0
- package/dist/acp/types.js.map +1 -0
- package/dist/agents/adapters.d.ts +55 -0
- package/dist/agents/adapters.d.ts.map +1 -0
- package/dist/agents/adapters.js +84 -0
- package/dist/agents/adapters.js.map +1 -0
- package/dist/agents/index.d.ts +8 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +10 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/spawner.d.ts +53 -0
- package/dist/agents/spawner.d.ts.map +1 -0
- package/dist/agents/spawner.js +83 -0
- package/dist/agents/spawner.js.map +1 -0
- package/dist/cli/batch.d.ts +82 -0
- package/dist/cli/batch.d.ts.map +1 -0
- package/dist/cli/batch.js +162 -0
- package/dist/cli/batch.js.map +1 -0
- package/dist/cli/commands/clone-for-testing.d.ts +6 -0
- package/dist/cli/commands/clone-for-testing.d.ts.map +1 -0
- package/dist/cli/commands/clone-for-testing.js +176 -0
- package/dist/cli/commands/clone-for-testing.js.map +1 -0
- package/dist/cli/commands/derive.d.ts +6 -0
- package/dist/cli/commands/derive.d.ts.map +1 -0
- package/dist/cli/commands/derive.js +450 -0
- package/dist/cli/commands/derive.js.map +1 -0
- package/dist/cli/commands/help.d.ts +6 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +196 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/inbox.d.ts +6 -0
- package/dist/cli/commands/inbox.d.ts.map +1 -0
- package/dist/cli/commands/inbox.js +235 -0
- package/dist/cli/commands/inbox.js.map +1 -0
- package/dist/cli/commands/index.d.ts +20 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +21 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +245 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/item.d.ts +6 -0
- package/dist/cli/commands/item.d.ts.map +1 -0
- package/dist/cli/commands/item.js +1311 -0
- package/dist/cli/commands/item.js.map +1 -0
- package/dist/cli/commands/link.d.ts +6 -0
- package/dist/cli/commands/link.d.ts.map +1 -0
- package/dist/cli/commands/link.js +288 -0
- package/dist/cli/commands/link.js.map +1 -0
- package/dist/cli/commands/log.d.ts +16 -0
- package/dist/cli/commands/log.d.ts.map +1 -0
- package/dist/cli/commands/log.js +291 -0
- package/dist/cli/commands/log.js.map +1 -0
- package/dist/cli/commands/meta.d.ts +15 -0
- package/dist/cli/commands/meta.d.ts.map +1 -0
- package/dist/cli/commands/meta.js +1378 -0
- package/dist/cli/commands/meta.js.map +1 -0
- package/dist/cli/commands/module.d.ts +6 -0
- package/dist/cli/commands/module.d.ts.map +1 -0
- package/dist/cli/commands/module.js +102 -0
- package/dist/cli/commands/module.js.map +1 -0
- package/dist/cli/commands/ralph.d.ts +9 -0
- package/dist/cli/commands/ralph.d.ts.map +1 -0
- package/dist/cli/commands/ralph.js +465 -0
- package/dist/cli/commands/ralph.js.map +1 -0
- package/dist/cli/commands/search.d.ts +6 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +134 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/session.d.ts +164 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +745 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +26 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +586 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/shadow.d.ts +6 -0
- package/dist/cli/commands/shadow.d.ts.map +1 -0
- package/dist/cli/commands/shadow.js +299 -0
- package/dist/cli/commands/shadow.js.map +1 -0
- package/dist/cli/commands/task.d.ts +6 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +1514 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/tasks.d.ts +6 -0
- package/dist/cli/commands/tasks.d.ts.map +1 -0
- package/dist/cli/commands/tasks.js +347 -0
- package/dist/cli/commands/tasks.js.map +1 -0
- package/dist/cli/commands/trait.d.ts +10 -0
- package/dist/cli/commands/trait.d.ts.map +1 -0
- package/dist/cli/commands/trait.js +295 -0
- package/dist/cli/commands/trait.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +6 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +626 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/exit-codes.d.ts +62 -0
- package/dist/cli/exit-codes.d.ts.map +1 -0
- package/dist/cli/exit-codes.js +65 -0
- package/dist/cli/exit-codes.js.map +1 -0
- package/dist/cli/help/content.d.ts +35 -0
- package/dist/cli/help/content.d.ts.map +1 -0
- package/dist/cli/help/content.js +312 -0
- package/dist/cli/help/content.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +85 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/introspection.d.ts +87 -0
- package/dist/cli/introspection.d.ts.map +1 -0
- package/dist/cli/introspection.js +127 -0
- package/dist/cli/introspection.js.map +1 -0
- package/dist/cli/output.d.ts +56 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +467 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/suggest.d.ts +16 -0
- package/dist/cli/suggest.d.ts.map +1 -0
- package/dist/cli/suggest.js +72 -0
- package/dist/cli/suggest.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/alignment.d.ts +113 -0
- package/dist/parser/alignment.d.ts.map +1 -0
- package/dist/parser/alignment.js +261 -0
- package/dist/parser/alignment.js.map +1 -0
- package/dist/parser/assess.d.ts +81 -0
- package/dist/parser/assess.d.ts.map +1 -0
- package/dist/parser/assess.js +197 -0
- package/dist/parser/assess.js.map +1 -0
- package/dist/parser/convention-validation.d.ts +48 -0
- package/dist/parser/convention-validation.d.ts.map +1 -0
- package/dist/parser/convention-validation.js +167 -0
- package/dist/parser/convention-validation.js.map +1 -0
- package/dist/parser/fix.d.ts +38 -0
- package/dist/parser/fix.d.ts.map +1 -0
- package/dist/parser/fix.js +185 -0
- package/dist/parser/fix.js.map +1 -0
- package/dist/parser/index.d.ts +12 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +13 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/items.d.ts +138 -0
- package/dist/parser/items.d.ts.map +1 -0
- package/dist/parser/items.js +321 -0
- package/dist/parser/items.js.map +1 -0
- package/dist/parser/meta.d.ts +120 -0
- package/dist/parser/meta.d.ts.map +1 -0
- package/dist/parser/meta.js +441 -0
- package/dist/parser/meta.js.map +1 -0
- package/dist/parser/refs.d.ts +185 -0
- package/dist/parser/refs.d.ts.map +1 -0
- package/dist/parser/refs.js +404 -0
- package/dist/parser/refs.js.map +1 -0
- package/dist/parser/shadow.d.ts +253 -0
- package/dist/parser/shadow.d.ts.map +1 -0
- package/dist/parser/shadow.js +1053 -0
- package/dist/parser/shadow.js.map +1 -0
- package/dist/parser/traits.d.ts +72 -0
- package/dist/parser/traits.d.ts.map +1 -0
- package/dist/parser/traits.js +120 -0
- package/dist/parser/traits.js.map +1 -0
- package/dist/parser/validate.d.ts +89 -0
- package/dist/parser/validate.d.ts.map +1 -0
- package/dist/parser/validate.js +817 -0
- package/dist/parser/validate.js.map +1 -0
- package/dist/parser/yaml.d.ts +326 -0
- package/dist/parser/yaml.d.ts.map +1 -0
- package/dist/parser/yaml.js +1383 -0
- package/dist/parser/yaml.js.map +1 -0
- package/dist/ralph/cli-renderer.d.ts +20 -0
- package/dist/ralph/cli-renderer.d.ts.map +1 -0
- package/dist/ralph/cli-renderer.js +179 -0
- package/dist/ralph/cli-renderer.js.map +1 -0
- package/dist/ralph/events.d.ts +65 -0
- package/dist/ralph/events.d.ts.map +1 -0
- package/dist/ralph/events.js +397 -0
- package/dist/ralph/events.js.map +1 -0
- package/dist/ralph/index.d.ts +8 -0
- package/dist/ralph/index.d.ts.map +1 -0
- package/dist/ralph/index.js +10 -0
- package/dist/ralph/index.js.map +1 -0
- package/dist/schema/common.d.ts +46 -0
- package/dist/schema/common.d.ts.map +1 -0
- package/dist/schema/common.js +71 -0
- package/dist/schema/common.js.map +1 -0
- package/dist/schema/inbox.d.ts +90 -0
- package/dist/schema/inbox.d.ts.map +1 -0
- package/dist/schema/inbox.js +30 -0
- package/dist/schema/inbox.js.map +1 -0
- package/dist/schema/index.d.ts +6 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +7 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/meta.d.ts +762 -0
- package/dist/schema/meta.d.ts.map +1 -0
- package/dist/schema/meta.js +144 -0
- package/dist/schema/meta.js.map +1 -0
- package/dist/schema/spec.d.ts +912 -0
- package/dist/schema/spec.d.ts.map +1 -0
- package/dist/schema/spec.js +104 -0
- package/dist/schema/spec.js.map +1 -0
- package/dist/schema/task.d.ts +664 -0
- package/dist/schema/task.d.ts.map +1 -0
- package/dist/schema/task.js +130 -0
- package/dist/schema/task.js.map +1 -0
- package/dist/sessions/index.d.ts +11 -0
- package/dist/sessions/index.d.ts.map +1 -0
- package/dist/sessions/index.js +13 -0
- package/dist/sessions/index.js.map +1 -0
- package/dist/sessions/store.d.ts +144 -0
- package/dist/sessions/store.d.ts.map +1 -0
- package/dist/sessions/store.js +325 -0
- package/dist/sessions/store.js.map +1 -0
- package/dist/sessions/types.d.ts +157 -0
- package/dist/sessions/types.d.ts.map +1 -0
- package/dist/sessions/types.js +90 -0
- package/dist/sessions/types.js.map +1 -0
- package/dist/strings/errors.d.ts +420 -0
- package/dist/strings/errors.d.ts.map +1 -0
- package/dist/strings/errors.js +282 -0
- package/dist/strings/errors.js.map +1 -0
- package/dist/strings/guidance.d.ts +65 -0
- package/dist/strings/guidance.d.ts.map +1 -0
- package/dist/strings/guidance.js +66 -0
- package/dist/strings/guidance.js.map +1 -0
- package/dist/strings/index.d.ts +12 -0
- package/dist/strings/index.d.ts.map +1 -0
- package/dist/strings/index.js +12 -0
- package/dist/strings/index.js.map +1 -0
- package/dist/strings/labels.d.ts +74 -0
- package/dist/strings/labels.d.ts.map +1 -0
- package/dist/strings/labels.js +75 -0
- package/dist/strings/labels.js.map +1 -0
- package/dist/strings/validation.d.ts +126 -0
- package/dist/strings/validation.d.ts.map +1 -0
- package/dist/strings/validation.js +135 -0
- package/dist/strings/validation.js.map +1 -0
- package/dist/utils/commit.d.ts +23 -0
- package/dist/utils/commit.d.ts.map +1 -0
- package/dist/utils/commit.js +67 -0
- package/dist/utils/commit.js.map +1 -0
- package/dist/utils/git.d.ts +57 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +192 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/grep.d.ts +28 -0
- package/dist/utils/grep.d.ts.map +1 -0
- package/dist/utils/grep.js +86 -0
- package/dist/utils/grep.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/time.d.ts +18 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +61 -0
- package/dist/utils/time.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commander.js introspection - extracts command tree from program definition
|
|
3
|
+
*
|
|
4
|
+
* This module provides the foundation for auto-generated CLI documentation
|
|
5
|
+
* by extracting command metadata directly from Commander.js definitions.
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
/**
|
|
9
|
+
* Metadata for a single command option
|
|
10
|
+
*/
|
|
11
|
+
export interface OptionMeta {
|
|
12
|
+
/** Option flags (e.g., "-n, --name <value>") */
|
|
13
|
+
flags: string;
|
|
14
|
+
/** Option description */
|
|
15
|
+
description: string;
|
|
16
|
+
/** Whether option is required */
|
|
17
|
+
required: boolean;
|
|
18
|
+
/** Default value if any */
|
|
19
|
+
defaultValue?: unknown;
|
|
20
|
+
/** Whether option can be repeated */
|
|
21
|
+
variadic: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Metadata for a command argument
|
|
25
|
+
*/
|
|
26
|
+
export interface ArgumentMeta {
|
|
27
|
+
/** Argument name */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Argument description */
|
|
30
|
+
description: string;
|
|
31
|
+
/** Whether argument is required */
|
|
32
|
+
required: boolean;
|
|
33
|
+
/** Whether argument can be repeated */
|
|
34
|
+
variadic: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Complete metadata for a command
|
|
38
|
+
*/
|
|
39
|
+
export interface CommandMeta {
|
|
40
|
+
/** Command name */
|
|
41
|
+
name: string;
|
|
42
|
+
/** Full command path from root (e.g., ["task", "add"]) */
|
|
43
|
+
fullPath: string[];
|
|
44
|
+
/** Command description */
|
|
45
|
+
description: string;
|
|
46
|
+
/** Command aliases */
|
|
47
|
+
aliases: string[];
|
|
48
|
+
/** Command arguments */
|
|
49
|
+
arguments: ArgumentMeta[];
|
|
50
|
+
/** Command options */
|
|
51
|
+
options: OptionMeta[];
|
|
52
|
+
/** Subcommands */
|
|
53
|
+
subcommands: CommandMeta[];
|
|
54
|
+
/** Whether this command is hidden */
|
|
55
|
+
hidden: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Extract complete command tree from a Commander program
|
|
59
|
+
*
|
|
60
|
+
* @param command - Commander command to introspect
|
|
61
|
+
* @param parentPath - Parent command path (for recursion)
|
|
62
|
+
* @returns Complete command metadata tree
|
|
63
|
+
*/
|
|
64
|
+
export declare function extractCommandTree(command: Command, parentPath?: string[]): CommandMeta;
|
|
65
|
+
/**
|
|
66
|
+
* Find a command in the tree by path
|
|
67
|
+
*
|
|
68
|
+
* @param tree - Command tree to search
|
|
69
|
+
* @param path - Command path (e.g., ["task", "add"])
|
|
70
|
+
* @returns Command metadata if found, null otherwise
|
|
71
|
+
*/
|
|
72
|
+
export declare function findCommand(tree: CommandMeta, path: string[]): CommandMeta | null;
|
|
73
|
+
/**
|
|
74
|
+
* Flatten command tree into a list of all commands
|
|
75
|
+
*
|
|
76
|
+
* @param tree - Command tree to flatten
|
|
77
|
+
* @returns Array of all commands in the tree
|
|
78
|
+
*/
|
|
79
|
+
export declare function flattenCommandTree(tree: CommandMeta): CommandMeta[];
|
|
80
|
+
/**
|
|
81
|
+
* Format command usage string
|
|
82
|
+
*
|
|
83
|
+
* @param command - Command metadata
|
|
84
|
+
* @returns Usage string (e.g., "kspec task add [options]")
|
|
85
|
+
*/
|
|
86
|
+
export declare function formatCommandUsage(command: CommandMeta): string;
|
|
87
|
+
//# sourceMappingURL=introspection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection.d.ts","sourceRoot":"","sources":["../../src/cli/introspection.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAA6B,MAAM,WAAW,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wBAAwB;IACxB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,sBAAsB;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,kBAAkB;IAClB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;CACjB;AA6BD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,UAAU,GAAE,MAAM,EAAO,GACxB,WAAW,CA6Bb;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAuBjF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,CAQnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAkB/D"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// AC: @auto-cli-docs ac-1
|
|
2
|
+
/**
|
|
3
|
+
* Commander.js introspection - extracts command tree from program definition
|
|
4
|
+
*
|
|
5
|
+
* This module provides the foundation for auto-generated CLI documentation
|
|
6
|
+
* by extracting command metadata directly from Commander.js definitions.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Extract metadata for a single option
|
|
10
|
+
*/
|
|
11
|
+
function extractOptionMeta(option) {
|
|
12
|
+
return {
|
|
13
|
+
flags: option.flags,
|
|
14
|
+
description: option.description || '',
|
|
15
|
+
required: option.required,
|
|
16
|
+
defaultValue: option.defaultValue,
|
|
17
|
+
variadic: option.variadic,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Extract metadata for command arguments
|
|
22
|
+
*/
|
|
23
|
+
function extractArgumentsMeta(command) {
|
|
24
|
+
// Commander stores processed arguments with metadata
|
|
25
|
+
const args = command.registeredArguments || [];
|
|
26
|
+
return args.map((arg) => ({
|
|
27
|
+
name: arg.name(),
|
|
28
|
+
description: arg.description || '',
|
|
29
|
+
required: arg.required,
|
|
30
|
+
variadic: arg.variadic,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Extract complete command tree from a Commander program
|
|
35
|
+
*
|
|
36
|
+
* @param command - Commander command to introspect
|
|
37
|
+
* @param parentPath - Parent command path (for recursion)
|
|
38
|
+
* @returns Complete command metadata tree
|
|
39
|
+
*/
|
|
40
|
+
export function extractCommandTree(command, parentPath = []) {
|
|
41
|
+
// Get command name - use first name if command has multiple
|
|
42
|
+
const commandName = command.name();
|
|
43
|
+
const fullPath = [...parentPath, commandName];
|
|
44
|
+
// Extract options (filter out help option if needed)
|
|
45
|
+
const options = command.options.map(extractOptionMeta);
|
|
46
|
+
// Extract arguments
|
|
47
|
+
const args = extractArgumentsMeta(command);
|
|
48
|
+
// Recursively extract subcommands
|
|
49
|
+
// Cast to any to access _hidden private property
|
|
50
|
+
const isHidden = (cmd) => cmd._hidden || false;
|
|
51
|
+
const subcommands = command.commands
|
|
52
|
+
.filter((cmd) => !isHidden(cmd)) // Filter hidden commands
|
|
53
|
+
.map((cmd) => extractCommandTree(cmd, fullPath));
|
|
54
|
+
return {
|
|
55
|
+
name: commandName,
|
|
56
|
+
fullPath,
|
|
57
|
+
description: command.description() || '',
|
|
58
|
+
aliases: command.aliases(),
|
|
59
|
+
arguments: args,
|
|
60
|
+
options,
|
|
61
|
+
subcommands,
|
|
62
|
+
hidden: isHidden(command),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Find a command in the tree by path
|
|
67
|
+
*
|
|
68
|
+
* @param tree - Command tree to search
|
|
69
|
+
* @param path - Command path (e.g., ["task", "add"])
|
|
70
|
+
* @returns Command metadata if found, null otherwise
|
|
71
|
+
*/
|
|
72
|
+
export function findCommand(tree, path) {
|
|
73
|
+
if (path.length === 0) {
|
|
74
|
+
return tree;
|
|
75
|
+
}
|
|
76
|
+
// If we're at the right level
|
|
77
|
+
if (path.length === 1 && path[0] === tree.name) {
|
|
78
|
+
return tree;
|
|
79
|
+
}
|
|
80
|
+
// Search in subcommands
|
|
81
|
+
const [first, ...rest] = path;
|
|
82
|
+
const subcommand = tree.subcommands.find((cmd) => cmd.name === first);
|
|
83
|
+
if (!subcommand) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
if (rest.length === 0) {
|
|
87
|
+
return subcommand;
|
|
88
|
+
}
|
|
89
|
+
return findCommand(subcommand, rest);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Flatten command tree into a list of all commands
|
|
93
|
+
*
|
|
94
|
+
* @param tree - Command tree to flatten
|
|
95
|
+
* @returns Array of all commands in the tree
|
|
96
|
+
*/
|
|
97
|
+
export function flattenCommandTree(tree) {
|
|
98
|
+
const result = [tree];
|
|
99
|
+
for (const subcommand of tree.subcommands) {
|
|
100
|
+
result.push(...flattenCommandTree(subcommand));
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Format command usage string
|
|
106
|
+
*
|
|
107
|
+
* @param command - Command metadata
|
|
108
|
+
* @returns Usage string (e.g., "kspec task add [options]")
|
|
109
|
+
*/
|
|
110
|
+
export function formatCommandUsage(command) {
|
|
111
|
+
const parts = ['kspec', ...command.fullPath.slice(1)]; // Skip root 'kspec'
|
|
112
|
+
// Add arguments
|
|
113
|
+
for (const arg of command.arguments) {
|
|
114
|
+
if (arg.required) {
|
|
115
|
+
parts.push(`<${arg.name}${arg.variadic ? '...' : ''}>`);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
parts.push(`[${arg.name}${arg.variadic ? '...' : ''}]`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Add [options] if command has options
|
|
122
|
+
if (command.options.length > 0) {
|
|
123
|
+
parts.push('[options]');
|
|
124
|
+
}
|
|
125
|
+
return parts.join(' ');
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=introspection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection.js","sourceRoot":"","sources":["../../src/cli/introspection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Task } from '../schema/index.js';
|
|
2
|
+
import type { ReferenceIndex } from '../parser/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Output options
|
|
5
|
+
*/
|
|
6
|
+
export interface OutputOptions {
|
|
7
|
+
json?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function setJsonMode(enabled: boolean): void;
|
|
10
|
+
export declare function isJsonMode(): boolean;
|
|
11
|
+
export declare function setVerboseMode(enabled: boolean): void;
|
|
12
|
+
export declare function getVerboseMode(): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Output data - JSON if --json flag, otherwise formatted
|
|
15
|
+
*/
|
|
16
|
+
export declare function output(data: unknown, formatter?: () => void): void;
|
|
17
|
+
/**
|
|
18
|
+
* Output success message
|
|
19
|
+
*/
|
|
20
|
+
export declare function success(message: string, data?: Record<string, unknown>): void;
|
|
21
|
+
/**
|
|
22
|
+
* Output error message
|
|
23
|
+
*/
|
|
24
|
+
export declare function error(message: string, details?: unknown): void;
|
|
25
|
+
/**
|
|
26
|
+
* Output warning message
|
|
27
|
+
*/
|
|
28
|
+
export declare function warn(message: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Output info message
|
|
31
|
+
*/
|
|
32
|
+
export declare function info(message: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Format a task reference (short ULID + slug if available)
|
|
35
|
+
* @param task The task to format
|
|
36
|
+
* @param index Optional ReferenceIndex for dynamic short ULID computation
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatTaskRef(task: Task, index?: ReferenceIndex): string;
|
|
39
|
+
/**
|
|
40
|
+
* Format task for display
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatTask(task: Task, verbose?: boolean, index?: ReferenceIndex, full?: boolean): string;
|
|
43
|
+
/**
|
|
44
|
+
* Format a list of tasks with automation status
|
|
45
|
+
* AC: @task-automation-eligibility ac-14
|
|
46
|
+
*/
|
|
47
|
+
export declare function formatTaskListWithAutomation(tasks: Task[], verbose?: boolean, index?: ReferenceIndex, grepPattern?: string, full?: boolean): void;
|
|
48
|
+
/**
|
|
49
|
+
* Format a list of tasks
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatTaskList(tasks: Task[], verbose?: boolean, index?: ReferenceIndex, grepPattern?: string, full?: boolean): void;
|
|
52
|
+
/**
|
|
53
|
+
* Format task details
|
|
54
|
+
*/
|
|
55
|
+
export declare function formatTaskDetails(task: Task, index?: ReferenceIndex): void;
|
|
56
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAOD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAErD;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAQlE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAM7E;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAgB9D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAM1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAM1C;AAsBD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,UAAQ,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,IAAI,UAAQ,GAAG,MAAM,CAqBpG;AAqGD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,UAAQ,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,IAAI,CA8C7I;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,UAAQ,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,IAAI,CA4B/H;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,CA4J1E"}
|