@taurgis/bonsai 1.0.6 → 3.0.1

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 (127) hide show
  1. package/README.md +7 -13
  2. package/agents/agents/official-docs-researcher.agent.md +15 -35
  3. package/agents/agents/salesforce-docs-researcher.agent.md +17 -44
  4. package/agents/hooks/README.md +2 -9
  5. package/agents/hooks/claude-code/hooks/bonsai-web-fetch.sh +1 -1
  6. package/agents/hooks/codex/hooks/bonsai-user-prompt-context.sh +1 -1
  7. package/agents/hooks/codex/hooks/bonsai-web-fetch.sh +1 -1
  8. package/agents/hooks/cursor/hooks/bonsai-web-fetch.sh +1 -1
  9. package/agents/hooks/github-copilot/bonsai-web-fetch.sh +1 -1
  10. package/agents/instructions/salesforce-research.instructions.md +7 -8
  11. package/agents/instructions/web-research.instructions.md +3 -4
  12. package/agents/skills/web-research/SKILL.md +24 -37
  13. package/bin/cli.mjs +15 -2
  14. package/dist/base-command.d.ts +15 -2
  15. package/dist/base-command.js +32 -4
  16. package/dist/commands/fetch.d.ts +3 -0
  17. package/dist/commands/fetch.js +96 -30
  18. package/dist/commands/import.js +14 -5
  19. package/dist/commands/inspect.d.ts +4 -0
  20. package/dist/commands/inspect.js +48 -24
  21. package/dist/commands/list.d.ts +3 -1
  22. package/dist/commands/list.js +42 -25
  23. package/dist/commands/prune.d.ts +1 -0
  24. package/dist/commands/prune.js +35 -9
  25. package/dist/commands/status.d.ts +2 -0
  26. package/dist/commands/status.js +57 -25
  27. package/dist/commands.d.ts +0 -2
  28. package/dist/commands.js +0 -2
  29. package/dist/hooks/command-not-found/suggest.d.ts +7 -1
  30. package/dist/hooks/command-not-found/suggest.js +82 -57
  31. package/dist/lib/argv.js +51 -7
  32. package/dist/lib/color.d.ts +20 -0
  33. package/dist/lib/color.js +36 -0
  34. package/dist/lib/envelope.js +8 -2
  35. package/dist/lib/help-preflight.d.ts +15 -0
  36. package/dist/lib/help-preflight.js +81 -0
  37. package/dist/lib/limit-flag.d.ts +1 -0
  38. package/dist/lib/limit-flag.js +24 -0
  39. package/dist/lib/research/{search-index.d.ts → artifact-index.d.ts} +5 -5
  40. package/dist/lib/research/{search-index.js → artifact-index.js} +10 -10
  41. package/dist/lib/research/browser.d.ts +1 -8
  42. package/dist/lib/research/browser.js +32 -46
  43. package/dist/lib/research/docs/markdown-source.js +2 -1
  44. package/dist/lib/research/extract.js +2 -1
  45. package/dist/lib/research/fetcher.js +92 -48
  46. package/dist/lib/research/prompt-injection.d.ts +1 -0
  47. package/dist/lib/research/prompt-injection.js +149 -0
  48. package/dist/lib/research/proxy.d.ts +35 -0
  49. package/dist/lib/research/proxy.js +107 -0
  50. package/dist/lib/research/regression.d.ts +18 -0
  51. package/dist/lib/research/regression.js +47 -0
  52. package/dist/lib/research/storage.d.ts +0 -1
  53. package/dist/lib/research/storage.js +15 -13
  54. package/dist/lib/research/url.d.ts +22 -0
  55. package/dist/lib/research/url.js +63 -1
  56. package/dist/lib/text.d.ts +3 -1
  57. package/dist/lib/text.js +9 -1
  58. package/dist/sites/coveo.d.ts +7 -0
  59. package/dist/sites/coveo.js +33 -0
  60. package/dist/sites/index.js +1 -18
  61. package/dist/sites/salesforce/fetch-page.js +1 -1
  62. package/dist/sites/salesforce/index.js +3 -8
  63. package/dist/sites/salesforce-developer/fetch-page.js +3 -1
  64. package/dist/sites/salesforce-developer/index.js +1 -2
  65. package/dist/sites/salesforce-doc-fetch.d.ts +11 -0
  66. package/dist/sites/salesforce-doc-fetch.js +117 -76
  67. package/dist/sites/salesforce-dom-probe.d.ts +16 -0
  68. package/dist/sites/salesforce-dom-probe.js +114 -0
  69. package/dist/sites/types.d.ts +0 -6
  70. package/oclif.manifest.json +31 -106
  71. package/package.json +35 -26
  72. package/dist/commands/index.d.ts +0 -35
  73. package/dist/commands/index.js +0 -306
  74. package/dist/commands/research/config/base.d.ts +0 -23
  75. package/dist/commands/research/config/base.js +0 -46
  76. package/dist/commands/research/config/get.d.ts +0 -20
  77. package/dist/commands/research/config/get.js +0 -45
  78. package/dist/commands/research/config/list.d.ts +0 -17
  79. package/dist/commands/research/config/list.js +0 -42
  80. package/dist/commands/research/config/set.d.ts +0 -31
  81. package/dist/commands/research/config/set.js +0 -94
  82. package/dist/commands/research/config/unset.d.ts +0 -21
  83. package/dist/commands/research/config/unset.js +0 -59
  84. package/dist/commands/research/import.d.ts +0 -38
  85. package/dist/commands/research/import.js +0 -313
  86. package/dist/commands/research/inspect.d.ts +0 -13
  87. package/dist/commands/research/inspect.js +0 -86
  88. package/dist/commands/research/list.d.ts +0 -25
  89. package/dist/commands/research/list.js +0 -143
  90. package/dist/commands/research/prune.d.ts +0 -24
  91. package/dist/commands/research/prune.js +0 -141
  92. package/dist/commands/research/search.d.ts +0 -32
  93. package/dist/commands/research/search.js +0 -334
  94. package/dist/commands/research/status.d.ts +0 -17
  95. package/dist/commands/research/status.js +0 -108
  96. package/dist/commands/research.d.ts +0 -36
  97. package/dist/commands/research.js +0 -304
  98. package/dist/commands/search.d.ts +0 -35
  99. package/dist/commands/search.js +0 -391
  100. package/dist/lib/research/docs/__fixtures__/sphinx-searchindex.d.ts +0 -1
  101. package/dist/lib/research/docs/__fixtures__/sphinx-searchindex.js +0 -2
  102. package/dist/lib/research/docs/discovery-index.d.ts +0 -14
  103. package/dist/lib/research/docs/discovery-index.js +0 -112
  104. package/dist/lib/research/docs/remote-search-runner.d.ts +0 -21
  105. package/dist/lib/research/docs/remote-search-runner.js +0 -114
  106. package/dist/lib/research/docs/remote-search.d.ts +0 -14
  107. package/dist/lib/research/docs/remote-search.js +0 -101
  108. package/dist/lib/research/docs/search-index.d.ts +0 -13
  109. package/dist/lib/research/docs/search-index.js +0 -176
  110. package/dist/sites/algolia.d.ts +0 -9
  111. package/dist/sites/algolia.js +0 -26
  112. package/dist/sites/auto.d.ts +0 -8
  113. package/dist/sites/auto.js +0 -30
  114. package/dist/sites/nextjs/index.d.ts +0 -2
  115. package/dist/sites/nextjs/index.js +0 -52
  116. package/dist/sites/react/index.d.ts +0 -2
  117. package/dist/sites/react/index.js +0 -17
  118. package/dist/sites/salesforce/browser-search.d.ts +0 -7
  119. package/dist/sites/salesforce/browser-search.js +0 -82
  120. package/dist/sites/salesforce/coveo.d.ts +0 -23
  121. package/dist/sites/salesforce/coveo.js +0 -161
  122. package/dist/sites/salesforce/token.d.ts +0 -26
  123. package/dist/sites/salesforce/token.js +0 -154
  124. package/dist/sites/tailwind/index.d.ts +0 -2
  125. package/dist/sites/tailwind/index.js +0 -17
  126. package/dist/sites/vue/index.d.ts +0 -2
  127. package/dist/sites/vue/index.js +0 -17
@@ -1,46 +0,0 @@
1
- import { Flags } from '@oclif/core';
2
- import { BaseCommand } from '../../../base-command.js';
3
- import { isKnownKey, suggestKey, validKeysHint } from '../../../lib/config/index.js';
4
- /**
5
- * Shared base for the four `research config` subcommands: the mutually-exclusive
6
- * scope-flag guard, the binary write-scope helper, and known-key validation.
7
- */
8
- export class ConfigCommand extends BaseCommand {
9
- assertScopeFlagsExclusive(global, local) {
10
- if (global && local) {
11
- this.error('--global and --local are mutually exclusive.', { exit: 2 });
12
- }
13
- }
14
- /** `--local` writes/reads the project file; otherwise the user-level file. */
15
- writeScope(local) {
16
- return local ? 'project' : 'user';
17
- }
18
- /** Read scope for get/list: an explicit `--global`/`--local`, else the merged effective view. */
19
- readScope(global, local) {
20
- if (global)
21
- return 'global';
22
- if (local)
23
- return 'local';
24
- return 'effective';
25
- }
26
- assertKnownKey(keyArg) {
27
- if (!isKnownKey(keyArg)) {
28
- const suggestion = suggestKey(keyArg);
29
- const hint = suggestion ? ` Did you mean: ${suggestion}?` : '';
30
- this.error(`Unknown config key: "${keyArg}".${hint} Valid keys: ${validKeysHint()}.`, {
31
- exit: 2,
32
- });
33
- }
34
- }
35
- }
36
- /** Build the `--global`/`--local` scope-flag pair with per-command descriptions. */
37
- export function configScopeFlags(descriptions) {
38
- return {
39
- global: Flags.boolean({ char: 'g', description: descriptions.global }),
40
- local: Flags.boolean({
41
- description: descriptions.local,
42
- aliases: ['project'],
43
- charAliases: ['p'],
44
- }),
45
- };
46
- }
@@ -1,20 +0,0 @@
1
- import { ConfigCommand } from './base.js';
2
- export default class ResearchConfigGet extends ConfigCommand<typeof ResearchConfigGet> {
3
- static id: string;
4
- static summary: string;
5
- static description: string;
6
- static examples: {
7
- description: string;
8
- command: string;
9
- }[];
10
- static args: {
11
- key: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
12
- };
13
- static flags: {
14
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
- local: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
- };
17
- static stdoutIsPrimaryData: boolean;
18
- init(): Promise<void>;
19
- execute(): Promise<unknown>;
20
- }
@@ -1,45 +0,0 @@
1
- import { Args } from '@oclif/core';
2
- import { ConfigCommand, configScopeFlags } from './base.js';
3
- import { KEY_META, BUILT_IN_DEFAULTS, readScopedConfig } from '../../../lib/config/index.js';
4
- export default class ResearchConfigGet extends ConfigCommand {
5
- static id = 'research config get';
6
- static summary = 'Get the effective value of a research configuration key.';
7
- static description = 'Print a config value. Without --global/--local, shows the merged effective value (flag > env > project > user > default).\n\nValid keys: storage.';
8
- static examples = [
9
- { description: 'Get the effective storage mode', command: '<%= config.bin %> research config get storage' },
10
- {
11
- description: 'Read only the project-level value',
12
- command: '<%= config.bin %> research config get storage --local',
13
- },
14
- ];
15
- static args = {
16
- key: Args.string({ required: true, description: 'The configuration key to read.' }),
17
- };
18
- static flags = {
19
- ...configScopeFlags({
20
- global: 'Read from user-level config only.',
21
- local: 'Read from project-level config only.',
22
- }),
23
- };
24
- static stdoutIsPrimaryData = true;
25
- async init() {
26
- await super.init();
27
- const { args, flags } = await this.parse(ResearchConfigGet);
28
- this.args = args;
29
- this.flags = flags;
30
- }
31
- async execute() {
32
- const key = this.args.key;
33
- this.assertKnownKey(key);
34
- this.assertScopeFlagsExclusive(this.flags.global, this.flags.local);
35
- const scope = this.readScope(this.flags.global, this.flags.local);
36
- const value = readScopedConfig(scope, this.config.configDir, process.cwd())[key];
37
- const meta = KEY_META[key];
38
- const displayValue = value !== undefined ? value : BUILT_IN_DEFAULTS[key];
39
- const formatted = meta.format(displayValue);
40
- const suffix = value === undefined ? ' (not configured)' : '';
41
- if (!this.requestedJson())
42
- this.log(formatted + suffix);
43
- return { key, value: displayValue };
44
- }
45
- }
@@ -1,17 +0,0 @@
1
- import { ConfigCommand } from './base.js';
2
- export default class ResearchConfigList extends ConfigCommand<typeof ResearchConfigList> {
3
- static id: string;
4
- static summary: string;
5
- static description: string;
6
- static examples: {
7
- description: string;
8
- command: string;
9
- }[];
10
- static flags: {
11
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
- local: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
- };
14
- static stdoutIsPrimaryData: boolean;
15
- init(): Promise<void>;
16
- execute(): Promise<unknown>;
17
- }
@@ -1,42 +0,0 @@
1
- import { ConfigCommand, configScopeFlags } from './base.js';
2
- import { ALL_KEYS, KEY_META, BUILT_IN_DEFAULTS, readScopedConfig } from '../../../lib/config/index.js';
3
- export default class ResearchConfigList extends ConfigCommand {
4
- static id = 'research config list';
5
- static summary = 'List all research configuration keys and their effective values.';
6
- static description = 'Show every configuration key with its current value. Use --global/--local to show a single scope.\n\nValid keys: storage.';
7
- static examples = [
8
- { description: 'Show all effective config values', command: '<%= config.bin %> research config list' },
9
- { description: 'Show only project-level config', command: '<%= config.bin %> research config list --local' },
10
- ];
11
- static flags = {
12
- ...configScopeFlags({
13
- global: 'Show user-level config only.',
14
- local: 'Show project-level config only.',
15
- }),
16
- };
17
- static stdoutIsPrimaryData = true;
18
- async init() {
19
- await super.init();
20
- const { flags } = await this.parse(ResearchConfigList);
21
- this.flags = flags;
22
- }
23
- async execute() {
24
- this.assertScopeFlagsExclusive(this.flags.global, this.flags.local);
25
- const scope = this.readScope(this.flags.global, this.flags.local);
26
- const scoped = readScopedConfig(scope, this.config.configDir, process.cwd());
27
- if (!this.requestedJson()) {
28
- const width = Math.max(...ALL_KEYS.map((k) => k.length)) + 2;
29
- for (const key of ALL_KEYS) {
30
- const raw = scoped[key];
31
- const formatted = raw !== undefined ? KEY_META[key].format(raw) : '(not configured)';
32
- this.log(`${key.padEnd(width)}${formatted}`);
33
- }
34
- }
35
- const values = {};
36
- for (const key of ALL_KEYS) {
37
- const raw = scoped[key];
38
- values[key] = raw !== undefined ? raw : BUILT_IN_DEFAULTS[key];
39
- }
40
- return values;
41
- }
42
- }
@@ -1,31 +0,0 @@
1
- import { ConfigCommand } from './base.js';
2
- export default class ResearchConfigSet extends ConfigCommand<typeof ResearchConfigSet> {
3
- static id: string;
4
- static summary: string;
5
- static description: string;
6
- static examples: {
7
- description: string;
8
- command: string;
9
- }[];
10
- static args: {
11
- key: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
12
- value: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
13
- };
14
- static flags: {
15
- 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
- local: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
- };
19
- static stdoutIsPrimaryData: boolean;
20
- init(): Promise<void>;
21
- execute(): Promise<unknown>;
22
- }
23
- /**
24
- * Accept the `key=value` convenience form alongside the canonical `key value`.
25
- * Splits only when no separate value positional was supplied, and on the FIRST `=`
26
- * so a value may itself contain `=`.
27
- */
28
- export declare function splitInlineKeyValue(rawKey: string | undefined, rawValue: string | undefined): {
29
- keyArg: string | undefined;
30
- valueArg: string | undefined;
31
- };
@@ -1,94 +0,0 @@
1
- import { Args, Flags } from '@oclif/core';
2
- import { ConfigCommand, configScopeFlags } from './base.js';
3
- import { KEY_META, writeUserConfig, writeProjectConfig } from '../../../lib/config/index.js';
4
- export default class ResearchConfigSet extends ConfigCommand {
5
- static id = 'research config set';
6
- static summary = 'Set a research configuration key.';
7
- static description = 'Persist a configuration value. Writes user-level config by default; pass --local to write the project-level config (.bonsai.json in cwd).\n\n' +
8
- 'Valid keys: storage. The inline form `<key>=<value>` is also accepted.';
9
- static examples = [
10
- {
11
- description: 'Store research cache inside the current project',
12
- command: '<%= config.bin %> research config set storage project --local',
13
- },
14
- {
15
- description: 'Set the user-level default using the inline key=value form',
16
- command: '<%= config.bin %> research config set storage=global',
17
- },
18
- ];
19
- static args = {
20
- key: Args.string({ required: false, description: 'The configuration key to set.' }),
21
- value: Args.string({ required: false, description: 'The value to assign.' }),
22
- };
23
- static flags = {
24
- ...configScopeFlags({
25
- global: 'Write to user-level config (default).',
26
- local: 'Write to project-level config (.bonsai.json in cwd).',
27
- }),
28
- 'dry-run': Flags.boolean({
29
- description: 'Show what would be written without saving.',
30
- default: false,
31
- }),
32
- };
33
- static stdoutIsPrimaryData = true;
34
- async init() {
35
- await super.init();
36
- const { args, flags } = await this.parse(ResearchConfigSet);
37
- this.args = args;
38
- this.flags = flags;
39
- }
40
- async execute() {
41
- const { keyArg, valueArg } = splitInlineKeyValue(this.args.key, this.args.value);
42
- if (!keyArg) {
43
- this.error('Missing required argument: key', { exit: 2 });
44
- }
45
- this.assertKnownKey(keyArg);
46
- this.assertScopeFlagsExclusive(this.flags.global, this.flags.local);
47
- const meta = KEY_META[keyArg];
48
- if (valueArg === undefined) {
49
- this.error(`Missing required argument: value for key "${keyArg}"`, { exit: 2 });
50
- }
51
- const parsed = meta.parseValue(valueArg);
52
- if (!meta.isValid(parsed)) {
53
- const guidance = meta.values ? `Valid values: ${meta.values.join(', ')}.` : meta.description;
54
- this.error(`Invalid value "${valueArg}" for "${keyArg}". ${guidance}`, { exit: 2 });
55
- }
56
- const scope = this.writeScope(this.flags.local);
57
- const formatted = meta.format(parsed);
58
- if (this.flags['dry-run']) {
59
- if (!this.requestedJson())
60
- this.log(`[dry-run] Would set ${keyArg} = ${formatted} (${scope})`);
61
- return { key: keyArg, value: parsed, scope, dryRun: true };
62
- }
63
- const patch = { [keyArg]: parsed };
64
- if (scope === 'project') {
65
- writeProjectConfig(process.cwd(), patch);
66
- }
67
- else {
68
- const configDir = this.config.configDir;
69
- if (!configDir) {
70
- this.error('Could not determine user config directory. Use --local to write project config.', {
71
- exit: 1,
72
- });
73
- }
74
- writeUserConfig(configDir, patch);
75
- }
76
- if (!this.requestedJson())
77
- this.log(`Set ${keyArg} = ${formatted} (${scope})`);
78
- return { key: keyArg, value: parsed, scope, dryRun: false };
79
- }
80
- }
81
- /**
82
- * Accept the `key=value` convenience form alongside the canonical `key value`.
83
- * Splits only when no separate value positional was supplied, and on the FIRST `=`
84
- * so a value may itself contain `=`.
85
- */
86
- export function splitInlineKeyValue(rawKey, rawValue) {
87
- if (rawValue === undefined && rawKey !== undefined) {
88
- const eq = rawKey.indexOf('=');
89
- if (eq !== -1) {
90
- return { keyArg: rawKey.slice(0, eq), valueArg: rawKey.slice(eq + 1) };
91
- }
92
- }
93
- return { keyArg: rawKey, valueArg: rawValue };
94
- }
@@ -1,21 +0,0 @@
1
- import { ConfigCommand } from './base.js';
2
- export default class ResearchConfigUnset extends ConfigCommand<typeof ResearchConfigUnset> {
3
- static id: string;
4
- static summary: string;
5
- static description: string;
6
- static examples: {
7
- description: string;
8
- command: string;
9
- }[];
10
- static args: {
11
- key: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
12
- };
13
- static flags: {
14
- 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
- local: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
- };
18
- static stdoutIsPrimaryData: boolean;
19
- init(): Promise<void>;
20
- execute(): Promise<unknown>;
21
- }
@@ -1,59 +0,0 @@
1
- import { Args, Flags } from '@oclif/core';
2
- import { ConfigCommand, configScopeFlags } from './base.js';
3
- import { writeUserConfig, writeProjectConfig } from '../../../lib/config/index.js';
4
- export default class ResearchConfigUnset extends ConfigCommand {
5
- static id = 'research config unset';
6
- static summary = 'Remove a research configuration key.';
7
- static description = 'Delete a key from user-level config (default) or project-level config (--local), restoring the built-in default.\n\nValid keys: storage.';
8
- static examples = [
9
- { description: 'Remove the user-level storage setting', command: '<%= config.bin %> research config unset storage' },
10
- {
11
- description: 'Remove the project-level storage setting',
12
- command: '<%= config.bin %> research config unset storage --local',
13
- },
14
- ];
15
- static args = {
16
- key: Args.string({ required: true, description: 'The configuration key to remove.' }),
17
- };
18
- static flags = {
19
- ...configScopeFlags({
20
- global: 'Remove from user-level config (default).',
21
- local: 'Remove from project-level config (.bonsai.json in cwd).',
22
- }),
23
- 'dry-run': Flags.boolean({ description: 'Show what would be removed without saving.', default: false }),
24
- };
25
- static stdoutIsPrimaryData = true;
26
- async init() {
27
- await super.init();
28
- const { args, flags } = await this.parse(ResearchConfigUnset);
29
- this.args = args;
30
- this.flags = flags;
31
- }
32
- async execute() {
33
- const key = this.args.key;
34
- this.assertKnownKey(key);
35
- this.assertScopeFlagsExclusive(this.flags.global, this.flags.local);
36
- const scope = this.writeScope(this.flags.local);
37
- if (this.flags['dry-run']) {
38
- if (!this.requestedJson())
39
- this.log(`[dry-run] Would unset ${key} (${scope})`);
40
- return { key, scope, dryRun: true };
41
- }
42
- const patch = { [key]: undefined };
43
- if (scope === 'project') {
44
- writeProjectConfig(process.cwd(), patch);
45
- }
46
- else {
47
- const configDir = this.config.configDir;
48
- if (!configDir) {
49
- this.error('Could not determine user config directory. Use --local to remove project config.', {
50
- exit: 1,
51
- });
52
- }
53
- writeUserConfig(configDir, patch);
54
- }
55
- if (!this.requestedJson())
56
- this.log(`Unset ${key} (${scope})`);
57
- return { key, scope, dryRun: false };
58
- }
59
- }
@@ -1,38 +0,0 @@
1
- import * as fs from 'node:fs';
2
- import { BaseCommand } from '../../base-command.js';
3
- export default class ResearchImport extends BaseCommand<typeof ResearchImport> {
4
- static id: string;
5
- static summary: string;
6
- static description: string;
7
- static examples: {
8
- description: string;
9
- command: string;
10
- }[];
11
- static args: {
12
- url: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
13
- };
14
- static flags: {
15
- stdin: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
- file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
- 'input-format': import("@oclif/core/interfaces").OptionFlag<"compressed" | "detailed", import("@oclif/core/interfaces").CustomOptions>;
18
- topic: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
- tags: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
- tier: import("@oclif/core/interfaces").OptionFlag<"stable" | "standard" | "volatile", import("@oclif/core/interfaces").CustomOptions>;
21
- 'source-url': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
- ttl: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
- storage: import("@oclif/core/interfaces").OptionFlag<"global" | "project" | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
- };
25
- static stdoutIsPrimaryData: boolean;
26
- init(): Promise<void>;
27
- private readStdin;
28
- private getSourceUrls;
29
- private validateSourceMode;
30
- protected fsExistsSync(filePath: string): boolean;
31
- protected fsStatSync(filePath: string): fs.Stats;
32
- protected fsReadFileSync(filePath: string): string;
33
- private readAndValidateFile;
34
- private readAndValidateInput;
35
- private deriveImportCacheKey;
36
- private buildImportArtifact;
37
- execute(): Promise<unknown>;
38
- }