@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.
Files changed (278) hide show
  1. package/README.md +263 -0
  2. package/dist/acp/client.d.ts +159 -0
  3. package/dist/acp/client.d.ts.map +1 -0
  4. package/dist/acp/client.js +255 -0
  5. package/dist/acp/client.js.map +1 -0
  6. package/dist/acp/framing.d.ts +119 -0
  7. package/dist/acp/framing.d.ts.map +1 -0
  8. package/dist/acp/framing.js +302 -0
  9. package/dist/acp/framing.js.map +1 -0
  10. package/dist/acp/index.d.ts +14 -0
  11. package/dist/acp/index.d.ts.map +1 -0
  12. package/dist/acp/index.js +13 -0
  13. package/dist/acp/index.js.map +1 -0
  14. package/dist/acp/types.d.ts +89 -0
  15. package/dist/acp/types.d.ts.map +1 -0
  16. package/dist/acp/types.js +99 -0
  17. package/dist/acp/types.js.map +1 -0
  18. package/dist/agents/adapters.d.ts +55 -0
  19. package/dist/agents/adapters.d.ts.map +1 -0
  20. package/dist/agents/adapters.js +84 -0
  21. package/dist/agents/adapters.js.map +1 -0
  22. package/dist/agents/index.d.ts +8 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/agents/index.js +10 -0
  25. package/dist/agents/index.js.map +1 -0
  26. package/dist/agents/spawner.d.ts +53 -0
  27. package/dist/agents/spawner.d.ts.map +1 -0
  28. package/dist/agents/spawner.js +83 -0
  29. package/dist/agents/spawner.js.map +1 -0
  30. package/dist/cli/batch.d.ts +82 -0
  31. package/dist/cli/batch.d.ts.map +1 -0
  32. package/dist/cli/batch.js +162 -0
  33. package/dist/cli/batch.js.map +1 -0
  34. package/dist/cli/commands/clone-for-testing.d.ts +6 -0
  35. package/dist/cli/commands/clone-for-testing.d.ts.map +1 -0
  36. package/dist/cli/commands/clone-for-testing.js +176 -0
  37. package/dist/cli/commands/clone-for-testing.js.map +1 -0
  38. package/dist/cli/commands/derive.d.ts +6 -0
  39. package/dist/cli/commands/derive.d.ts.map +1 -0
  40. package/dist/cli/commands/derive.js +450 -0
  41. package/dist/cli/commands/derive.js.map +1 -0
  42. package/dist/cli/commands/help.d.ts +6 -0
  43. package/dist/cli/commands/help.d.ts.map +1 -0
  44. package/dist/cli/commands/help.js +196 -0
  45. package/dist/cli/commands/help.js.map +1 -0
  46. package/dist/cli/commands/inbox.d.ts +6 -0
  47. package/dist/cli/commands/inbox.d.ts.map +1 -0
  48. package/dist/cli/commands/inbox.js +235 -0
  49. package/dist/cli/commands/inbox.js.map +1 -0
  50. package/dist/cli/commands/index.d.ts +20 -0
  51. package/dist/cli/commands/index.d.ts.map +1 -0
  52. package/dist/cli/commands/index.js +21 -0
  53. package/dist/cli/commands/index.js.map +1 -0
  54. package/dist/cli/commands/init.d.ts +6 -0
  55. package/dist/cli/commands/init.d.ts.map +1 -0
  56. package/dist/cli/commands/init.js +245 -0
  57. package/dist/cli/commands/init.js.map +1 -0
  58. package/dist/cli/commands/item.d.ts +6 -0
  59. package/dist/cli/commands/item.d.ts.map +1 -0
  60. package/dist/cli/commands/item.js +1311 -0
  61. package/dist/cli/commands/item.js.map +1 -0
  62. package/dist/cli/commands/link.d.ts +6 -0
  63. package/dist/cli/commands/link.d.ts.map +1 -0
  64. package/dist/cli/commands/link.js +288 -0
  65. package/dist/cli/commands/link.js.map +1 -0
  66. package/dist/cli/commands/log.d.ts +16 -0
  67. package/dist/cli/commands/log.d.ts.map +1 -0
  68. package/dist/cli/commands/log.js +291 -0
  69. package/dist/cli/commands/log.js.map +1 -0
  70. package/dist/cli/commands/meta.d.ts +15 -0
  71. package/dist/cli/commands/meta.d.ts.map +1 -0
  72. package/dist/cli/commands/meta.js +1378 -0
  73. package/dist/cli/commands/meta.js.map +1 -0
  74. package/dist/cli/commands/module.d.ts +6 -0
  75. package/dist/cli/commands/module.d.ts.map +1 -0
  76. package/dist/cli/commands/module.js +102 -0
  77. package/dist/cli/commands/module.js.map +1 -0
  78. package/dist/cli/commands/ralph.d.ts +9 -0
  79. package/dist/cli/commands/ralph.d.ts.map +1 -0
  80. package/dist/cli/commands/ralph.js +465 -0
  81. package/dist/cli/commands/ralph.js.map +1 -0
  82. package/dist/cli/commands/search.d.ts +6 -0
  83. package/dist/cli/commands/search.d.ts.map +1 -0
  84. package/dist/cli/commands/search.js +134 -0
  85. package/dist/cli/commands/search.js.map +1 -0
  86. package/dist/cli/commands/session.d.ts +164 -0
  87. package/dist/cli/commands/session.d.ts.map +1 -0
  88. package/dist/cli/commands/session.js +745 -0
  89. package/dist/cli/commands/session.js.map +1 -0
  90. package/dist/cli/commands/setup.d.ts +26 -0
  91. package/dist/cli/commands/setup.d.ts.map +1 -0
  92. package/dist/cli/commands/setup.js +586 -0
  93. package/dist/cli/commands/setup.js.map +1 -0
  94. package/dist/cli/commands/shadow.d.ts +6 -0
  95. package/dist/cli/commands/shadow.d.ts.map +1 -0
  96. package/dist/cli/commands/shadow.js +299 -0
  97. package/dist/cli/commands/shadow.js.map +1 -0
  98. package/dist/cli/commands/task.d.ts +6 -0
  99. package/dist/cli/commands/task.d.ts.map +1 -0
  100. package/dist/cli/commands/task.js +1514 -0
  101. package/dist/cli/commands/task.js.map +1 -0
  102. package/dist/cli/commands/tasks.d.ts +6 -0
  103. package/dist/cli/commands/tasks.d.ts.map +1 -0
  104. package/dist/cli/commands/tasks.js +347 -0
  105. package/dist/cli/commands/tasks.js.map +1 -0
  106. package/dist/cli/commands/trait.d.ts +10 -0
  107. package/dist/cli/commands/trait.d.ts.map +1 -0
  108. package/dist/cli/commands/trait.js +295 -0
  109. package/dist/cli/commands/trait.js.map +1 -0
  110. package/dist/cli/commands/validate.d.ts +6 -0
  111. package/dist/cli/commands/validate.d.ts.map +1 -0
  112. package/dist/cli/commands/validate.js +626 -0
  113. package/dist/cli/commands/validate.js.map +1 -0
  114. package/dist/cli/exit-codes.d.ts +62 -0
  115. package/dist/cli/exit-codes.d.ts.map +1 -0
  116. package/dist/cli/exit-codes.js +65 -0
  117. package/dist/cli/exit-codes.js.map +1 -0
  118. package/dist/cli/help/content.d.ts +35 -0
  119. package/dist/cli/help/content.d.ts.map +1 -0
  120. package/dist/cli/help/content.js +312 -0
  121. package/dist/cli/help/content.js.map +1 -0
  122. package/dist/cli/index.d.ts +5 -0
  123. package/dist/cli/index.d.ts.map +1 -0
  124. package/dist/cli/index.js +85 -0
  125. package/dist/cli/index.js.map +1 -0
  126. package/dist/cli/introspection.d.ts +87 -0
  127. package/dist/cli/introspection.d.ts.map +1 -0
  128. package/dist/cli/introspection.js +127 -0
  129. package/dist/cli/introspection.js.map +1 -0
  130. package/dist/cli/output.d.ts +56 -0
  131. package/dist/cli/output.d.ts.map +1 -0
  132. package/dist/cli/output.js +467 -0
  133. package/dist/cli/output.js.map +1 -0
  134. package/dist/cli/suggest.d.ts +16 -0
  135. package/dist/cli/suggest.d.ts.map +1 -0
  136. package/dist/cli/suggest.js +72 -0
  137. package/dist/cli/suggest.js.map +1 -0
  138. package/dist/index.d.ts +3 -0
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +5 -0
  141. package/dist/index.js.map +1 -0
  142. package/dist/parser/alignment.d.ts +113 -0
  143. package/dist/parser/alignment.d.ts.map +1 -0
  144. package/dist/parser/alignment.js +261 -0
  145. package/dist/parser/alignment.js.map +1 -0
  146. package/dist/parser/assess.d.ts +81 -0
  147. package/dist/parser/assess.d.ts.map +1 -0
  148. package/dist/parser/assess.js +197 -0
  149. package/dist/parser/assess.js.map +1 -0
  150. package/dist/parser/convention-validation.d.ts +48 -0
  151. package/dist/parser/convention-validation.d.ts.map +1 -0
  152. package/dist/parser/convention-validation.js +167 -0
  153. package/dist/parser/convention-validation.js.map +1 -0
  154. package/dist/parser/fix.d.ts +38 -0
  155. package/dist/parser/fix.d.ts.map +1 -0
  156. package/dist/parser/fix.js +185 -0
  157. package/dist/parser/fix.js.map +1 -0
  158. package/dist/parser/index.d.ts +12 -0
  159. package/dist/parser/index.d.ts.map +1 -0
  160. package/dist/parser/index.js +13 -0
  161. package/dist/parser/index.js.map +1 -0
  162. package/dist/parser/items.d.ts +138 -0
  163. package/dist/parser/items.d.ts.map +1 -0
  164. package/dist/parser/items.js +321 -0
  165. package/dist/parser/items.js.map +1 -0
  166. package/dist/parser/meta.d.ts +120 -0
  167. package/dist/parser/meta.d.ts.map +1 -0
  168. package/dist/parser/meta.js +441 -0
  169. package/dist/parser/meta.js.map +1 -0
  170. package/dist/parser/refs.d.ts +185 -0
  171. package/dist/parser/refs.d.ts.map +1 -0
  172. package/dist/parser/refs.js +404 -0
  173. package/dist/parser/refs.js.map +1 -0
  174. package/dist/parser/shadow.d.ts +253 -0
  175. package/dist/parser/shadow.d.ts.map +1 -0
  176. package/dist/parser/shadow.js +1053 -0
  177. package/dist/parser/shadow.js.map +1 -0
  178. package/dist/parser/traits.d.ts +72 -0
  179. package/dist/parser/traits.d.ts.map +1 -0
  180. package/dist/parser/traits.js +120 -0
  181. package/dist/parser/traits.js.map +1 -0
  182. package/dist/parser/validate.d.ts +89 -0
  183. package/dist/parser/validate.d.ts.map +1 -0
  184. package/dist/parser/validate.js +817 -0
  185. package/dist/parser/validate.js.map +1 -0
  186. package/dist/parser/yaml.d.ts +326 -0
  187. package/dist/parser/yaml.d.ts.map +1 -0
  188. package/dist/parser/yaml.js +1383 -0
  189. package/dist/parser/yaml.js.map +1 -0
  190. package/dist/ralph/cli-renderer.d.ts +20 -0
  191. package/dist/ralph/cli-renderer.d.ts.map +1 -0
  192. package/dist/ralph/cli-renderer.js +179 -0
  193. package/dist/ralph/cli-renderer.js.map +1 -0
  194. package/dist/ralph/events.d.ts +65 -0
  195. package/dist/ralph/events.d.ts.map +1 -0
  196. package/dist/ralph/events.js +397 -0
  197. package/dist/ralph/events.js.map +1 -0
  198. package/dist/ralph/index.d.ts +8 -0
  199. package/dist/ralph/index.d.ts.map +1 -0
  200. package/dist/ralph/index.js +10 -0
  201. package/dist/ralph/index.js.map +1 -0
  202. package/dist/schema/common.d.ts +46 -0
  203. package/dist/schema/common.d.ts.map +1 -0
  204. package/dist/schema/common.js +71 -0
  205. package/dist/schema/common.js.map +1 -0
  206. package/dist/schema/inbox.d.ts +90 -0
  207. package/dist/schema/inbox.d.ts.map +1 -0
  208. package/dist/schema/inbox.js +30 -0
  209. package/dist/schema/inbox.js.map +1 -0
  210. package/dist/schema/index.d.ts +6 -0
  211. package/dist/schema/index.d.ts.map +1 -0
  212. package/dist/schema/index.js +7 -0
  213. package/dist/schema/index.js.map +1 -0
  214. package/dist/schema/meta.d.ts +762 -0
  215. package/dist/schema/meta.d.ts.map +1 -0
  216. package/dist/schema/meta.js +144 -0
  217. package/dist/schema/meta.js.map +1 -0
  218. package/dist/schema/spec.d.ts +912 -0
  219. package/dist/schema/spec.d.ts.map +1 -0
  220. package/dist/schema/spec.js +104 -0
  221. package/dist/schema/spec.js.map +1 -0
  222. package/dist/schema/task.d.ts +664 -0
  223. package/dist/schema/task.d.ts.map +1 -0
  224. package/dist/schema/task.js +130 -0
  225. package/dist/schema/task.js.map +1 -0
  226. package/dist/sessions/index.d.ts +11 -0
  227. package/dist/sessions/index.d.ts.map +1 -0
  228. package/dist/sessions/index.js +13 -0
  229. package/dist/sessions/index.js.map +1 -0
  230. package/dist/sessions/store.d.ts +144 -0
  231. package/dist/sessions/store.d.ts.map +1 -0
  232. package/dist/sessions/store.js +325 -0
  233. package/dist/sessions/store.js.map +1 -0
  234. package/dist/sessions/types.d.ts +157 -0
  235. package/dist/sessions/types.d.ts.map +1 -0
  236. package/dist/sessions/types.js +90 -0
  237. package/dist/sessions/types.js.map +1 -0
  238. package/dist/strings/errors.d.ts +420 -0
  239. package/dist/strings/errors.d.ts.map +1 -0
  240. package/dist/strings/errors.js +282 -0
  241. package/dist/strings/errors.js.map +1 -0
  242. package/dist/strings/guidance.d.ts +65 -0
  243. package/dist/strings/guidance.d.ts.map +1 -0
  244. package/dist/strings/guidance.js +66 -0
  245. package/dist/strings/guidance.js.map +1 -0
  246. package/dist/strings/index.d.ts +12 -0
  247. package/dist/strings/index.d.ts.map +1 -0
  248. package/dist/strings/index.js +12 -0
  249. package/dist/strings/index.js.map +1 -0
  250. package/dist/strings/labels.d.ts +74 -0
  251. package/dist/strings/labels.d.ts.map +1 -0
  252. package/dist/strings/labels.js +75 -0
  253. package/dist/strings/labels.js.map +1 -0
  254. package/dist/strings/validation.d.ts +126 -0
  255. package/dist/strings/validation.d.ts.map +1 -0
  256. package/dist/strings/validation.js +135 -0
  257. package/dist/strings/validation.js.map +1 -0
  258. package/dist/utils/commit.d.ts +23 -0
  259. package/dist/utils/commit.d.ts.map +1 -0
  260. package/dist/utils/commit.js +67 -0
  261. package/dist/utils/commit.js.map +1 -0
  262. package/dist/utils/git.d.ts +57 -0
  263. package/dist/utils/git.d.ts.map +1 -0
  264. package/dist/utils/git.js +192 -0
  265. package/dist/utils/git.js.map +1 -0
  266. package/dist/utils/grep.d.ts +28 -0
  267. package/dist/utils/grep.d.ts.map +1 -0
  268. package/dist/utils/grep.js +86 -0
  269. package/dist/utils/grep.js.map +1 -0
  270. package/dist/utils/index.d.ts +8 -0
  271. package/dist/utils/index.d.ts.map +1 -0
  272. package/dist/utils/index.js +6 -0
  273. package/dist/utils/index.js.map +1 -0
  274. package/dist/utils/time.d.ts +18 -0
  275. package/dist/utils/time.d.ts.map +1 -0
  276. package/dist/utils/time.js +61 -0
  277. package/dist/utils/time.js.map +1 -0
  278. 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"}