@wirecat/cli-base 0.41.0 → 0.42.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/dist/commands/document.d.ts +2 -0
- package/dist/commands/document.d.ts.map +1 -1
- package/dist/commands/document.js +1 -0
- package/dist/commands/document.js.map +1 -1
- package/dist/commands/index.d.ts +11 -2
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +8 -0
- package/dist/commands/index.js.map +1 -1
- package/docs/standards/architecture.md +12 -12
- package/docs/standards/commands.md +7 -6
- package/docs/standards/mcp.md +4 -1
- package/docs/standards/store.md +3 -4
- package/package.json +1 -1
|
@@ -21,6 +21,7 @@ export declare const commandsDocumentSchema: v.StrictObjectSchema<{
|
|
|
21
21
|
readonly env: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
22
22
|
readonly conflicts: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
23
23
|
readonly implies: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
24
|
+
readonly mcp: v.OptionalSchema<v.LiteralSchema<false, undefined>, undefined>;
|
|
24
25
|
}, undefined>, undefined>;
|
|
25
26
|
readonly scope: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
26
27
|
readonly inherited_options: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
@@ -35,6 +36,7 @@ export declare const commandsDocumentSchema: v.StrictObjectSchema<{
|
|
|
35
36
|
readonly env: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
36
37
|
readonly conflicts: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
37
38
|
readonly implies: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
|
39
|
+
readonly mcp: v.OptionalSchema<v.LiteralSchema<false, undefined>, undefined>;
|
|
38
40
|
}, undefined>, undefined>;
|
|
39
41
|
}, undefined>, undefined>, undefined>;
|
|
40
42
|
readonly commands: v.ArraySchema<v.GenericSchema<CommandInfo>, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,OAAO,EAAE,KAAK,WAAW,EAAoC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAK5B,OAAO,EAAE,KAAK,WAAW,EAAoC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAgEhG;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;IAGjC,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAQ9D,CAAA;AAEF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,UAAU,EAAE,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,iBAAiB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,EAAE,CAAA;IAC/D,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AAED,eAAO,MAAM,0BAA0B,oDAA6E,CAAA;AAEpH,eAAO,MAAM,qBAAqB,UACzB,OAAO,KACb;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAGnG,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wGAAwG;AACxG,eAAO,MAAM,gBAAgB,SAAU,OAAO,SAAS,qBAAqB,KAAG,gBAQ7E,CAAA"}
|
|
@@ -22,6 +22,7 @@ const optionInfoSchema = v.object({
|
|
|
22
22
|
env: v.optional(v.string()),
|
|
23
23
|
conflicts: v.optional(v.array(v.string())),
|
|
24
24
|
implies: v.optional(v.record(v.string(), v.unknown())),
|
|
25
|
+
mcp: v.optional(v.literal(false)),
|
|
25
26
|
});
|
|
26
27
|
const fieldInfoSchema = v.object({
|
|
27
28
|
name: v.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAoB,eAAe,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAA;AAEhG,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CACjC,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* It walks the live Commander tree rather than a list written by hand, so a command built in a
|
|
5
5
|
* loop from a catalog shows up exactly like one written in a file. What the tree cannot say — where
|
|
6
6
|
* a command came from, whether it changes anything, whether it is on its way out — is attached with
|
|
7
|
-
* `annotate`.
|
|
7
|
+
* `annotate`, and to an option with `annotateOption`.
|
|
8
8
|
*
|
|
9
9
|
* Behind its own entry point for the same reason `/http` is: Commander is only a type here, and the
|
|
10
10
|
* root of this package stays free of any command-line framework.
|
|
11
11
|
*/
|
|
12
|
-
import type { Command } from "commander";
|
|
12
|
+
import type { Command, Option } from "commander";
|
|
13
13
|
import type { QueryRegistry } from "../query/fields.js";
|
|
14
14
|
import { type QueryInfo } from "../query/registry.js";
|
|
15
15
|
import type { Effects } from "../standards/effects.js";
|
|
@@ -41,6 +41,10 @@ export interface CommandMeta {
|
|
|
41
41
|
/** A list's query fields; the list takes them as its last argument, `[query...]`. */
|
|
42
42
|
query?: QueryRegistry;
|
|
43
43
|
}
|
|
44
|
+
export interface OptionMeta {
|
|
45
|
+
/** `false` leaves the option out of MCP tools' input; agents using the CLI itself are not affected. */
|
|
46
|
+
mcp?: boolean;
|
|
47
|
+
}
|
|
44
48
|
export interface CommandOutput {
|
|
45
49
|
entity: string;
|
|
46
50
|
view?: string;
|
|
@@ -70,6 +74,8 @@ export interface OptionInfo {
|
|
|
70
74
|
conflicts?: readonly string[];
|
|
71
75
|
/** Values this option sets on others when they are not given, by long flag. */
|
|
72
76
|
implies?: Readonly<Record<string, unknown>>;
|
|
77
|
+
/** Present only when the option is kept off MCP tools. */
|
|
78
|
+
mcp?: false;
|
|
73
79
|
}
|
|
74
80
|
export interface CommandInfo {
|
|
75
81
|
/** What to pass to the CLI, already split: `["runs", "list"]`. */
|
|
@@ -97,6 +103,9 @@ export interface CommandInfo {
|
|
|
97
103
|
/** Attaches what the tree cannot say. Repeated calls merge; the command is returned for chaining. */
|
|
98
104
|
export declare const annotate: <T extends Command>(command: T, meta: CommandMeta) => T;
|
|
99
105
|
export declare const metaOf: (command: Command) => CommandMeta;
|
|
106
|
+
/** `annotate` for an option. Repeated calls merge; the option is returned for `addOption`. */
|
|
107
|
+
export declare const annotateOption: <T extends Option>(option: T, meta: OptionMeta) => T;
|
|
108
|
+
export declare const optionMetaOf: (option: Option) => OptionMeta;
|
|
100
109
|
export declare const describeProgram: (root: Command) => CommandInfo[];
|
|
101
110
|
export declare const describeOptions: (command: Command) => OptionInfo[];
|
|
102
111
|
export declare const flatten: (commands: readonly CommandInfo[]) => CommandInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAY,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.js
CHANGED
|
@@ -7,6 +7,13 @@ export const annotate = (command, meta) => {
|
|
|
7
7
|
return command;
|
|
8
8
|
};
|
|
9
9
|
export const metaOf = (command) => labels.get(command) ?? {};
|
|
10
|
+
const optionLabels = new WeakMap();
|
|
11
|
+
/** `annotate` for an option. Repeated calls merge; the option is returned for `addOption`. */
|
|
12
|
+
export const annotateOption = (option, meta) => {
|
|
13
|
+
optionLabels.set(option, { ...optionLabels.get(option), ...meta });
|
|
14
|
+
return option;
|
|
15
|
+
};
|
|
16
|
+
export const optionMetaOf = (option) => optionLabels.get(option) ?? {};
|
|
10
17
|
export const describeProgram = (root) => visible(root).map((child) => describe(child, root.name(), [], false));
|
|
11
18
|
export const describeOptions = (command) => command.options.filter((option) => !option.hidden).map(describeOption);
|
|
12
19
|
export const flatten = (commands) => commands.flatMap((command) => [command, ...flatten(command.commands)]);
|
|
@@ -90,6 +97,7 @@ const describeOption = (option) => {
|
|
|
90
97
|
...(option.envVar ? { env: option.envVar } : {}),
|
|
91
98
|
...(conflictsWith.length > 0 ? { conflicts: conflictsWith } : {}),
|
|
92
99
|
...(implied ? { implies: impliesOf(implied) } : {}),
|
|
100
|
+
...(optionMetaOf(option).mcp === false ? { mcp: false } : {}),
|
|
93
101
|
};
|
|
94
102
|
};
|
|
95
103
|
export { commandsDocument, commandsDocumentJsonSchema, commandsDocumentSchema, parseCommandsDocument, } from "./document.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,24 +27,24 @@ at start-up and the `serve` relay are in [Lifecycle](lifecycle.md); the store's
|
|
|
27
27
|
### WC-ARCH-1 · Call only the layers below you: interface, then service, then port, then adapter
|
|
28
28
|
|
|
29
29
|
- **Why:** when a command calls an adapter directly, the MCP tool for the same job does something different.
|
|
30
|
-
- **Enforced by:**
|
|
30
|
+
- **Enforced by:** `cli-core: biome noRestrictedImports`.
|
|
31
31
|
- **Example:** cli-core has five layers: domain (`src/domain/`), adapters, ports (`port.ts`, the store), services
|
|
32
|
-
(`src/services/`) and the interface (commands and MCP tools). Its `biome.json`
|
|
32
|
+
(`src/services/`) and the interface (commands and MCP tools). Its `biome.json` refuses an import of
|
|
33
33
|
`commander` or of `src/cli/` from the services and the layers below them, and an import of a command file from
|
|
34
34
|
`src/mcp/`. What a
|
|
35
35
|
command and a service share lives below the command.
|
|
36
|
-
- **Exceptions:** none. A new adapter method goes into a named group in `port.ts`, never into the domain.
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
- **Exceptions:** none. A new adapter method goes into a named group in `port.ts`, never into the domain. In Biome, a later
|
|
37
|
+
override that sets `noRestrictedImports` for the same file replaces the earlier one's options, so every block that
|
|
38
|
+
sets the rule carries the complete list for its paths.
|
|
39
39
|
- **Applies to:** all CLIs. Each repository's `biome.json` holds its own import rules. **Since:** cli-base 0.41.0.
|
|
40
40
|
**Rulings:** none.
|
|
41
41
|
|
|
42
42
|
### WC-ARCH-2 · Dependencies point one way: a CLI depends on cli-core, cli-core on cli-base, never back
|
|
43
43
|
|
|
44
44
|
- **Why:** a shared package that imports an app cannot be shared.
|
|
45
|
-
- **Enforced by:**
|
|
46
|
-
- **Example:** cli-base has no dependency on cli-core or on any CLI. cli-core's `biome.json`
|
|
47
|
-
|
|
45
|
+
- **Enforced by:** `cli-core: biome noRestrictedImports`.
|
|
46
|
+
- **Example:** cli-base has no dependency on cli-core or on any CLI. cli-core's `biome.json` refuses an import of a
|
|
47
|
+
messenger library or an adapter directory ("cli-core speaks no provider").
|
|
48
48
|
- **Exceptions:** none.
|
|
49
49
|
- **Applies to:** cli-base, cli-core and all CLIs. **Since:** cli-base 0.41.0. **Rulings:** none.
|
|
50
50
|
|
|
@@ -110,13 +110,13 @@ at start-up and the `serve` relay are in [Lifecycle](lifecycle.md); the store's
|
|
|
110
110
|
### WC-ARCH-8 · Cross a module boundary only through the module's entry point
|
|
111
111
|
|
|
112
112
|
- **Why:** a deep import ties the caller to another module's internals.
|
|
113
|
-
- **Enforced by:** `cli-
|
|
114
|
-
`zoom-cli: biome noRestrictedImports`.
|
|
113
|
+
- **Enforced by:** `cli-core: biome noRestrictedImports` · `cli-memo: biome noRestrictedImports` ·
|
|
114
|
+
`drive-cli: biome noRestrictedImports` · `zoom-cli: biome noRestrictedImports`.
|
|
115
115
|
- **Example:** in cli-core, `src/tasks/` and `src/meetings/` are entered only through their `index.ts`, `cli/`, `mcp/`
|
|
116
|
-
and `testing/` entries; its `biome.json`
|
|
116
|
+
and `testing/` entries; its `biome.json` refuses the rest. memo, drive and zoom have a "public exports only" rule. A
|
|
117
117
|
package's own entry points are its `exports`
|
|
118
118
|
([WC-LAY-5](layout.md#wc-lay-5--add-an-entry-point-as-an-exports-entry-built-from-srcindexts)).
|
|
119
|
-
- **Exceptions:**
|
|
119
|
+
- **Exceptions:** a test inside a module may import what it tests; a test outside the module uses the entry point.
|
|
120
120
|
- **Applies to:** all CLIs. tg, max and wa do not have the import rule yet. **Since:** cli-base 0.41.0.
|
|
121
121
|
**Rulings:** none.
|
|
122
122
|
|
|
@@ -182,8 +182,8 @@ catalogue and parity manifest stay in cli-core
|
|
|
182
182
|
|
|
183
183
|
## What a command declares
|
|
184
184
|
|
|
185
|
-
Each of these is set with `annotate(command, { … })` from `@wirecat/cli-base/commands
|
|
186
|
-
`commands --json`.
|
|
185
|
+
Each of these is set with `annotate(command, { … })` from `@wirecat/cli-base/commands`, or
|
|
186
|
+
`annotateOption(option, { … })` for an option, and appears in `commands --json`.
|
|
187
187
|
|
|
188
188
|
### WC-CMD-17 · Declare `effects` on every command
|
|
189
189
|
|
|
@@ -227,15 +227,16 @@ Each of these is set with `annotate(command, { … })` from `@wirecat/cli-base/c
|
|
|
227
227
|
- **Exceptions:** none.
|
|
228
228
|
- **Applies to:** all CLIs. **Since:** cli-base 0.41.0. **Rulings:** none.
|
|
229
229
|
|
|
230
|
-
### WC-CMD-21 · Set `mcp: false` on a command or
|
|
230
|
+
### WC-CMD-21 · Set `mcp: false` on a command, group or option that MCP servers must not offer
|
|
231
231
|
|
|
232
232
|
- **Why:** the MCP tools are generated from the command tree, so the tree says what stays off it.
|
|
233
233
|
- **Enforced by:** `src/commands/commands.test.ts`.
|
|
234
234
|
- **Example:** `annotate(flood, { mcp: false })` keeps `flood` and every command under it off MCP servers. The CLI
|
|
235
235
|
still runs it. `commands --json` shows `mcp: false` on that command and each one below, and leaves the key out
|
|
236
|
-
everywhere else.
|
|
237
|
-
|
|
238
|
-
- **
|
|
236
|
+
everywhere else. `annotateOption(forEveryone, { mcp: false })` leaves one option out of MCP tools' input, and only
|
|
237
|
+
that option shows `mcp: false`. Which commands and options get it is on the [MCP](mcp.md) page.
|
|
238
|
+
- **Exceptions:** none.
|
|
239
|
+
- **Applies to:** all CLIs. **Since:** cli-base 0.41.0. **Rulings:** NEED-1411, NEED-1423.
|
|
239
240
|
|
|
240
241
|
## Help and discovery
|
|
241
242
|
|
package/docs/standards/mcp.md
CHANGED
|
@@ -188,7 +188,10 @@ What will change:
|
|
|
188
188
|
`mcp: false` on each command it reaches.
|
|
189
189
|
- **Not built today:** no MCP server reads it yet, so setting it hides nothing.
|
|
190
190
|
- **`mcp: false` on an option** leaves that option out of the tool's input. The first use is
|
|
191
|
-
`messages delete --for-everyone
|
|
191
|
+
`messages delete --for-everyone`, because an agent never deletes for everyone ([WC-PERM-11](permissions.md)).
|
|
192
|
+
- **Built today:** cli-base's `annotateOption(option, { mcp: false })` sets it, and `commands --json` shows
|
|
193
|
+
`mcp: false` on that option alone.
|
|
194
|
+
- **Not built today:** no MCP server reads it yet, so setting it hides nothing.
|
|
192
195
|
- **Never offered, by rule:** a command with a `lifetime` (`persistent`, such as `serve` and `watch`, or `interactive`,
|
|
193
196
|
such as `session start`). An agent call must return.
|
|
194
197
|
- **One server per subtree.** The personal server is built from the program without its `bot` group; the bot server
|
package/docs/standards/store.md
CHANGED
|
@@ -60,10 +60,9 @@ Related pages: which account a read covers, and how a read across accounts is as
|
|
|
60
60
|
|
|
61
61
|
- **Why:** the table modules are the SQL layer; a caller that imports them skips the transaction and the account
|
|
62
62
|
binding.
|
|
63
|
-
- **Enforced by:**
|
|
64
|
-
- **Example:** in cli-core, `biome.json`
|
|
65
|
-
`src/sends/`, `src/mcp/` and `src/cli
|
|
66
|
-
([WC-ARCH-1](architecture.md#wc-arch-1--call-only-the-layers-below-you-interface-then-service-then-port-then-adapter)). They import from `src/store/store.ts`, which re-exports what they need.
|
|
63
|
+
- **Enforced by:** `cli-core: biome noRestrictedImports`.
|
|
64
|
+
- **Example:** in cli-core, `biome.json` refuses an import of `src/store/sqlite/*` from `src/services/`,
|
|
65
|
+
`src/sends/`, `src/mcp/` and `src/cli/`. They import from `src/store/store.ts`, which re-exports what they need.
|
|
67
66
|
- **Exceptions:** tests of a table module.
|
|
68
67
|
- **Applies to:** cli-core. **Since:** cli-base 0.41.0. **Rulings:** none.
|
|
69
68
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirecat/cli-base",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.42.0",
|
|
4
4
|
"description": "The parts every command line tool needs: output modes, terminal rendering, error model, exit codes, credentials, clocks",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Viacheslav Ptsarev",
|