byterover-cli 3.3.0 → 3.5.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 (106) hide show
  1. package/dist/agent/core/domain/swarm/types.d.ts +132 -0
  2. package/dist/agent/core/domain/swarm/types.js +128 -0
  3. package/dist/agent/core/domain/tools/constants.d.ts +2 -0
  4. package/dist/agent/core/domain/tools/constants.js +2 -0
  5. package/dist/agent/core/interfaces/i-memory-provider.d.ts +45 -0
  6. package/dist/agent/core/interfaces/i-memory-provider.js +1 -0
  7. package/dist/agent/core/interfaces/i-sandbox-service.d.ts +8 -0
  8. package/dist/agent/core/interfaces/i-swarm-coordinator.d.ts +127 -0
  9. package/dist/agent/core/interfaces/i-swarm-coordinator.js +1 -0
  10. package/dist/agent/infra/agent/service-initializer.js +48 -0
  11. package/dist/agent/infra/map/map-shared.d.ts +2 -2
  12. package/dist/agent/infra/sandbox/sandbox-service.d.ts +10 -0
  13. package/dist/agent/infra/sandbox/sandbox-service.js +13 -0
  14. package/dist/agent/infra/sandbox/tools-sdk.d.ts +25 -0
  15. package/dist/agent/infra/sandbox/tools-sdk.js +24 -1
  16. package/dist/agent/infra/swarm/adapters/byterover-adapter.d.ts +39 -0
  17. package/dist/agent/infra/swarm/adapters/byterover-adapter.js +62 -0
  18. package/dist/agent/infra/swarm/adapters/gbrain-adapter.d.ts +63 -0
  19. package/dist/agent/infra/swarm/adapters/gbrain-adapter.js +209 -0
  20. package/dist/agent/infra/swarm/adapters/local-markdown-adapter.d.ts +41 -0
  21. package/dist/agent/infra/swarm/adapters/local-markdown-adapter.js +256 -0
  22. package/dist/agent/infra/swarm/adapters/memory-wiki-adapter.d.ts +29 -0
  23. package/dist/agent/infra/swarm/adapters/memory-wiki-adapter.js +244 -0
  24. package/dist/agent/infra/swarm/adapters/obsidian-adapter.d.ts +37 -0
  25. package/dist/agent/infra/swarm/adapters/obsidian-adapter.js +201 -0
  26. package/dist/agent/infra/swarm/cli/query-renderer.d.ts +15 -0
  27. package/dist/agent/infra/swarm/cli/query-renderer.js +126 -0
  28. package/dist/agent/infra/swarm/config/swarm-config-loader.d.ts +14 -0
  29. package/dist/agent/infra/swarm/config/swarm-config-loader.js +82 -0
  30. package/dist/agent/infra/swarm/config/swarm-config-schema.d.ts +667 -0
  31. package/dist/agent/infra/swarm/config/swarm-config-schema.js +305 -0
  32. package/dist/agent/infra/swarm/provider-factory.d.ts +21 -0
  33. package/dist/agent/infra/swarm/provider-factory.js +67 -0
  34. package/dist/agent/infra/swarm/search-precision.d.ts +95 -0
  35. package/dist/agent/infra/swarm/search-precision.js +141 -0
  36. package/dist/agent/infra/swarm/swarm-coordinator.d.ts +59 -0
  37. package/dist/agent/infra/swarm/swarm-coordinator.js +436 -0
  38. package/dist/agent/infra/swarm/swarm-graph.d.ts +63 -0
  39. package/dist/agent/infra/swarm/swarm-graph.js +167 -0
  40. package/dist/agent/infra/swarm/swarm-merger.d.ts +29 -0
  41. package/dist/agent/infra/swarm/swarm-merger.js +66 -0
  42. package/dist/agent/infra/swarm/swarm-router.d.ts +12 -0
  43. package/dist/agent/infra/swarm/swarm-router.js +40 -0
  44. package/dist/agent/infra/swarm/swarm-write-router.d.ts +23 -0
  45. package/dist/agent/infra/swarm/swarm-write-router.js +45 -0
  46. package/dist/agent/infra/swarm/validation/config-validator.d.ts +16 -0
  47. package/dist/agent/infra/swarm/validation/config-validator.js +402 -0
  48. package/dist/agent/infra/swarm/validation/memory-swarm-validation-error.d.ts +33 -0
  49. package/dist/agent/infra/swarm/validation/memory-swarm-validation-error.js +27 -0
  50. package/dist/agent/infra/swarm/wizard/config-scaffolder.d.ts +36 -0
  51. package/dist/agent/infra/swarm/wizard/config-scaffolder.js +96 -0
  52. package/dist/agent/infra/swarm/wizard/provider-detector.d.ts +54 -0
  53. package/dist/agent/infra/swarm/wizard/provider-detector.js +153 -0
  54. package/dist/agent/infra/swarm/wizard/swarm-wizard.d.ts +61 -0
  55. package/dist/agent/infra/swarm/wizard/swarm-wizard.js +187 -0
  56. package/dist/agent/infra/system-prompt/contributors/index.d.ts +1 -0
  57. package/dist/agent/infra/system-prompt/contributors/index.js +1 -0
  58. package/dist/agent/infra/system-prompt/contributors/swarm-state-contributor.d.ts +15 -0
  59. package/dist/agent/infra/system-prompt/contributors/swarm-state-contributor.js +65 -0
  60. package/dist/agent/infra/tools/implementations/curate-tool.d.ts +14 -14
  61. package/dist/agent/infra/tools/implementations/curate-tool.js +2 -0
  62. package/dist/agent/infra/tools/implementations/swarm-query-tool.d.ts +9 -0
  63. package/dist/agent/infra/tools/implementations/swarm-query-tool.js +44 -0
  64. package/dist/agent/infra/tools/implementations/swarm-store-tool.d.ts +9 -0
  65. package/dist/agent/infra/tools/implementations/swarm-store-tool.js +43 -0
  66. package/dist/agent/infra/tools/tool-provider.js +1 -0
  67. package/dist/agent/infra/tools/tool-registry.d.ts +3 -0
  68. package/dist/agent/infra/tools/tool-registry.js +25 -1
  69. package/dist/agent/resources/tools/code_exec.txt +2 -0
  70. package/dist/agent/resources/tools/swarm_query.txt +38 -0
  71. package/dist/agent/resources/tools/swarm_store.txt +35 -0
  72. package/dist/oclif/commands/connectors/install.d.ts +2 -2
  73. package/dist/oclif/commands/connectors/install.js +15 -7
  74. package/dist/oclif/commands/swarm/curate.d.ts +13 -0
  75. package/dist/oclif/commands/swarm/curate.js +81 -0
  76. package/dist/oclif/commands/swarm/onboard.d.ts +6 -0
  77. package/dist/oclif/commands/swarm/onboard.js +233 -0
  78. package/dist/oclif/commands/swarm/query.d.ts +14 -0
  79. package/dist/oclif/commands/swarm/query.js +84 -0
  80. package/dist/oclif/commands/swarm/status.d.ts +41 -0
  81. package/dist/oclif/commands/swarm/status.js +278 -0
  82. package/dist/server/constants.d.ts +3 -2
  83. package/dist/server/constants.js +10 -9
  84. package/dist/server/core/domain/entities/agent.js +4 -0
  85. package/dist/server/core/domain/source/source-schema.d.ts +6 -6
  86. package/dist/server/core/domain/transport/schemas.d.ts +4 -4
  87. package/dist/server/infra/connectors/mcp/claude-desktop-config-path.d.ts +20 -0
  88. package/dist/server/infra/connectors/mcp/claude-desktop-config-path.js +47 -0
  89. package/dist/server/infra/connectors/mcp/mcp-connector-config.d.ts +19 -0
  90. package/dist/server/infra/connectors/mcp/mcp-connector-config.js +9 -0
  91. package/dist/server/infra/connectors/mcp/mcp-connector.js +12 -3
  92. package/dist/server/infra/http/provider-model-fetchers.js +1 -0
  93. package/dist/server/infra/process/feature-handlers.js +13 -0
  94. package/dist/server/infra/project/project-registry.js +13 -1
  95. package/dist/server/infra/transport/handlers/locations-handler.d.ts +2 -0
  96. package/dist/server/infra/transport/handlers/locations-handler.js +16 -1
  97. package/dist/server/infra/transport/handlers/vc-handler.d.ts +0 -4
  98. package/dist/server/infra/transport/handlers/vc-handler.js +5 -16
  99. package/dist/server/templates/skill/SKILL.md +163 -0
  100. package/dist/server/utils/gitignore.d.ts +1 -0
  101. package/dist/server/utils/gitignore.js +36 -4
  102. package/dist/shared/types/agent.d.ts +2 -1
  103. package/dist/shared/types/agent.js +2 -0
  104. package/dist/tui/features/connectors/components/connectors-flow.js +7 -2
  105. package/oclif.manifest.json +503 -323
  106. package/package.json +2 -2
@@ -1,5 +1,6 @@
1
1
  import { access, readFile, writeFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
+ import { CONTEXT_TREE_GITIGNORE_HEADER, CONTEXT_TREE_GITIGNORE_PATTERNS } from '../constants.js';
3
4
  const GITIGNORE_ENTRIES = `# ByteRover — .brv/context-tree/ contains a nested .git managed by brv vc.
4
5
  # Without these entries, \`git add .\` fails with "does not have a commit checked out".
5
6
  .brv/
@@ -14,10 +15,8 @@ const GITIGNORE_ENTRIES = `# ByteRover — .brv/context-tree/ contains a nested
14
15
  */
15
16
  export async function ensureGitignoreEntries(directory) {
16
17
  try {
17
- const dir = directory;
18
- // Only add entries in git repositories
19
- await access(join(dir, '.git'));
20
- const gitignorePath = join(dir, '.gitignore');
18
+ await access(join(directory, '.git'));
19
+ const gitignorePath = join(directory, '.gitignore');
21
20
  let existing = '';
22
21
  try {
23
22
  existing = await readFile(gitignorePath, 'utf8');
@@ -45,3 +44,36 @@ export async function ensureGitignoreEntries(directory) {
45
44
  // Best-effort — gitignore failure should not block the caller
46
45
  }
47
46
  }
47
+ export async function ensureContextTreeGitignore(contextTreeDir) {
48
+ try {
49
+ const gitignorePath = join(contextTreeDir, '.gitignore');
50
+ let existing = '';
51
+ try {
52
+ existing = await readFile(gitignorePath, 'utf8');
53
+ }
54
+ catch {
55
+ // File doesn't exist — will create with full content
56
+ }
57
+ if (existing.length === 0) {
58
+ await writeFile(gitignorePath, CONTEXT_TREE_GITIGNORE_HEADER + '\n' + CONTEXT_TREE_GITIGNORE_PATTERNS.join('\n') + '\n', 'utf8');
59
+ return;
60
+ }
61
+ const existingLines = existing.split('\n').map((l) => l.trim());
62
+ const toAppend = [];
63
+ if (!existingLines.includes(CONTEXT_TREE_GITIGNORE_HEADER)) {
64
+ toAppend.push(CONTEXT_TREE_GITIGNORE_HEADER);
65
+ }
66
+ for (const pattern of CONTEXT_TREE_GITIGNORE_PATTERNS) {
67
+ if (existingLines.some((el) => el.includes(pattern)))
68
+ continue;
69
+ toAppend.push(pattern);
70
+ }
71
+ if (toAppend.length === 0)
72
+ return;
73
+ const separator = existing.endsWith('\n') ? '\n' : '\n\n';
74
+ await writeFile(gitignorePath, existing + separator + toAppend.join('\n') + '\n', 'utf8');
75
+ }
76
+ catch {
77
+ // Best-effort — gitignore sync should never block the caller
78
+ }
79
+ }
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Array of all supported Agents.
3
3
  */
4
- export declare const AGENT_VALUES: readonly ["Amp", "Antigravity", "Auggie CLI", "Augment Code", "Claude Code", "Cline", "Codex", "Cursor", "Gemini CLI", "Github Copilot", "Junie", "Kilo Code", "Kiro", "OpenClaw", "OpenCode", "Qoder", "Qwen Code", "Roo Code", "Trae.ai", "Warp", "Windsurf", "Zed"];
4
+ export declare const AGENT_VALUES: readonly ["Amp", "Antigravity", "Auggie CLI", "Augment Code", "Claude Code", "Claude Desktop", "Cline", "Codex", "Cursor", "Gemini CLI", "Github Copilot", "Junie", "Kilo Code", "Kiro", "OpenClaw", "OpenCode", "Qoder", "Qwen Code", "Roo Code", "Trae.ai", "Warp", "Windsurf", "Zed"];
5
5
  export type Agent = (typeof AGENT_VALUES)[number];
6
+ export declare const CLAUDE_DESKTOP: Agent;
@@ -7,6 +7,7 @@ export const AGENT_VALUES = [
7
7
  'Auggie CLI',
8
8
  'Augment Code',
9
9
  'Claude Code',
10
+ 'Claude Desktop',
10
11
  'Cline',
11
12
  'Codex',
12
13
  'Cursor',
@@ -25,3 +26,4 @@ export const AGENT_VALUES = [
25
26
  'Windsurf',
26
27
  'Zed',
27
28
  ];
29
+ export const CLAUDE_DESKTOP = 'Claude Desktop';
@@ -12,6 +12,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
12
12
  import chalk from 'chalk';
13
13
  import { Box, Text } from 'ink';
14
14
  import { useCallback, useMemo, useState } from 'react';
15
+ import { CLAUDE_DESKTOP } from '../../../../shared/types/agent.js';
15
16
  import { requiresAgentRestart } from '../../../../shared/types/connector-type.js';
16
17
  import { useTheme } from '../../../hooks/index.js';
17
18
  import { useGetAgentConfigPaths } from '../api/get-agent-config-paths.js';
@@ -119,9 +120,13 @@ export const ConnectorsFlow = ({ isActive = true, onCancel, onComplete }) => {
119
120
  : `${agentName} connected via ${getConnectorName(connectorType)}`;
120
121
  const locationLine = result.configPath ? `\nLocation: ${result.configPath}` : '';
121
122
  const prompt = chalk.hex('#0AA77D').italic('> "Save our API authentication patterns, use brv curate"');
122
- const restartAgentRequired = requiresAgentRestart(connectorType);
123
+ const restartHint = requiresAgentRestart(connectorType)
124
+ ? agentName === CLAUDE_DESKTOP
125
+ ? `\n⚠️ Quit ${agentName} from the system tray (Win) or menu bar (Mac), then reopen it.`
126
+ : `\n⚠️ Please restart ${agentName} to apply the new ${getConnectorName(connectorType)}.`
127
+ : '';
123
128
  const message = `${statusMessage}${locationLine}
124
- ${restartAgentRequired ? `\n⚠️ Please restart ${agentName} to apply the new ${getConnectorName(connectorType)}.` : ''}
129
+ ${restartHint}
125
130
 
126
131
  WHAT'S NEXT
127
132
  Try this in your next prompt: