effect 4.0.0-beta.10 → 4.0.0-beta.12

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 (189) hide show
  1. package/dist/Channel.d.ts +7 -7
  2. package/dist/Config.d.ts +157 -0
  3. package/dist/Config.d.ts.map +1 -1
  4. package/dist/Config.js +56 -1
  5. package/dist/Config.js.map +1 -1
  6. package/dist/Effect.d.ts +296 -8
  7. package/dist/Effect.d.ts.map +1 -1
  8. package/dist/Effect.js +72 -0
  9. package/dist/Effect.js.map +1 -1
  10. package/dist/ErrorReporter.d.ts +376 -0
  11. package/dist/ErrorReporter.d.ts.map +1 -0
  12. package/dist/ErrorReporter.js +246 -0
  13. package/dist/ErrorReporter.js.map +1 -0
  14. package/dist/Fiber.d.ts +2 -2
  15. package/dist/Fiber.d.ts.map +1 -1
  16. package/dist/Fiber.js.map +1 -1
  17. package/dist/Graph.d.ts.map +1 -1
  18. package/dist/Graph.js +3 -6
  19. package/dist/Graph.js.map +1 -1
  20. package/dist/LogLevel.d.ts +5 -0
  21. package/dist/LogLevel.d.ts.map +1 -1
  22. package/dist/LogLevel.js.map +1 -1
  23. package/dist/Logger.d.ts +25 -91
  24. package/dist/Logger.d.ts.map +1 -1
  25. package/dist/Logger.js +2 -3
  26. package/dist/Logger.js.map +1 -1
  27. package/dist/Queue.d.ts.map +1 -1
  28. package/dist/Queue.js +0 -1
  29. package/dist/Queue.js.map +1 -1
  30. package/dist/Random.d.ts +17 -0
  31. package/dist/Random.d.ts.map +1 -1
  32. package/dist/Random.js +17 -0
  33. package/dist/Random.js.map +1 -1
  34. package/dist/References.d.ts +3 -3
  35. package/dist/References.d.ts.map +1 -1
  36. package/dist/Schema.d.ts +3 -1
  37. package/dist/Schema.d.ts.map +1 -1
  38. package/dist/SchemaAST.d.ts.map +1 -1
  39. package/dist/SchemaAST.js +2 -1
  40. package/dist/SchemaAST.js.map +1 -1
  41. package/dist/Stream.d.ts +5 -5
  42. package/dist/index.d.ts +4 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +4 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/internal/effect.js +98 -33
  47. package/dist/internal/effect.js.map +1 -1
  48. package/dist/internal/hashMap.js +2 -2
  49. package/dist/internal/hashMap.js.map +1 -1
  50. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  51. package/dist/unstable/ai/LanguageModel.js +86 -14
  52. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  53. package/dist/unstable/ai/McpSchema.d.ts +112 -36
  54. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  55. package/dist/unstable/ai/McpSchema.js +47 -10
  56. package/dist/unstable/ai/McpSchema.js.map +1 -1
  57. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  58. package/dist/unstable/ai/McpServer.js +33 -6
  59. package/dist/unstable/ai/McpServer.js.map +1 -1
  60. package/dist/unstable/ai/Tool.d.ts +16 -0
  61. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  62. package/dist/unstable/ai/Tool.js +14 -0
  63. package/dist/unstable/ai/Tool.js.map +1 -1
  64. package/dist/unstable/cli/CliOutput.js +37 -6
  65. package/dist/unstable/cli/CliOutput.js.map +1 -1
  66. package/dist/unstable/cli/Command.d.ts +199 -7
  67. package/dist/unstable/cli/Command.d.ts.map +1 -1
  68. package/dist/unstable/cli/Command.js +116 -6
  69. package/dist/unstable/cli/Command.js.map +1 -1
  70. package/dist/unstable/cli/HelpDoc.d.ts +60 -2
  71. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  72. package/dist/unstable/cli/internal/command.d.ts +11 -1
  73. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  74. package/dist/unstable/cli/internal/command.js +33 -8
  75. package/dist/unstable/cli/internal/command.js.map +1 -1
  76. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  77. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  78. package/dist/unstable/cli/internal/parser.js +10 -2
  79. package/dist/unstable/cli/internal/parser.js.map +1 -1
  80. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  81. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -2
  82. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  83. package/dist/unstable/http/Headers.d.ts.map +1 -1
  84. package/dist/unstable/http/Headers.js +27 -10
  85. package/dist/unstable/http/Headers.js.map +1 -1
  86. package/dist/unstable/http/HttpClient.d.ts +28 -4
  87. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  88. package/dist/unstable/http/HttpClient.js.map +1 -1
  89. package/dist/unstable/http/HttpEffect.d.ts +3 -8
  90. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  91. package/dist/unstable/http/HttpEffect.js +25 -31
  92. package/dist/unstable/http/HttpEffect.js.map +1 -1
  93. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  94. package/dist/unstable/http/HttpMiddleware.js +4 -8
  95. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  96. package/dist/unstable/http/HttpServerError.d.ts +14 -27
  97. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  98. package/dist/unstable/http/HttpServerError.js +37 -44
  99. package/dist/unstable/http/HttpServerError.js.map +1 -1
  100. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  101. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  102. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  103. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  104. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  105. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  106. package/dist/unstable/http/HttpServerResponse.js +2 -0
  107. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  108. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  109. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  110. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  111. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  112. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  113. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  114. package/dist/unstable/httpapi/HttpApiBuilder.js +1 -1
  115. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  116. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  117. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  118. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  119. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  120. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  121. package/dist/unstable/observability/OtlpLogger.js +7 -4
  122. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  123. package/dist/unstable/reactivity/Atom.js +1 -1
  124. package/dist/unstable/reactivity/Atom.js.map +1 -1
  125. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  126. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  127. package/dist/unstable/reactivity/AtomRegistry.js +22 -1
  128. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  129. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  130. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  131. package/dist/unstable/rpc/RpcSchema.js +14 -0
  132. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  133. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  134. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  135. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  136. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  137. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  138. package/dist/unstable/rpc/RpcServer.js +9 -10
  139. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  140. package/dist/unstable/workflow/WorkflowEngine.d.ts +6 -0
  141. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  142. package/dist/unstable/workflow/WorkflowEngine.js +131 -0
  143. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  144. package/package.json +1 -1
  145. package/src/Channel.ts +9 -9
  146. package/src/Config.ts +171 -9
  147. package/src/Effect.ts +315 -8
  148. package/src/ErrorReporter.ts +459 -0
  149. package/src/Fiber.ts +9 -2
  150. package/src/Graph.ts +16 -6
  151. package/src/LogLevel.ts +6 -0
  152. package/src/Logger.ts +28 -95
  153. package/src/Queue.ts +0 -1
  154. package/src/Random.ts +18 -0
  155. package/src/References.ts +4 -4
  156. package/src/Schema.ts +1 -1
  157. package/src/SchemaAST.ts +2 -1
  158. package/src/Stream.ts +7 -7
  159. package/src/index.ts +5 -0
  160. package/src/internal/effect.ts +205 -49
  161. package/src/internal/hashMap.ts +2 -2
  162. package/src/unstable/ai/LanguageModel.ts +117 -16
  163. package/src/unstable/ai/McpSchema.ts +57 -11
  164. package/src/unstable/ai/McpServer.ts +44 -6
  165. package/src/unstable/ai/Tool.ts +15 -0
  166. package/src/unstable/cli/CliOutput.ts +45 -6
  167. package/src/unstable/cli/Command.ts +298 -11
  168. package/src/unstable/cli/HelpDoc.ts +68 -2
  169. package/src/unstable/cli/internal/command.ts +47 -11
  170. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  171. package/src/unstable/cli/internal/parser.ts +11 -3
  172. package/src/unstable/cluster/ClusterWorkflowEngine.ts +2 -2
  173. package/src/unstable/http/Headers.ts +28 -13
  174. package/src/unstable/http/HttpClient.ts +45 -10
  175. package/src/unstable/http/HttpEffect.ts +30 -44
  176. package/src/unstable/http/HttpMiddleware.ts +4 -14
  177. package/src/unstable/http/HttpServerError.ts +42 -45
  178. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  179. package/src/unstable/http/HttpServerResponse.ts +3 -1
  180. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  181. package/src/unstable/httpapi/HttpApiBuilder.ts +2 -1
  182. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  183. package/src/unstable/observability/OtlpLogger.ts +9 -5
  184. package/src/unstable/reactivity/Atom.ts +1 -1
  185. package/src/unstable/reactivity/AtomRegistry.ts +29 -1
  186. package/src/unstable/rpc/RpcSchema.ts +17 -0
  187. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  188. package/src/unstable/rpc/RpcServer.ts +14 -19
  189. package/src/unstable/workflow/WorkflowEngine.ts +178 -0
@@ -1,12 +1,10 @@
1
- /**
2
- * @since 4.0.0
3
- */
4
1
  import * as Console from "../../Console.js";
5
2
  import * as Effect from "../../Effect.js";
6
3
  import { dual } from "../../Function.js";
7
4
  import * as Predicate from "../../Predicate.js";
8
5
  import * as References from "../../References.js";
9
6
  import * as Result from "../../Result.js";
7
+ import * as ServiceMap from "../../ServiceMap.js";
10
8
  import * as Terminal from "../../Terminal.js";
11
9
  import * as CliError from "./CliError.js";
12
10
  import * as CliOutput from "./CliOutput.js";
@@ -118,6 +116,49 @@ export const withHandler = /*#__PURE__*/dual(2, (self, handler) => makeCommand({
118
116
  ...toImpl(self),
119
117
  handle: handler
120
118
  }));
119
+ const normalizeSubcommandEntries = entries => {
120
+ const flat = [];
121
+ const grouped = new Map();
122
+ const addToGroup = (group, command) => {
123
+ flat.push(command);
124
+ const existing = grouped.get(group);
125
+ if (existing) {
126
+ existing.push(command);
127
+ } else {
128
+ grouped.set(group, [command]);
129
+ }
130
+ };
131
+ for (const entry of entries) {
132
+ if (isCommand(entry)) {
133
+ addToGroup(undefined, entry);
134
+ continue;
135
+ }
136
+ for (const command of entry.commands) {
137
+ addToGroup(entry.group, command);
138
+ }
139
+ }
140
+ const groups = [];
141
+ const ungroupedCommands = grouped.get(undefined);
142
+ if (ungroupedCommands && ungroupedCommands.length > 0) {
143
+ groups.push({
144
+ group: undefined,
145
+ commands: ungroupedCommands
146
+ });
147
+ }
148
+ for (const [group, commands] of grouped) {
149
+ if (group === undefined) {
150
+ continue;
151
+ }
152
+ groups.push({
153
+ group,
154
+ commands
155
+ });
156
+ }
157
+ return {
158
+ flat,
159
+ groups
160
+ };
161
+ };
121
162
  /**
122
163
  * Adds subcommands to a command, creating a hierarchical command structure.
123
164
  *
@@ -155,9 +196,10 @@ export const withHandler = /*#__PURE__*/dual(2, (self, handler) => makeCommand({
155
196
  * @category combinators
156
197
  */
157
198
  export const withSubcommands = /*#__PURE__*/dual(2, (self, subcommands) => {
158
- checkForDuplicateFlags(self, subcommands);
199
+ const normalized = normalizeSubcommandEntries(subcommands);
200
+ checkForDuplicateFlags(self, normalized.flat);
159
201
  const impl = toImpl(self);
160
- const byName = new Map(subcommands.map(s => [s.name, toImpl(s)]));
202
+ const byName = new Map(normalized.flat.map(s => [s.name, toImpl(s)]));
161
203
  const parse = Effect.fnUntraced(function* (raw) {
162
204
  const parent = yield* impl.parse(raw);
163
205
  if (!raw.subcommand) {
@@ -193,8 +235,11 @@ export const withSubcommands = /*#__PURE__*/dual(2, (self, subcommands) => {
193
235
  name: impl.name,
194
236
  config: impl.config,
195
237
  description: impl.description,
238
+ shortDescription: impl.shortDescription,
239
+ annotations: impl.annotations,
240
+ examples: impl.examples,
196
241
  service: impl.service,
197
- subcommands,
242
+ subcommands: normalized.groups,
198
243
  parse,
199
244
  handle
200
245
  });
@@ -227,6 +272,71 @@ export const withDescription = /*#__PURE__*/dual(2, (self, description) => makeC
227
272
  ...toImpl(self),
228
273
  description
229
274
  }));
275
+ /**
276
+ * Sets a short description for a command.
277
+ *
278
+ * Short descriptions are used when listing subcommands in help output and
279
+ * shell completions. If no short description is provided, the full
280
+ * `description` is used as a fallback.
281
+ *
282
+ * @since 4.0.0
283
+ * @category combinators
284
+ */
285
+ export const withShortDescription = /*#__PURE__*/dual(2, (self, shortDescription) => makeCommand({
286
+ ...toImpl(self),
287
+ shortDescription
288
+ }));
289
+ /**
290
+ * Adds a custom annotation to a command.
291
+ *
292
+ * @since 4.0.0
293
+ * @category combinators
294
+ */
295
+ export const annotate = /*#__PURE__*/dual(3, (self, service, value) => {
296
+ const impl = toImpl(self);
297
+ return makeCommand({
298
+ ...impl,
299
+ annotations: ServiceMap.add(impl.annotations, service, value)
300
+ });
301
+ });
302
+ /**
303
+ * Merges a ServiceMap of annotations into a command.
304
+ *
305
+ * @since 4.0.0
306
+ * @category combinators
307
+ */
308
+ export const annotateMerge = /*#__PURE__*/dual(2, (self, annotations) => {
309
+ const impl = toImpl(self);
310
+ return makeCommand({
311
+ ...impl,
312
+ annotations: ServiceMap.merge(impl.annotations, annotations)
313
+ });
314
+ });
315
+ /**
316
+ * Sets usage examples for a command.
317
+ *
318
+ * Examples are exposed in structured `HelpDoc` data and rendered by the
319
+ * default formatter in an `EXAMPLES` section.
320
+ *
321
+ * @example
322
+ * ```ts
323
+ * import { Command } from "effect/unstable/cli"
324
+ *
325
+ * const login = Command.make("login").pipe(
326
+ * Command.withExamples([
327
+ * { command: "myapp login", description: "Log in with browser OAuth" },
328
+ * { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
329
+ * ])
330
+ * )
331
+ * ```
332
+ *
333
+ * @since 4.0.0
334
+ * @category combinators
335
+ */
336
+ export const withExamples = /*#__PURE__*/dual(2, (self, examples) => makeCommand({
337
+ ...toImpl(self),
338
+ examples
339
+ }));
230
340
  /* ========================================================================== */
231
341
  /* Providing Services */
232
342
  /* ========================================================================== */
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","names":["Console","Effect","dual","Predicate","References","Result","Terminal","CliError","CliOutput","checkForDuplicateFlags","getHelpForCommandPath","makeCommand","toImpl","TypeId","CommandDescriptor","Completions","parseConfig","Lexer","Parser","isCommand","u","hasProperty","make","name","config","handler","parsedConfig","isNotUndefined","handle","withHandler","self","withSubcommands","subcommands","impl","byName","Map","map","s","parse","fnUntraced","raw","parent","subcommand","sub","get","result","parsedInput","Object","assign","_subcommand","input","path","internal","child","ShowHelp","commandPath","pipe","provideService","service","description","withDescription","mapHandler","f","provide","args","layer","options","provideSync","implementation","provideEffect","effect","provideServiceEffect","provideEffectDiscard","andThen","showHelp","command","errors","gen","formatter","Formatter","helpDoc","log","formatHelpDoc","length","error","formatErrors","run","process","argv","slice","runWith","commandImpl","tokens","trailingOperands","lex","completions","help","logLevel","remainder","version","extractBuiltInOptions","parsedArgs","parseArgs","getCommandPath","undefined","descriptor","fromCommand","generate","formatVersion","parseResult","_tag","failure","parsed","success","program","withLogLevel","MinimumLogLevel","catchIf","isCliError","succeed","fail","e","isQuitError","_","interrupt"],"sources":["../../../src/unstable/cli/Command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Command.js","names":["Console","Effect","dual","Predicate","References","Result","ServiceMap","Terminal","CliError","CliOutput","checkForDuplicateFlags","getHelpForCommandPath","makeCommand","toImpl","TypeId","CommandDescriptor","Completions","parseConfig","Lexer","Parser","isCommand","u","hasProperty","make","name","config","handler","parsedConfig","isNotUndefined","handle","withHandler","self","normalizeSubcommandEntries","entries","flat","grouped","Map","addToGroup","group","command","push","existing","get","set","entry","undefined","commands","groups","ungroupedCommands","length","withSubcommands","subcommands","normalized","impl","byName","map","s","parse","fnUntraced","raw","parent","subcommand","sub","result","parsedInput","Object","assign","_subcommand","input","path","internal","child","ShowHelp","commandPath","pipe","provideService","service","description","shortDescription","annotations","examples","withDescription","withShortDescription","annotate","value","add","annotateMerge","merge","withExamples","mapHandler","f","provide","args","layer","options","provideSync","implementation","provideEffect","effect","provideServiceEffect","provideEffectDiscard","andThen","showHelp","errors","gen","formatter","Formatter","helpDoc","log","formatHelpDoc","error","formatErrors","run","process","argv","slice","runWith","commandImpl","tokens","trailingOperands","lex","completions","help","logLevel","remainder","version","extractBuiltInOptions","parsedArgs","parseArgs","getCommandPath","descriptor","fromCommand","generate","formatVersion","parseResult","_tag","failure","parsed","success","program","withLogLevel","MinimumLogLevel","catchIf","isCliError","succeed","fail","e","isQuitError","_","interrupt"],"sources":["../../../src/unstable/cli/Command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @since 4.0.0
3
3
  */
4
+ import type { NonEmptyReadonlyArray } from "../../Array.ts";
5
+ import type * as ServiceMap from "../../ServiceMap.ts";
4
6
  /**
5
7
  * Structured representation of help documentation for a command.
6
8
  * This data structure is independent of formatting, allowing for
@@ -8,11 +10,13 @@
8
10
  *
9
11
  * @example
10
12
  * ```ts
13
+ * import { ServiceMap } from "effect"
11
14
  * import type * as HelpDoc from "effect/unstable/cli/HelpDoc"
12
15
  *
13
16
  * const deployCommandHelp: HelpDoc.HelpDoc = {
14
17
  * description: "Deploy your application to the cloud",
15
18
  * usage: "myapp deploy [options] <target>",
19
+ * annotations: ServiceMap.empty(),
16
20
  * flags: [
17
21
  * {
18
22
  * name: "verbose",
@@ -58,6 +62,10 @@ export interface HelpDoc {
58
62
  * List of available flags/options for this command
59
63
  */
60
64
  readonly flags: ReadonlyArray<FlagDoc>;
65
+ /**
66
+ * Custom command annotations.
67
+ */
68
+ readonly annotations: ServiceMap.ServiceMap<never>;
61
69
  /**
62
70
  * List of positional arguments for this command
63
71
  */
@@ -65,7 +73,27 @@ export interface HelpDoc {
65
73
  /**
66
74
  * Optional list of subcommands if this is a parent command
67
75
  */
68
- readonly subcommands?: ReadonlyArray<SubcommandDoc>;
76
+ readonly subcommands?: ReadonlyArray<SubcommandGroupDoc>;
77
+ /**
78
+ * Optional concrete usage examples for the command
79
+ */
80
+ readonly examples?: ReadonlyArray<ExampleDoc>;
81
+ }
82
+ /**
83
+ * Documentation for a command usage example
84
+ *
85
+ * @since 4.0.0
86
+ * @category models
87
+ */
88
+ export interface ExampleDoc {
89
+ /**
90
+ * Command line invocation example
91
+ */
92
+ readonly command: string;
93
+ /**
94
+ * Optional explanation for the example
95
+ */
96
+ readonly description?: string | undefined;
69
97
  }
70
98
  /**
71
99
  * Documentation for a single command-line flag/option
@@ -121,15 +149,18 @@ export interface FlagDoc {
121
149
  *
122
150
  * @example
123
151
  * ```ts
152
+ * import { ServiceMap } from "effect"
124
153
  * import type { HelpDoc } from "effect/unstable/cli"
125
154
  *
126
155
  * const deploySubcommand: HelpDoc.SubcommandDoc = {
127
156
  * name: "deploy",
157
+ * shortDescription: "Deploy app",
128
158
  * description: "Deploy the application to the cloud"
129
159
  * }
130
160
  *
131
161
  * const buildSubcommand: HelpDoc.SubcommandDoc = {
132
162
  * name: "build",
163
+ * shortDescription: undefined,
133
164
  * description: "Build the application for production"
134
165
  * }
135
166
  *
@@ -137,8 +168,12 @@ export interface FlagDoc {
137
168
  * const mainCommandHelp: HelpDoc.HelpDoc = {
138
169
  * description: "Cloud deployment tool",
139
170
  * usage: "myapp <command> [options]",
171
+ * annotations: ServiceMap.empty(),
140
172
  * flags: [],
141
- * subcommands: [deploySubcommand, buildSubcommand]
173
+ * subcommands: [{
174
+ * group: undefined,
175
+ * commands: [deploySubcommand, buildSubcommand]
176
+ * }]
142
177
  * }
143
178
  * ```
144
179
  *
@@ -150,16 +185,38 @@ export interface SubcommandDoc {
150
185
  * Name of the subcommand
151
186
  */
152
187
  readonly name: string;
188
+ /**
189
+ * Optional short description of what the subcommand does.
190
+ */
191
+ readonly shortDescription: string | undefined;
153
192
  /**
154
193
  * Brief description of what the subcommand does
155
194
  */
156
195
  readonly description: string;
157
196
  }
197
+ /**
198
+ * Documentation for a grouped subcommand listing
199
+ *
200
+ * @since 4.0.0
201
+ * @category models
202
+ */
203
+ export interface SubcommandGroupDoc {
204
+ /**
205
+ * Group name used in help output.
206
+ * Undefined means the default ungrouped section.
207
+ */
208
+ readonly group: string | undefined;
209
+ /**
210
+ * Subcommands in this group.
211
+ */
212
+ readonly commands: NonEmptyReadonlyArray<SubcommandDoc>;
213
+ }
158
214
  /**
159
215
  * Documentation for a positional argument
160
216
  *
161
217
  * @example
162
218
  * ```ts
219
+ * import { ServiceMap } from "effect"
163
220
  * import type { HelpDoc } from "effect/unstable/cli"
164
221
  *
165
222
  * const sourceArg: HelpDoc.ArgDoc = {
@@ -182,6 +239,7 @@ export interface SubcommandDoc {
182
239
  * const copyCommandHelp: HelpDoc.HelpDoc = {
183
240
  * description: "Copy files from source to destination",
184
241
  * usage: "copy <source> [files...]",
242
+ * annotations: ServiceMap.empty(),
185
243
  * flags: [],
186
244
  * args: [sourceArg, filesArg]
187
245
  * }
@@ -1 +1 @@
1
- {"version":3,"file":"HelpDoc.d.ts","sourceRoot":"","sources":["../../../src/unstable/cli/HelpDoc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAEtC;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAErC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;CACpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAEvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B"}
1
+ {"version":3,"file":"HelpDoc.d.ts","sourceRoot":"","sources":["../../../src/unstable/cli/HelpDoc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,KAAK,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAEtC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAElD;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAErC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAA;IAExD;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAC9C;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAEvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;IAE7C;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAA;CACxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B"}
@@ -5,12 +5,17 @@
5
5
  * Internal implementation details for CLI commands.
6
6
  * Public API is in ../Command.ts
7
7
  */
8
+ import * as Arr from "../../../Array.ts";
8
9
  import * as Effect from "../../../Effect.ts";
9
10
  import * as ServiceMap from "../../../ServiceMap.ts";
10
11
  import * as CliError from "../CliError.ts";
11
12
  import type { HelpDoc } from "../HelpDoc.ts";
12
13
  import { type ConfigInternal } from "./config.ts";
13
14
  import type { Command, CommandContext, Environment, ParsedTokens } from "../Command.ts";
15
+ interface SubcommandGroup {
16
+ readonly group: string | undefined;
17
+ readonly commands: Arr.NonEmptyReadonlyArray<Command<any, unknown, unknown, unknown>>;
18
+ }
14
19
  /**
15
20
  * Internal implementation interface with all the machinery.
16
21
  * Use toImpl() to access from internal code.
@@ -18,6 +23,7 @@ import type { Command, CommandContext, Environment, ParsedTokens } from "../Comm
18
23
  export interface CommandInternal<Name extends string, Input, E, R> extends Command<Name, Input, E, R> {
19
24
  readonly config: ConfigInternal;
20
25
  readonly service: ServiceMap.Service<CommandContext<Name>, Input>;
26
+ readonly annotations: ServiceMap.ServiceMap<never>;
21
27
  readonly parse: (input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>;
22
28
  readonly handle: (input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E | CliError.CliError, R | Environment>;
23
29
  readonly buildHelpDoc: (commandPath: ReadonlyArray<string>) => HelpDoc;
@@ -40,8 +46,11 @@ export declare const makeCommand: <const Name extends string, Input, E, R>(optio
40
46
  readonly name: Name;
41
47
  readonly config: ConfigInternal;
42
48
  readonly service?: ServiceMap.Service<CommandContext<Name>, Input> | undefined;
49
+ readonly annotations?: ServiceMap.ServiceMap<never> | undefined;
43
50
  readonly description?: string | undefined;
44
- readonly subcommands?: ReadonlyArray<Command<any, unknown, unknown, unknown>> | undefined;
51
+ readonly shortDescription?: string | undefined;
52
+ readonly examples?: ReadonlyArray<Command.Example> | undefined;
53
+ readonly subcommands?: ReadonlyArray<SubcommandGroup> | undefined;
45
54
  readonly parse?: ((input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>) | undefined;
46
55
  readonly handle?: ((input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E, R | Environment>) | undefined;
47
56
  }) => Command<Name, Input, E, R>;
@@ -54,4 +63,5 @@ export declare const checkForDuplicateFlags: <Name extends string, Input>(parent
54
63
  * Navigates through the command hierarchy to find the right command.
55
64
  */
56
65
  export declare const getHelpForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>) => HelpDoc;
66
+ export {};
57
67
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Internal implementation details for CLI commands.
6
6
  * Public API is in ../Command.ts
7
7
  */
8
+ import * as Arr from "../../../Array.js";
8
9
  import * as Effect from "../../../Effect.js";
9
10
  import { YieldableProto } from "../../../internal/core.js";
10
11
  import { pipeArguments } from "../../../Pipeable.js";
@@ -47,6 +48,8 @@ export const Proto = {
47
48
  export const makeCommand = options => {
48
49
  const service = options.service ?? ServiceMap.Service(`${TypeId}/${options.name}`);
49
50
  const config = options.config;
51
+ const annotations = options.annotations ?? ServiceMap.empty();
52
+ const subcommands = options.subcommands ?? [];
50
53
  const handle = (input, commandPath) => Predicate.isNotUndefined(options.handle) ? options.handle(input, commandPath) : Effect.fail(new CliError.ShowHelp({
51
54
  commandPath
52
55
  }));
@@ -75,8 +78,7 @@ export const makeCommand = options => {
75
78
  }
76
79
  }
77
80
  let usage = commandPath.length > 0 ? commandPath.join(" ") : options.name;
78
- const subcommands = options.subcommands ?? [];
79
- if (subcommands.length > 0) {
81
+ if (subcommands.some(group => group.commands.length > 0)) {
80
82
  usage += " <subcommand>";
81
83
  }
82
84
  usage += " [flags]";
@@ -97,26 +99,40 @@ export const makeCommand = options => {
97
99
  });
98
100
  }
99
101
  }
100
- const subcommandDocs = subcommands.map(sub => ({
101
- name: sub.name,
102
- description: sub.description ?? ""
103
- }));
102
+ const subcommandDocs = [];
103
+ for (const group of subcommands) {
104
+ subcommandDocs.push({
105
+ group: group.group,
106
+ commands: Arr.map(group.commands, subcommand => ({
107
+ name: subcommand.name,
108
+ shortDescription: subcommand.shortDescription,
109
+ description: subcommand.description ?? ""
110
+ }))
111
+ });
112
+ }
113
+ const examples = options.examples ?? [];
104
114
  return {
105
115
  description: options.description ?? "",
106
116
  usage,
107
117
  flags,
118
+ annotations,
108
119
  ...(args.length > 0 && {
109
120
  args
110
121
  }),
111
122
  ...(subcommandDocs.length > 0 && {
112
123
  subcommands: subcommandDocs
124
+ }),
125
+ ...(examples.length > 0 && {
126
+ examples
113
127
  })
114
128
  };
115
129
  };
116
130
  return Object.assign(Object.create(Proto), {
117
131
  [TypeId]: TypeId,
118
132
  name: options.name,
119
- subcommands: options.subcommands ?? [],
133
+ examples: options.examples ?? [],
134
+ annotations,
135
+ subcommands,
120
136
  config,
121
137
  service,
122
138
  parse,
@@ -124,6 +140,9 @@ export const makeCommand = options => {
124
140
  buildHelpDoc,
125
141
  ...(Predicate.isNotUndefined(options.description) ? {
126
142
  description: options.description
143
+ } : {}),
144
+ ...(Predicate.isNotUndefined(options.shortDescription) ? {
145
+ shortDescription: options.shortDescription
127
146
  } : {})
128
147
  });
129
148
  };
@@ -187,7 +206,13 @@ export const getHelpForCommandPath = (command, commandPath) => {
187
206
  // Navigate through the command path to find the target command
188
207
  for (let i = 1; i < commandPath.length; i++) {
189
208
  const subcommandName = commandPath[i];
190
- const subcommand = currentCommand.subcommands.find(sub => sub.name === subcommandName);
209
+ let subcommand = undefined;
210
+ for (const group of currentCommand.subcommands) {
211
+ subcommand = group.commands.find(sub => sub.name === subcommandName);
212
+ if (subcommand) {
213
+ break;
214
+ }
215
+ }
191
216
  if (subcommand) {
192
217
  currentCommand = subcommand;
193
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","names":["Effect","YieldableProto","pipeArguments","Predicate","ServiceMap","CliError","Param","Primitive","reconstructTree","TypeId","toImpl","self","Proto","pipe","arguments","asEffect","service","makeCommand","options","Service","name","config","handle","input","commandPath","isNotUndefined","fail","ShowHelp","parse","fnUntraced","parsedArgs","flags","values","parseParams","orderedParams","tree","buildHelpDoc","args","arg","singles","extractSingleParams","metadata","getParamMetadata","single","push","type","typeName","getTypeName","primitiveType","description","required","isOptional","variadic","isVariadic","usage","length","join","subcommands","argName","option","formattedAliases","aliases","map","alias","_tag","subcommandDocs","sub","Object","assign","create","params","results","currentArguments","remainingArguments","parsed","checkForDuplicateFlags","parent","parentImpl","parentOptionNames","Set","extractNames","add","subcommand","subImpl","has","DuplicateOption","parentCommand","childCommand","getHelpForCommandPath","command","currentCommand","i","subcommandName","find"],"sources":["../../../../src/unstable/cli/internal/command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"command.js","names":["Arr","Effect","YieldableProto","pipeArguments","Predicate","ServiceMap","CliError","Param","Primitive","reconstructTree","TypeId","toImpl","self","Proto","pipe","arguments","asEffect","service","makeCommand","options","Service","name","config","annotations","empty","subcommands","handle","input","commandPath","isNotUndefined","fail","ShowHelp","parse","fnUntraced","parsedArgs","flags","values","parseParams","orderedParams","tree","buildHelpDoc","args","arg","singles","extractSingleParams","metadata","getParamMetadata","single","push","type","typeName","getTypeName","primitiveType","description","required","isOptional","variadic","isVariadic","usage","length","join","some","group","commands","argName","option","formattedAliases","aliases","map","alias","_tag","subcommandDocs","subcommand","shortDescription","examples","Object","assign","create","params","results","currentArguments","remainingArguments","parsed","checkForDuplicateFlags","parent","parentImpl","parentOptionNames","Set","extractNames","add","subImpl","has","DuplicateOption","parentCommand","childCommand","getHelpForCommandPath","command","currentCommand","i","subcommandName","undefined","find","sub"],"sources":["../../../../src/unstable/cli/internal/command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -119,10 +119,15 @@ export const fromCommand = cmd => {
119
119
  });
120
120
  }
121
121
  }
122
- const subcommands = cmd.subcommands.map(fromCommand);
122
+ const subcommands = [];
123
+ for (const group of cmd.subcommands) {
124
+ for (const subcommand of group.commands) {
125
+ subcommands.push(fromCommand(subcommand));
126
+ }
127
+ }
123
128
  return {
124
129
  name: cmd.name,
125
- description: cmd.description,
130
+ description: cmd.shortDescription ?? cmd.description,
126
131
  flags,
127
132
  arguments: args,
128
133
  subcommands
@@ -1 +1 @@
1
- {"version":3,"file":"CommandDescriptor.js","names":["Param","Primitive","toImpl","toFlagType","single","tag","primitiveType","_tag","keys","getChoiceKeys","values","typeName","pathType","toArgumentType","fromCommand","cmd","impl","config","flags","flag","singles","extractSingleParams","kind","push","name","aliases","description","type","args","arg","arguments","metadata","getParamMetadata","required","isOptional","variadic","isVariadic","subcommands","map"],"sources":["../../../../../src/unstable/cli/internal/completions/CommandDescriptor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CommandDescriptor.js","names":["Param","Primitive","toImpl","toFlagType","single","tag","primitiveType","_tag","keys","getChoiceKeys","values","typeName","pathType","toArgumentType","fromCommand","cmd","impl","config","flags","flag","singles","extractSingleParams","kind","push","name","aliases","description","type","args","arg","arguments","metadata","getParamMetadata","required","isOptional","variadic","isVariadic","subcommands","group","subcommand","commands","shortDescription"],"sources":["../../../../../src/unstable/cli/internal/completions/CommandDescriptor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -137,7 +137,15 @@ const createFlagRegistry = params => {
137
137
  index
138
138
  };
139
139
  };
140
- const buildSubcommandIndex = subcommands => new Map(subcommands.map(sub => [sub.name, sub]));
140
+ const buildSubcommandIndex = subcommands => {
141
+ const index = new Map();
142
+ for (const group of subcommands) {
143
+ for (const subcommand of group.commands) {
144
+ index.set(subcommand.name, subcommand);
145
+ }
146
+ }
147
+ return index;
148
+ };
141
149
  /* ========================================================================== */
142
150
  /* Flag Accumulator */
143
151
  /* ========================================================================== */
@@ -313,7 +321,7 @@ const resolveFirstValue = (value, cursor, context, state) => {
313
321
  // Not a subcommand. Check if this looks like a typo.
314
322
  const expectsArgs = toImpl(command).config.arguments.length > 0;
315
323
  if (!expectsArgs && subIndex.size > 0) {
316
- const suggestions = suggest(value, command.subcommands.map(s => s.name));
324
+ const suggestions = suggest(value, Array.from(subIndex.keys()));
317
325
  state.errors.push(new CliError.UnknownSubcommand({
318
326
  subcommand: value,
319
327
  parent: commandPath,