agent-bober 0.6.2 → 0.8.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 (190) hide show
  1. package/README.md +220 -30
  2. package/dist/cli/commands/eval.d.ts +2 -0
  3. package/dist/cli/commands/eval.d.ts.map +1 -1
  4. package/dist/cli/commands/eval.js +10 -0
  5. package/dist/cli/commands/eval.js.map +1 -1
  6. package/dist/cli/commands/init.d.ts.map +1 -1
  7. package/dist/cli/commands/init.js +357 -62
  8. package/dist/cli/commands/init.js.map +1 -1
  9. package/dist/cli/commands/plan.d.ts +2 -0
  10. package/dist/cli/commands/plan.d.ts.map +1 -1
  11. package/dist/cli/commands/plan.js +10 -0
  12. package/dist/cli/commands/plan.js.map +1 -1
  13. package/dist/cli/commands/run.d.ts +2 -0
  14. package/dist/cli/commands/run.d.ts.map +1 -1
  15. package/dist/cli/commands/run.js +10 -0
  16. package/dist/cli/commands/run.js.map +1 -1
  17. package/dist/cli/commands/sprint.d.ts +2 -0
  18. package/dist/cli/commands/sprint.d.ts.map +1 -1
  19. package/dist/cli/commands/sprint.js +10 -0
  20. package/dist/cli/commands/sprint.js.map +1 -1
  21. package/dist/cli/index.js +22 -2
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/config/schema.d.ts +160 -43
  24. package/dist/config/schema.d.ts.map +1 -1
  25. package/dist/config/schema.js +11 -7
  26. package/dist/config/schema.js.map +1 -1
  27. package/dist/contracts/sprint-contract.d.ts +8 -8
  28. package/dist/discovery/config-generator.d.ts +28 -0
  29. package/dist/discovery/config-generator.d.ts.map +1 -0
  30. package/dist/discovery/config-generator.js +225 -0
  31. package/dist/discovery/config-generator.js.map +1 -0
  32. package/dist/discovery/index.d.ts +20 -0
  33. package/dist/discovery/index.d.ts.map +1 -0
  34. package/dist/discovery/index.js +19 -0
  35. package/dist/discovery/index.js.map +1 -0
  36. package/dist/discovery/scanner.d.ts +17 -0
  37. package/dist/discovery/scanner.d.ts.map +1 -0
  38. package/dist/discovery/scanner.js +120 -0
  39. package/dist/discovery/scanner.js.map +1 -0
  40. package/dist/discovery/scanners/ci-checks.d.ts +10 -0
  41. package/dist/discovery/scanners/ci-checks.d.ts.map +1 -0
  42. package/dist/discovery/scanners/ci-checks.js +169 -0
  43. package/dist/discovery/scanners/ci-checks.js.map +1 -0
  44. package/dist/discovery/scanners/code-conventions.d.ts +12 -0
  45. package/dist/discovery/scanners/code-conventions.d.ts.map +1 -0
  46. package/dist/discovery/scanners/code-conventions.js +216 -0
  47. package/dist/discovery/scanners/code-conventions.js.map +1 -0
  48. package/dist/discovery/scanners/documentation.d.ts +17 -0
  49. package/dist/discovery/scanners/documentation.d.ts.map +1 -0
  50. package/dist/discovery/scanners/documentation.js +92 -0
  51. package/dist/discovery/scanners/documentation.js.map +1 -0
  52. package/dist/discovery/scanners/git-conventions.d.ts +11 -0
  53. package/dist/discovery/scanners/git-conventions.d.ts.map +1 -0
  54. package/dist/discovery/scanners/git-conventions.js +128 -0
  55. package/dist/discovery/scanners/git-conventions.js.map +1 -0
  56. package/dist/discovery/scanners/package-scripts.d.ts +9 -0
  57. package/dist/discovery/scanners/package-scripts.d.ts.map +1 -0
  58. package/dist/discovery/scanners/package-scripts.js +112 -0
  59. package/dist/discovery/scanners/package-scripts.js.map +1 -0
  60. package/dist/discovery/scanners/test-conventions.d.ts +9 -0
  61. package/dist/discovery/scanners/test-conventions.d.ts.map +1 -0
  62. package/dist/discovery/scanners/test-conventions.js +231 -0
  63. package/dist/discovery/scanners/test-conventions.js.map +1 -0
  64. package/dist/discovery/synthesizer.d.ts +30 -0
  65. package/dist/discovery/synthesizer.d.ts.map +1 -0
  66. package/dist/discovery/synthesizer.js +348 -0
  67. package/dist/discovery/synthesizer.js.map +1 -0
  68. package/dist/discovery/types.d.ts +160 -0
  69. package/dist/discovery/types.d.ts.map +1 -0
  70. package/dist/discovery/types.js +9 -0
  71. package/dist/discovery/types.js.map +1 -0
  72. package/dist/index.d.ts +12 -0
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +12 -0
  75. package/dist/index.js.map +1 -1
  76. package/dist/mcp/index.d.ts +4 -0
  77. package/dist/mcp/index.d.ts.map +1 -0
  78. package/dist/mcp/index.js +4 -0
  79. package/dist/mcp/index.js.map +1 -0
  80. package/dist/mcp/run-manager.d.ts +47 -0
  81. package/dist/mcp/run-manager.d.ts.map +1 -0
  82. package/dist/mcp/run-manager.js +79 -0
  83. package/dist/mcp/run-manager.js.map +1 -0
  84. package/dist/mcp/server.d.ts +15 -0
  85. package/dist/mcp/server.d.ts.map +1 -0
  86. package/dist/mcp/server.js +107 -0
  87. package/dist/mcp/server.js.map +1 -0
  88. package/dist/mcp/tools/config.d.ts +2 -0
  89. package/dist/mcp/tools/config.d.ts.map +1 -0
  90. package/dist/mcp/tools/config.js +153 -0
  91. package/dist/mcp/tools/config.js.map +1 -0
  92. package/dist/mcp/tools/contracts.d.ts +2 -0
  93. package/dist/mcp/tools/contracts.d.ts.map +1 -0
  94. package/dist/mcp/tools/contracts.js +61 -0
  95. package/dist/mcp/tools/contracts.js.map +1 -0
  96. package/dist/mcp/tools/eval.d.ts +2 -0
  97. package/dist/mcp/tools/eval.d.ts.map +1 -0
  98. package/dist/mcp/tools/eval.js +157 -0
  99. package/dist/mcp/tools/eval.js.map +1 -0
  100. package/dist/mcp/tools/index.d.ts +20 -0
  101. package/dist/mcp/tools/index.d.ts.map +1 -0
  102. package/dist/mcp/tools/index.js +47 -0
  103. package/dist/mcp/tools/index.js.map +1 -0
  104. package/dist/mcp/tools/init.d.ts +2 -0
  105. package/dist/mcp/tools/init.d.ts.map +1 -0
  106. package/dist/mcp/tools/init.js +222 -0
  107. package/dist/mcp/tools/init.js.map +1 -0
  108. package/dist/mcp/tools/plan.d.ts +2 -0
  109. package/dist/mcp/tools/plan.d.ts.map +1 -0
  110. package/dist/mcp/tools/plan.js +97 -0
  111. package/dist/mcp/tools/plan.js.map +1 -0
  112. package/dist/mcp/tools/principles.d.ts +2 -0
  113. package/dist/mcp/tools/principles.d.ts.map +1 -0
  114. package/dist/mcp/tools/principles.js +66 -0
  115. package/dist/mcp/tools/principles.js.map +1 -0
  116. package/dist/mcp/tools/registry.d.ts +45 -0
  117. package/dist/mcp/tools/registry.d.ts.map +1 -0
  118. package/dist/mcp/tools/registry.js +23 -0
  119. package/dist/mcp/tools/registry.js.map +1 -0
  120. package/dist/mcp/tools/run.d.ts +2 -0
  121. package/dist/mcp/tools/run.d.ts.map +1 -0
  122. package/dist/mcp/tools/run.js +66 -0
  123. package/dist/mcp/tools/run.js.map +1 -0
  124. package/dist/mcp/tools/spec.d.ts +2 -0
  125. package/dist/mcp/tools/spec.d.ts.map +1 -0
  126. package/dist/mcp/tools/spec.js +32 -0
  127. package/dist/mcp/tools/spec.js.map +1 -0
  128. package/dist/mcp/tools/sprint.d.ts +2 -0
  129. package/dist/mcp/tools/sprint.d.ts.map +1 -0
  130. package/dist/mcp/tools/sprint.js +243 -0
  131. package/dist/mcp/tools/sprint.js.map +1 -0
  132. package/dist/mcp/tools/status.d.ts +2 -0
  133. package/dist/mcp/tools/status.d.ts.map +1 -0
  134. package/dist/mcp/tools/status.js +76 -0
  135. package/dist/mcp/tools/status.js.map +1 -0
  136. package/dist/orchestrator/agentic-loop.d.ts +7 -6
  137. package/dist/orchestrator/agentic-loop.d.ts.map +1 -1
  138. package/dist/orchestrator/agentic-loop.js +33 -40
  139. package/dist/orchestrator/agentic-loop.js.map +1 -1
  140. package/dist/orchestrator/context-handoff.d.ts +20 -20
  141. package/dist/orchestrator/evaluator-agent.d.ts.map +1 -1
  142. package/dist/orchestrator/evaluator-agent.js +2 -2
  143. package/dist/orchestrator/evaluator-agent.js.map +1 -1
  144. package/dist/orchestrator/generator-agent.d.ts.map +1 -1
  145. package/dist/orchestrator/generator-agent.js +2 -2
  146. package/dist/orchestrator/generator-agent.js.map +1 -1
  147. package/dist/orchestrator/model-resolver.d.ts +35 -4
  148. package/dist/orchestrator/model-resolver.d.ts.map +1 -1
  149. package/dist/orchestrator/model-resolver.js +68 -15
  150. package/dist/orchestrator/model-resolver.js.map +1 -1
  151. package/dist/orchestrator/planner-agent.d.ts.map +1 -1
  152. package/dist/orchestrator/planner-agent.js +2 -2
  153. package/dist/orchestrator/planner-agent.js.map +1 -1
  154. package/dist/orchestrator/tools/index.d.ts +3 -4
  155. package/dist/orchestrator/tools/index.d.ts.map +1 -1
  156. package/dist/orchestrator/tools/index.js.map +1 -1
  157. package/dist/orchestrator/tools/schemas.d.ts +11 -12
  158. package/dist/orchestrator/tools/schemas.d.ts.map +1 -1
  159. package/dist/orchestrator/tools/schemas.js +3 -2
  160. package/dist/orchestrator/tools/schemas.js.map +1 -1
  161. package/dist/providers/anthropic.d.ts +15 -0
  162. package/dist/providers/anthropic.d.ts.map +1 -0
  163. package/dist/providers/anthropic.js +133 -0
  164. package/dist/providers/anthropic.js.map +1 -0
  165. package/dist/providers/factory.d.ts +37 -0
  166. package/dist/providers/factory.d.ts.map +1 -0
  167. package/dist/providers/factory.js +119 -0
  168. package/dist/providers/factory.js.map +1 -0
  169. package/dist/providers/google.d.ts +39 -0
  170. package/dist/providers/google.d.ts.map +1 -0
  171. package/dist/providers/google.js +195 -0
  172. package/dist/providers/google.js.map +1 -0
  173. package/dist/providers/index.d.ts +7 -0
  174. package/dist/providers/index.d.ts.map +1 -0
  175. package/dist/providers/index.js +6 -0
  176. package/dist/providers/index.js.map +1 -0
  177. package/dist/providers/openai-compat.d.ts +39 -0
  178. package/dist/providers/openai-compat.d.ts.map +1 -0
  179. package/dist/providers/openai-compat.js +42 -0
  180. package/dist/providers/openai-compat.js.map +1 -0
  181. package/dist/providers/openai.d.ts +41 -0
  182. package/dist/providers/openai.d.ts.map +1 -0
  183. package/dist/providers/openai.js +205 -0
  184. package/dist/providers/openai.js.map +1 -0
  185. package/dist/providers/types.d.ts +144 -0
  186. package/dist/providers/types.d.ts.map +1 -0
  187. package/dist/providers/types.js +8 -0
  188. package/dist/providers/types.js.map +1 -0
  189. package/package.json +22 -4
  190. package/skills/bober.principles/SKILL.md +36 -3
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Type definitions for the deep programmatic codebase scanner.
3
+ *
4
+ * DiscoveryReport is the top-level output of scanProject().
5
+ * All sections are optional -- a graceful failure in a sub-scanner
6
+ * produces a null/empty section, not a thrown error.
7
+ */
8
+ /** Bober command categories mapped from package.json scripts. */
9
+ export interface CommandMapping {
10
+ /** Script name in package.json (e.g. "build", "test:watch"). */
11
+ scriptName: string;
12
+ /** Actual command string (e.g. "tsc", "vitest run"). */
13
+ command: string;
14
+ /** Full run command including package manager prefix (e.g. "npm run build"). */
15
+ runCommand: string;
16
+ }
17
+ export type BoberCommandCategory = "build" | "test" | "lint" | "typecheck" | "dev" | "install";
18
+ export interface PackageScriptsReport {
19
+ /** Detected package manager. */
20
+ packageManager: "npm" | "yarn" | "pnpm" | "bun" | null;
21
+ /** All scripts from package.json. */
22
+ allScripts: Record<string, string>;
23
+ /** Scripts mapped to bober categories. */
24
+ categorized: Partial<Record<BoberCommandCategory, CommandMapping>>;
25
+ }
26
+ export type CICategory = "test" | "lint" | "build" | "deploy" | "other";
27
+ export interface CIStep {
28
+ /** Name of the CI step if present. */
29
+ name: string | null;
30
+ /** The run command extracted from the step. */
31
+ runCommand: string;
32
+ /** Inferred category. */
33
+ category: CICategory;
34
+ }
35
+ export interface CIWorkflow {
36
+ /** Relative path to the workflow file (e.g. ".github/workflows/ci.yml"). */
37
+ file: string;
38
+ steps: CIStep[];
39
+ }
40
+ export interface CIChecksReport {
41
+ workflows: CIWorkflow[];
42
+ /** Flat list of all unique run commands across all workflows. */
43
+ allRunCommands: string[];
44
+ }
45
+ export interface GitConventionsReport {
46
+ /** Whether conventional commits (feat:, fix:, etc.) are detected. */
47
+ usesConventionalCommits: boolean;
48
+ /** Most common commit prefix pattern (e.g. "bober(", "feat:", "TICKET-"). */
49
+ mostCommonPrefix: string | null;
50
+ /** Raw sample of recent commit messages (last 50). */
51
+ recentMessages: string[];
52
+ /** Detected branch naming patterns (e.g. "feature/*", "bober/*"). */
53
+ branchPatterns: string[];
54
+ /** All branch names from git branch -a. */
55
+ branches: string[];
56
+ /** Whether the repo has a linear history (no merge commits). */
57
+ hasLinearHistory: boolean;
58
+ /** Ratio of merge commits among sampled commits (0-1). */
59
+ mergeCommitRatio: number;
60
+ }
61
+ export type FileNamingStyle = "camelCase" | "kebab-case" | "PascalCase" | "snake_case" | "mixed";
62
+ export interface FileNamingReport {
63
+ dominant: FileNamingStyle;
64
+ counts: Record<FileNamingStyle, number>;
65
+ }
66
+ export interface ImportStyleReport {
67
+ /** Count of relative imports (e.g. ./foo, ../bar). */
68
+ relativeCount: number;
69
+ /** Count of absolute/alias imports (e.g. @/components, src/utils). */
70
+ absoluteCount: number;
71
+ /** Whether imports use .js extensions (common in ESM TypeScript). */
72
+ usesJsExtensions: boolean;
73
+ /** Example import lines (up to 5). */
74
+ examples: string[];
75
+ }
76
+ export interface ExportStyleReport {
77
+ namedExportCount: number;
78
+ defaultExportCount: number;
79
+ /** Dominant style. */
80
+ dominant: "named" | "default" | "mixed";
81
+ }
82
+ export interface TypeScriptPatternsReport {
83
+ /** Number of `any` usages across sampled files. */
84
+ anyCount: number;
85
+ /** Number of `@ts-ignore` / `@ts-expect-error` usages. */
86
+ tsIgnoreCount: number;
87
+ /** Number of `enum` declarations. */
88
+ enumCount: number;
89
+ /** Number of `interface` declarations. */
90
+ interfaceCount: number;
91
+ /** Number of `type` alias declarations. */
92
+ typeAliasCount: number;
93
+ }
94
+ export interface CodeConventionsReport {
95
+ /** Total source files sampled. */
96
+ filesSampled: number;
97
+ fileNaming: FileNamingReport;
98
+ importStyle: ImportStyleReport;
99
+ exportStyle: ExportStyleReport;
100
+ typescriptPatterns: TypeScriptPatternsReport | null;
101
+ }
102
+ export type TestFramework = "vitest" | "jest" | "mocha" | "jasmine" | "pytest" | "unknown";
103
+ export type MockingLibrary = "vitest" | "jest" | "sinon" | "testdouble" | "none" | "unknown";
104
+ export interface TestConventionsReport {
105
+ framework: TestFramework;
106
+ /** Dominant test file naming pattern (e.g. "*.test.ts", "*.spec.ts"). */
107
+ filePattern: "*.test.ts" | "*.spec.ts" | "*.test.js" | "*.spec.js" | "mixed" | "unknown";
108
+ /** Whether test files are colocated with source (true) or in a separate dir (false). */
109
+ colocated: boolean;
110
+ /** Test directories found (e.g. ["__tests__", "test", "tests"]). */
111
+ testDirs: string[];
112
+ mockingLibrary: MockingLibrary;
113
+ /** Whether a coverage config was detected. */
114
+ hasCoverageConfig: boolean;
115
+ /** Total test files found. */
116
+ testFileCount: number;
117
+ }
118
+ export interface DocFile {
119
+ /** Relative path from project root. */
120
+ path: string;
121
+ /** Content truncated to 2000 chars. */
122
+ content: string;
123
+ /** Whether the content was truncated. */
124
+ truncated: boolean;
125
+ }
126
+ export interface DocumentationReport {
127
+ files: DocFile[];
128
+ }
129
+ export interface DetectedStackReport {
130
+ hasTypescript: boolean;
131
+ hasReact: boolean;
132
+ hasNext: boolean;
133
+ hasVite: boolean;
134
+ hasPlaywright: boolean;
135
+ hasEslint: boolean;
136
+ hasVitest: boolean;
137
+ hasJest: boolean;
138
+ hasPython: boolean;
139
+ hasRust: boolean;
140
+ hasNestjs: boolean;
141
+ hasFastify: boolean;
142
+ hasExpress: boolean;
143
+ /** Primary language detected. */
144
+ primaryLanguage: "typescript" | "javascript" | "python" | "rust" | "unknown";
145
+ }
146
+ export interface DiscoveryReport {
147
+ /** Absolute path to the scanned project root. */
148
+ projectRoot: string;
149
+ /** ISO timestamp of the scan. */
150
+ scannedAt: string;
151
+ packageScripts: PackageScriptsReport | null;
152
+ packageManager: "npm" | "yarn" | "pnpm" | "bun" | null;
153
+ ciChecks: CIChecksReport;
154
+ gitConventions: GitConventionsReport | null;
155
+ codeConventions: CodeConventionsReport | null;
156
+ testConventions: TestConventionsReport | null;
157
+ documentation: DocumentationReport;
158
+ detectedStack: DetectedStackReport | null;
159
+ }
160
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Type definitions for the deep programmatic codebase scanner.
3
+ *
4
+ * DiscoveryReport is the top-level output of scanProject().
5
+ * All sections are optional -- a graceful failure in a sub-scanner
6
+ * produces a null/empty section, not a thrown error.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
package/dist/index.d.ts CHANGED
@@ -16,6 +16,18 @@ export { runAgenticLoop, type AgenticLoopParams, type AgenticLoopResult, } from
16
16
  export { EvaluatorRegistry, createDefaultRegistry, runEvaluation, type EvaluationRunResult, } from "./evaluators/registry.js";
17
17
  export type { EvaluatorPlugin, EvaluatorFactory, EvalContext, } from "./evaluators/plugin-interface.js";
18
18
  export { ensureBoberDir, saveContract, loadContract, listContracts, updateContract, saveSpec, loadSpec, loadLatestSpec, listSpecs, appendHistory, loadHistory, } from "./state/index.js";
19
+ export type { JsonSchemaProperty, JsonSchemaObject, ToolDef, ToolCall, ToolResult, TextMessage, AssistantMessage, ToolResultMessage, Message, ChatParams, ChatResponse, StopReason, LLMClient, } from "./providers/types.js";
20
+ export { AnthropicAdapter } from "./providers/anthropic.js";
21
+ export { OpenAIAdapter } from "./providers/openai.js";
22
+ export { GoogleAdapter } from "./providers/google.js";
23
+ export { OpenAICompatAdapter } from "./providers/openai-compat.js";
24
+ export { createClient, validateApiKey, type ProviderName } from "./providers/factory.js";
19
25
  export { logger, Logger } from "./utils/logger.js";
20
26
  export { findProjectRoot } from "./utils/fs.js";
27
+ export { createBoberMCPServer } from "./mcp/index.js";
28
+ export { RunManager } from "./mcp/run-manager.js";
29
+ export { scanProject } from "./discovery/scanner.js";
30
+ export { synthesizePrinciples } from "./discovery/synthesizer.js";
31
+ export { generateEvalConfig } from "./discovery/config-generator.js";
32
+ export type { DiscoveryReport } from "./discovery/types.js";
21
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAInE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,cAAc,EACd,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,IAAI,wBAAwB,EACjD,gBAAgB,EAChB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,YAAY,EACZ,KAAK,eAAe,GACrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,WAAW,EACX,KAAK,cAAc,GACpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,YAAY,EACZ,KAAK,OAAO,EACZ,KAAK,SAAS,GACf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,GACZ,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,SAAS,EACT,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -20,7 +20,19 @@ export { runAgenticLoop, } from "./orchestrator/agentic-loop.js";
20
20
  export { EvaluatorRegistry, createDefaultRegistry, runEvaluation, } from "./evaluators/registry.js";
21
21
  // ── State ──────────────────────────────────────────────────────────
22
22
  export { ensureBoberDir, saveContract, loadContract, listContracts, updateContract, saveSpec, loadSpec, loadLatestSpec, listSpecs, appendHistory, loadHistory, } from "./state/index.js";
23
+ export { AnthropicAdapter } from "./providers/anthropic.js";
24
+ export { OpenAIAdapter } from "./providers/openai.js";
25
+ export { GoogleAdapter } from "./providers/google.js";
26
+ export { OpenAICompatAdapter } from "./providers/openai-compat.js";
27
+ export { createClient, validateApiKey } from "./providers/factory.js";
23
28
  // ── Utils ──────────────────────────────────────────────────────────
24
29
  export { logger, Logger } from "./utils/logger.js";
25
30
  export { findProjectRoot } from "./utils/fs.js";
31
+ // ── MCP Server ──────────────────────────────────────────────────────
32
+ export { createBoberMCPServer } from "./mcp/index.js";
33
+ export { RunManager } from "./mcp/run-manager.js";
34
+ // ── Discovery ────────────────────────────────────────────────────────
35
+ export { scanProject } from "./discovery/scanner.js";
36
+ export { synthesizePrinciples } from "./discovery/synthesizer.js";
37
+ export { generateEvalConfig } from "./discovery/config-generator.js";
26
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAOL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnE,sEAAsE;AAEtE,OAAO,EAIL,cAAc,EACd,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAGL,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAOL,gBAAgB,EAChB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,sEAAsE;AAEtE,OAAO,EAIL,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,YAAY,GAEb,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,YAAY,GAGb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,GAGf,MAAM,gCAAgC,CAAC;AAExC,sEAAsE;AAEtE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GAEd,MAAM,0BAA0B,CAAC;AAQlC,sEAAsE;AAEtE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,SAAS,EACT,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,sEAAsE;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAOL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnE,sEAAsE;AAEtE,OAAO,EAIL,cAAc,EACd,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAGL,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAOL,gBAAgB,EAChB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,sEAAsE;AAEtE,OAAO,EAIL,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,YAAY,GAEb,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EACL,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,YAAY,GAGb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,cAAc,GAGf,MAAM,gCAAgC,CAAC;AAExC,sEAAsE;AAEtE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GAEd,MAAM,0BAA0B,CAAC;AAQlC,sEAAsE;AAEtE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,SAAS,EACT,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAoB1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;AAEzF,sEAAsE;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,uEAAuE;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,wEAAwE;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { createBoberMCPServer } from "./server.js";
2
+ export { registerTool, getAllTools, getTool, registerAllTools, } from "./tools/index.js";
3
+ export type { BoberToolDefinition, JsonSchemaObject, JsonSchemaProperty, } from "./tools/index.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,OAAO,EACP,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ // ── MCP barrel exports ──────────────────────────────────────────────
2
+ export { createBoberMCPServer } from "./server.js";
3
+ export { registerTool, getAllTools, getTool, registerAllTools, } from "./tools/index.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,OAAO,EACP,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { BoberConfig } from "../config/schema.js";
2
+ import type { PipelineResult } from "../orchestrator/pipeline.js";
3
+ export interface RunProgress {
4
+ completed: number;
5
+ total: number;
6
+ currentSprint?: string;
7
+ iteration?: number;
8
+ }
9
+ export interface RunResult {
10
+ success: boolean;
11
+ completedSprints: number;
12
+ failedSprints: number;
13
+ duration: number;
14
+ }
15
+ export interface RunState {
16
+ runId: string;
17
+ task: string;
18
+ status: "running" | "completed" | "failed";
19
+ startedAt: string;
20
+ completedAt?: string;
21
+ progress: RunProgress;
22
+ result?: RunResult;
23
+ error?: string;
24
+ }
25
+ export declare class RunManager {
26
+ private activeRun;
27
+ /**
28
+ * Check whether a pipeline is currently running.
29
+ */
30
+ isRunning(): boolean;
31
+ /**
32
+ * Return the current RunState, or null if no run has ever been started.
33
+ */
34
+ getStatus(): RunState | null;
35
+ /**
36
+ * Start a new pipeline run as a fire-and-forget promise.
37
+ *
38
+ * Throws if a run is already active (callers should check isRunning first).
39
+ * Returns the new runId immediately.
40
+ *
41
+ * The optional `pipelineFn` parameter exists for testing only. In production
42
+ * it defaults to the real `runPipeline` function.
43
+ */
44
+ startRun(task: string, projectRoot: string, config: BoberConfig, pipelineFn?: (task: string, projectRoot: string, config: BoberConfig) => Promise<PipelineResult>): string;
45
+ }
46
+ export declare const runManager: RunManager;
47
+ //# sourceMappingURL=run-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/run-manager.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAIlE,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAyB;IAE1C;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,IAAI,QAAQ,GAAG,IAAI;IAI5B;;;;;;;;OAQG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,UAAU,GAAE,CACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,cAAc,CAAe,GACzC,MAAM;CAoDV;AAID,eAAO,MAAM,UAAU,YAAmB,CAAC"}
@@ -0,0 +1,79 @@
1
+ // ── RunManager ───────────────────────────────────────────────────────
2
+ //
3
+ // Tracks the single active pipeline run in memory.
4
+ // bober_run starts a fire-and-forget pipeline; bober_status queries state.
5
+ import { randomUUID } from "node:crypto";
6
+ import { runPipeline } from "../orchestrator/pipeline.js";
7
+ // ── RunManager ───────────────────────────────────────────────────────
8
+ export class RunManager {
9
+ activeRun = null;
10
+ /**
11
+ * Check whether a pipeline is currently running.
12
+ */
13
+ isRunning() {
14
+ return this.activeRun !== null && this.activeRun.status === "running";
15
+ }
16
+ /**
17
+ * Return the current RunState, or null if no run has ever been started.
18
+ */
19
+ getStatus() {
20
+ return this.activeRun;
21
+ }
22
+ /**
23
+ * Start a new pipeline run as a fire-and-forget promise.
24
+ *
25
+ * Throws if a run is already active (callers should check isRunning first).
26
+ * Returns the new runId immediately.
27
+ *
28
+ * The optional `pipelineFn` parameter exists for testing only. In production
29
+ * it defaults to the real `runPipeline` function.
30
+ */
31
+ startRun(task, projectRoot, config, pipelineFn = runPipeline) {
32
+ if (this.isRunning()) {
33
+ throw new Error(`A pipeline is already running (runId: ${this.activeRun.runId}). Use bober_status to check progress.`);
34
+ }
35
+ const runId = randomUUID();
36
+ const now = new Date().toISOString();
37
+ this.activeRun = {
38
+ runId,
39
+ task,
40
+ status: "running",
41
+ startedAt: now,
42
+ progress: {
43
+ completed: 0,
44
+ total: 0,
45
+ },
46
+ };
47
+ // Fire-and-forget: do NOT await this promise
48
+ const promise = pipelineFn(task, projectRoot, config);
49
+ promise
50
+ .then((result) => {
51
+ if (this.activeRun && this.activeRun.runId === runId) {
52
+ this.activeRun.status = "completed";
53
+ this.activeRun.completedAt = new Date().toISOString();
54
+ this.activeRun.result = {
55
+ success: result.success,
56
+ completedSprints: result.completedSprints.length,
57
+ failedSprints: result.failedSprints.length,
58
+ duration: result.duration,
59
+ };
60
+ this.activeRun.progress = {
61
+ completed: result.completedSprints.length,
62
+ total: result.completedSprints.length + result.failedSprints.length,
63
+ };
64
+ }
65
+ })
66
+ .catch((err) => {
67
+ if (this.activeRun && this.activeRun.runId === runId) {
68
+ this.activeRun.status = "failed";
69
+ this.activeRun.completedAt = new Date().toISOString();
70
+ this.activeRun.error =
71
+ err instanceof Error ? err.message : String(err);
72
+ }
73
+ });
74
+ return runId;
75
+ }
76
+ }
77
+ // ── Module-scoped singleton ──────────────────────────────────────────
78
+ export const runManager = new RunManager();
79
+ //# sourceMappingURL=run-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../../src/mcp/run-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server";
2
+ /**
3
+ * Creates, configures, and connects the agent-bober MCP server.
4
+ *
5
+ * The server uses StdioServerTransport so it communicates over the
6
+ * current process's stdin/stdout. Callers must NOT write anything to
7
+ * stdout after this function is called — that channel belongs to the
8
+ * MCP JSON-RPC protocol.
9
+ *
10
+ * @param projectRoot - Absolute path to the project being served.
11
+ * Passed to tool handlers so they can operate on the right directory.
12
+ * @returns The connected Server instance.
13
+ */
14
+ export declare function createBoberMCPServer(projectRoot: string): Promise<Server>;
15
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AA6B1D;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAqFjB"}
@@ -0,0 +1,107 @@
1
+ // ── MCP Server ──────────────────────────────────────────────────────
2
+ //
3
+ // Creates and configures the agent-bober MCP server using
4
+ // @modelcontextprotocol/sdk with stdio transport.
5
+ //
6
+ // IMPORTANT: stdout is reserved for MCP JSON-RPC protocol messages.
7
+ // All diagnostic output must go to process.stderr.
8
+ import { readFile } from "node:fs/promises";
9
+ import { join, dirname } from "node:path";
10
+ import { fileURLToPath } from "node:url";
11
+ import { Server } from "@modelcontextprotocol/sdk/server";
12
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
13
+ import { ListToolsRequestSchema, CallToolRequestSchema, McpError, ErrorCode, } from "@modelcontextprotocol/sdk/types.js";
14
+ import { registerAllTools, getAllTools, getTool } from "./tools/index.js";
15
+ // ── Package version loader ──────────────────────────────────────────
16
+ const __dirname = dirname(fileURLToPath(import.meta.url));
17
+ async function loadVersion() {
18
+ try {
19
+ // dist/mcp/ → up 2 levels to repo root
20
+ const pkgPath = join(__dirname, "..", "..", "package.json");
21
+ const raw = await readFile(pkgPath, "utf-8");
22
+ const pkg = JSON.parse(raw);
23
+ return pkg.version ?? "0.0.0";
24
+ }
25
+ catch {
26
+ return "0.0.0";
27
+ }
28
+ }
29
+ // ── Server factory ──────────────────────────────────────────────────
30
+ /**
31
+ * Creates, configures, and connects the agent-bober MCP server.
32
+ *
33
+ * The server uses StdioServerTransport so it communicates over the
34
+ * current process's stdin/stdout. Callers must NOT write anything to
35
+ * stdout after this function is called — that channel belongs to the
36
+ * MCP JSON-RPC protocol.
37
+ *
38
+ * @param projectRoot - Absolute path to the project being served.
39
+ * Passed to tool handlers so they can operate on the right directory.
40
+ * @returns The connected Server instance.
41
+ */
42
+ export async function createBoberMCPServer(projectRoot) {
43
+ const version = await loadVersion();
44
+ // ── Register all tools before creating the server ────────────────
45
+ registerAllTools();
46
+ // ── Create the server ────────────────────────────────────────────
47
+ const server = new Server({
48
+ name: "agent-bober",
49
+ version,
50
+ }, {
51
+ capabilities: {
52
+ tools: {},
53
+ },
54
+ });
55
+ // ── tools/list handler ───────────────────────────────────────────
56
+ server.setRequestHandler(ListToolsRequestSchema, () => {
57
+ const tools = getAllTools().map((t) => ({
58
+ name: t.name,
59
+ description: t.description,
60
+ inputSchema: t.inputSchema,
61
+ }));
62
+ return { tools };
63
+ });
64
+ // ── tools/call handler ───────────────────────────────────────────
65
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
66
+ const { name, arguments: args } = request.params;
67
+ const tool = getTool(name);
68
+ if (!tool) {
69
+ throw new McpError(ErrorCode.MethodNotFound, `Tool not found: ${name}`);
70
+ }
71
+ try {
72
+ const result = await tool.handler(args ?? {});
73
+ return {
74
+ content: [
75
+ {
76
+ type: "text",
77
+ text: result,
78
+ },
79
+ ],
80
+ };
81
+ }
82
+ catch (err) {
83
+ // Re-throw McpError as-is so the client gets the intended error code/message
84
+ if (err instanceof McpError) {
85
+ throw err;
86
+ }
87
+ const message = err instanceof Error ? err.message : String(err);
88
+ throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${message}`);
89
+ }
90
+ });
91
+ // ── Connect stdio transport ───────────────────────────────────────
92
+ const transport = new StdioServerTransport();
93
+ await server.connect(transport);
94
+ process.stderr.write(`[agent-bober mcp] Server v${version} started (project: ${projectRoot})\n`);
95
+ // ── Graceful shutdown ────────────────────────────────────────────
96
+ const shutdown = () => {
97
+ process.stderr.write("[agent-bober mcp] Shutting down...\n");
98
+ server.close().catch(() => {
99
+ // Ignore close errors during shutdown
100
+ });
101
+ process.exit(0);
102
+ };
103
+ process.on("SIGINT", shutdown);
104
+ process.on("SIGTERM", shutdown);
105
+ return server;
106
+ }
107
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerConfigTool(): void;
2
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/config.ts"],"names":[],"mappings":"AA0EA,wBAAgB,kBAAkB,IAAI,IAAI,CA4IzC"}