agent-nuvira 1.14.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/LICENSE +21 -0
- package/README.md +891 -0
- package/dist/agent-sdk/src/agent.d.ts +118 -0
- package/dist/agent-sdk/src/agent.d.ts.map +1 -0
- package/dist/agent-sdk/src/agent.js +88 -0
- package/dist/agent-sdk/src/agent.js.map +1 -0
- package/dist/agent-sdk/src/index.d.ts +33 -0
- package/dist/agent-sdk/src/index.d.ts.map +1 -0
- package/dist/agent-sdk/src/index.js +32 -0
- package/dist/agent-sdk/src/index.js.map +1 -0
- package/dist/agent-sdk/src/register.d.ts +70 -0
- package/dist/agent-sdk/src/register.d.ts.map +1 -0
- package/dist/agent-sdk/src/register.js +181 -0
- package/dist/agent-sdk/src/register.js.map +1 -0
- package/dist/agent-sdk/src/scaffold.d.ts +50 -0
- package/dist/agent-sdk/src/scaffold.d.ts.map +1 -0
- package/dist/agent-sdk/src/scaffold.js +291 -0
- package/dist/agent-sdk/src/scaffold.js.map +1 -0
- package/dist/agent-sdk/src/testing.d.ts +187 -0
- package/dist/agent-sdk/src/testing.d.ts.map +1 -0
- package/dist/agent-sdk/src/testing.js +243 -0
- package/dist/agent-sdk/src/testing.js.map +1 -0
- package/dist/agent-sdk/src/types.d.ts +202 -0
- package/dist/agent-sdk/src/types.d.ts.map +1 -0
- package/dist/agent-sdk/src/types.js +11 -0
- package/dist/agent-sdk/src/types.js.map +1 -0
- package/dist/agents/agent.d.ts +132 -0
- package/dist/agents/agent.d.ts.map +1 -0
- package/dist/agents/agent.js +19 -0
- package/dist/agents/agent.js.map +1 -0
- package/dist/agents/agents/context-gatherer.d.ts +42 -0
- package/dist/agents/agents/context-gatherer.d.ts.map +1 -0
- package/dist/agents/agents/context-gatherer.js +366 -0
- package/dist/agents/agents/context-gatherer.js.map +1 -0
- package/dist/agents/agents/debugger.d.ts +58 -0
- package/dist/agents/agents/debugger.d.ts.map +1 -0
- package/dist/agents/agents/debugger.js +257 -0
- package/dist/agents/agents/debugger.js.map +1 -0
- package/dist/agents/agents/git-agent.d.ts +34 -0
- package/dist/agents/agents/git-agent.d.ts.map +1 -0
- package/dist/agents/agents/git-agent.js +200 -0
- package/dist/agents/agents/git-agent.js.map +1 -0
- package/dist/agents/agents/github-release-agent.d.ts +65 -0
- package/dist/agents/agents/github-release-agent.d.ts.map +1 -0
- package/dist/agents/agents/github-release-agent.js +439 -0
- package/dist/agents/agents/github-release-agent.js.map +1 -0
- package/dist/agents/agents/package-agent.d.ts +33 -0
- package/dist/agents/agents/package-agent.d.ts.map +1 -0
- package/dist/agents/agents/package-agent.js +233 -0
- package/dist/agents/agents/package-agent.js.map +1 -0
- package/dist/agents/agents/planner.d.ts +26 -0
- package/dist/agents/agents/planner.d.ts.map +1 -0
- package/dist/agents/agents/planner.js +222 -0
- package/dist/agents/agents/planner.js.map +1 -0
- package/dist/agents/agents/reviewer.d.ts +34 -0
- package/dist/agents/agents/reviewer.d.ts.map +1 -0
- package/dist/agents/agents/reviewer.js +159 -0
- package/dist/agents/agents/reviewer.js.map +1 -0
- package/dist/agents/agents/runner.d.ts +73 -0
- package/dist/agents/agents/runner.d.ts.map +1 -0
- package/dist/agents/agents/runner.js +299 -0
- package/dist/agents/agents/runner.js.map +1 -0
- package/dist/agents/agents/security-agent.d.ts +33 -0
- package/dist/agents/agents/security-agent.d.ts.map +1 -0
- package/dist/agents/agents/security-agent.js +184 -0
- package/dist/agents/agents/security-agent.js.map +1 -0
- package/dist/agents/agents/tester.d.ts +96 -0
- package/dist/agents/agents/tester.d.ts.map +1 -0
- package/dist/agents/agents/tester.js +410 -0
- package/dist/agents/agents/tester.js.map +1 -0
- package/dist/agents/agents/writer.d.ts +51 -0
- package/dist/agents/agents/writer.d.ts.map +1 -0
- package/dist/agents/agents/writer.js +384 -0
- package/dist/agents/agents/writer.js.map +1 -0
- package/dist/agents/context-vault.d.ts +49 -0
- package/dist/agents/context-vault.d.ts.map +1 -0
- package/dist/agents/context-vault.js +134 -0
- package/dist/agents/context-vault.js.map +1 -0
- package/dist/agents/orchestrator.d.ts +97 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/agents/orchestrator.js +696 -0
- package/dist/agents/orchestrator.js.map +1 -0
- package/dist/agents/utils/file-tree.d.ts +28 -0
- package/dist/agents/utils/file-tree.d.ts.map +1 -0
- package/dist/agents/utils/file-tree.js +93 -0
- package/dist/agents/utils/file-tree.js.map +1 -0
- package/dist/cli/agent.d.ts +25 -0
- package/dist/cli/agent.d.ts.map +1 -0
- package/dist/cli/agent.js +374 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/cli/benchmark.d.ts +24 -0
- package/dist/cli/benchmark.d.ts.map +1 -0
- package/dist/cli/benchmark.js +235 -0
- package/dist/cli/benchmark.js.map +1 -0
- package/dist/cli/cache.d.ts +12 -0
- package/dist/cli/cache.d.ts.map +1 -0
- package/dist/cli/cache.js +58 -0
- package/dist/cli/cache.js.map +1 -0
- package/dist/cli/chat.d.ts +37 -0
- package/dist/cli/chat.d.ts.map +1 -0
- package/dist/cli/chat.js +393 -0
- package/dist/cli/chat.js.map +1 -0
- package/dist/cli/commands.d.ts +24 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +18 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/config.d.ts +19 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +162 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/dashboard.d.ts +34 -0
- package/dist/cli/dashboard.d.ts.map +1 -0
- package/dist/cli/dashboard.js +126 -0
- package/dist/cli/dashboard.js.map +1 -0
- package/dist/cli/doctor.d.ts +68 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +585 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/edit.d.ts +11 -0
- package/dist/cli/edit.d.ts.map +1 -0
- package/dist/cli/edit.js +86 -0
- package/dist/cli/edit.js.map +1 -0
- package/dist/cli/execute.d.ts +25 -0
- package/dist/cli/execute.d.ts.map +1 -0
- package/dist/cli/execute.js +186 -0
- package/dist/cli/execute.js.map +1 -0
- package/dist/cli/federation.d.ts +31 -0
- package/dist/cli/federation.d.ts.map +1 -0
- package/dist/cli/federation.js +387 -0
- package/dist/cli/federation.js.map +1 -0
- package/dist/cli/history.d.ts +22 -0
- package/dist/cli/history.d.ts.map +1 -0
- package/dist/cli/history.js +140 -0
- package/dist/cli/history.js.map +1 -0
- package/dist/cli/init.d.ts +49 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +423 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/learn.d.ts +31 -0
- package/dist/cli/learn.d.ts.map +1 -0
- package/dist/cli/learn.js +320 -0
- package/dist/cli/learn.js.map +1 -0
- package/dist/cli/memory.d.ts +38 -0
- package/dist/cli/memory.d.ts.map +1 -0
- package/dist/cli/memory.js +295 -0
- package/dist/cli/memory.js.map +1 -0
- package/dist/cli/model-picker.d.ts +18 -0
- package/dist/cli/model-picker.d.ts.map +1 -0
- package/dist/cli/model-picker.js +225 -0
- package/dist/cli/model-picker.js.map +1 -0
- package/dist/cli/models.d.ts +11 -0
- package/dist/cli/models.d.ts.map +1 -0
- package/dist/cli/models.js +132 -0
- package/dist/cli/models.js.map +1 -0
- package/dist/cli/plan.d.ts +11 -0
- package/dist/cli/plan.d.ts.map +1 -0
- package/dist/cli/plan.js +94 -0
- package/dist/cli/plan.js.map +1 -0
- package/dist/cli/plugins.d.ts +15 -0
- package/dist/cli/plugins.d.ts.map +1 -0
- package/dist/cli/plugins.js +123 -0
- package/dist/cli/plugins.js.map +1 -0
- package/dist/cli/router.d.ts +20 -0
- package/dist/cli/router.d.ts.map +1 -0
- package/dist/cli/router.js +142 -0
- package/dist/cli/router.js.map +1 -0
- package/dist/cli/run.d.ts +22 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +110 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/sandbox.d.ts +27 -0
- package/dist/cli/sandbox.d.ts.map +1 -0
- package/dist/cli/sandbox.js +264 -0
- package/dist/cli/sandbox.js.map +1 -0
- package/dist/cli/sdk.d.ts +27 -0
- package/dist/cli/sdk.d.ts.map +1 -0
- package/dist/cli/sdk.js +204 -0
- package/dist/cli/sdk.js.map +1 -0
- package/dist/cli/stats.d.ts +18 -0
- package/dist/cli/stats.d.ts.map +1 -0
- package/dist/cli/stats.js +78 -0
- package/dist/cli/stats.js.map +1 -0
- package/dist/cli/team.d.ts +42 -0
- package/dist/cli/team.d.ts.map +1 -0
- package/dist/cli/team.js +473 -0
- package/dist/cli/team.js.map +1 -0
- package/dist/cli/workflow.d.ts +27 -0
- package/dist/cli/workflow.d.ts.map +1 -0
- package/dist/cli/workflow.js +347 -0
- package/dist/cli/workflow.js.map +1 -0
- package/dist/config/manager.d.ts +37 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +147 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/types.d.ts +53 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/context/cache.d.ts +27 -0
- package/dist/context/cache.d.ts.map +1 -0
- package/dist/context/cache.js +116 -0
- package/dist/context/cache.js.map +1 -0
- package/dist/context/history.d.ts +87 -0
- package/dist/context/history.d.ts.map +1 -0
- package/dist/context/history.js +249 -0
- package/dist/context/history.js.map +1 -0
- package/dist/context/parser.d.ts +61 -0
- package/dist/context/parser.d.ts.map +1 -0
- package/dist/context/parser.js +194 -0
- package/dist/context/parser.js.map +1 -0
- package/dist/federation/client.d.ts +49 -0
- package/dist/federation/client.d.ts.map +1 -0
- package/dist/federation/client.js +239 -0
- package/dist/federation/client.js.map +1 -0
- package/dist/federation/protocol.d.ts +155 -0
- package/dist/federation/protocol.d.ts.map +1 -0
- package/dist/federation/protocol.js +57 -0
- package/dist/federation/protocol.js.map +1 -0
- package/dist/federation/server.d.ts +25 -0
- package/dist/federation/server.d.ts.map +1 -0
- package/dist/federation/server.js +401 -0
- package/dist/federation/server.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/inference/factory.d.ts +20 -0
- package/dist/inference/factory.d.ts.map +1 -0
- package/dist/inference/factory.js +46 -0
- package/dist/inference/factory.js.map +1 -0
- package/dist/inference/gemini-adapter.d.ts +17 -0
- package/dist/inference/gemini-adapter.d.ts.map +1 -0
- package/dist/inference/gemini-adapter.js +176 -0
- package/dist/inference/gemini-adapter.js.map +1 -0
- package/dist/inference/groq-adapter.d.ts +17 -0
- package/dist/inference/groq-adapter.d.ts.map +1 -0
- package/dist/inference/groq-adapter.js +103 -0
- package/dist/inference/groq-adapter.js.map +1 -0
- package/dist/inference/interface.d.ts +49 -0
- package/dist/inference/interface.d.ts.map +1 -0
- package/dist/inference/interface.js +2 -0
- package/dist/inference/interface.js.map +1 -0
- package/dist/inference/local-adapter.d.ts +35 -0
- package/dist/inference/local-adapter.d.ts.map +1 -0
- package/dist/inference/local-adapter.js +311 -0
- package/dist/inference/local-adapter.js.map +1 -0
- package/dist/inference/model-catalog.d.ts +53 -0
- package/dist/inference/model-catalog.d.ts.map +1 -0
- package/dist/inference/model-catalog.js +306 -0
- package/dist/inference/model-catalog.js.map +1 -0
- package/dist/inference/nim-adapter.d.ts +17 -0
- package/dist/inference/nim-adapter.d.ts.map +1 -0
- package/dist/inference/nim-adapter.js +103 -0
- package/dist/inference/nim-adapter.js.map +1 -0
- package/dist/inference/openrouter-adapter.d.ts +17 -0
- package/dist/inference/openrouter-adapter.d.ts.map +1 -0
- package/dist/inference/openrouter-adapter.js +105 -0
- package/dist/inference/openrouter-adapter.js.map +1 -0
- package/dist/inference/sse.d.ts +20 -0
- package/dist/inference/sse.d.ts.map +1 -0
- package/dist/inference/sse.js +91 -0
- package/dist/inference/sse.js.map +1 -0
- package/dist/learning/agent-stats.d.ts +109 -0
- package/dist/learning/agent-stats.d.ts.map +1 -0
- package/dist/learning/agent-stats.js +240 -0
- package/dist/learning/agent-stats.js.map +1 -0
- package/dist/learning/benchmark.d.ts +161 -0
- package/dist/learning/benchmark.d.ts.map +1 -0
- package/dist/learning/benchmark.js +589 -0
- package/dist/learning/benchmark.js.map +1 -0
- package/dist/learning/cost-tracker.d.ts +101 -0
- package/dist/learning/cost-tracker.d.ts.map +1 -0
- package/dist/learning/cost-tracker.js +224 -0
- package/dist/learning/cost-tracker.js.map +1 -0
- package/dist/learning/feedback.d.ts +88 -0
- package/dist/learning/feedback.d.ts.map +1 -0
- package/dist/learning/feedback.js +169 -0
- package/dist/learning/feedback.js.map +1 -0
- package/dist/learning/hybrid-router.d.ts +201 -0
- package/dist/learning/hybrid-router.d.ts.map +1 -0
- package/dist/learning/hybrid-router.js +450 -0
- package/dist/learning/hybrid-router.js.map +1 -0
- package/dist/learning/model-compare.d.ts +76 -0
- package/dist/learning/model-compare.d.ts.map +1 -0
- package/dist/learning/model-compare.js +252 -0
- package/dist/learning/model-compare.js.map +1 -0
- package/dist/learning/model-router.d.ts +68 -0
- package/dist/learning/model-router.d.ts.map +1 -0
- package/dist/learning/model-router.js +140 -0
- package/dist/learning/model-router.js.map +1 -0
- package/dist/learning/pattern-extractor.d.ts +99 -0
- package/dist/learning/pattern-extractor.d.ts.map +1 -0
- package/dist/learning/pattern-extractor.js +310 -0
- package/dist/learning/pattern-extractor.js.map +1 -0
- package/dist/learning/scorer.d.ts +51 -0
- package/dist/learning/scorer.d.ts.map +1 -0
- package/dist/learning/scorer.js +64 -0
- package/dist/learning/scorer.js.map +1 -0
- package/dist/learning/self-improver.d.ts +48 -0
- package/dist/learning/self-improver.d.ts.map +1 -0
- package/dist/learning/self-improver.js +161 -0
- package/dist/learning/self-improver.js.map +1 -0
- package/dist/memory/embedder.d.ts +65 -0
- package/dist/memory/embedder.d.ts.map +1 -0
- package/dist/memory/embedder.js +424 -0
- package/dist/memory/embedder.js.map +1 -0
- package/dist/memory/memory-integration.d.ts +56 -0
- package/dist/memory/memory-integration.d.ts.map +1 -0
- package/dist/memory/memory-integration.js +95 -0
- package/dist/memory/memory-integration.js.map +1 -0
- package/dist/memory/trajectory-store.d.ts +149 -0
- package/dist/memory/trajectory-store.d.ts.map +1 -0
- package/dist/memory/trajectory-store.js +476 -0
- package/dist/memory/trajectory-store.js.map +1 -0
- package/dist/memory/vector-store.d.ts +78 -0
- package/dist/memory/vector-store.d.ts.map +1 -0
- package/dist/memory/vector-store.js +186 -0
- package/dist/memory/vector-store.js.map +1 -0
- package/dist/plugins/agent-plugin.d.ts +73 -0
- package/dist/plugins/agent-plugin.d.ts.map +1 -0
- package/dist/plugins/agent-plugin.js +199 -0
- package/dist/plugins/agent-plugin.js.map +1 -0
- package/dist/plugins/registry.d.ts +61 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +67 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/sandbox/images.d.ts +31 -0
- package/dist/sandbox/images.d.ts.map +1 -0
- package/dist/sandbox/images.js +129 -0
- package/dist/sandbox/images.js.map +1 -0
- package/dist/sandbox/manager.d.ts +134 -0
- package/dist/sandbox/manager.d.ts.map +1 -0
- package/dist/sandbox/manager.js +470 -0
- package/dist/sandbox/manager.js.map +1 -0
- package/dist/sandbox/types.d.ts +113 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/sandbox/types.js +107 -0
- package/dist/sandbox/types.js.map +1 -0
- package/dist/security/scanner.d.ts +53 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +271 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/team/config.d.ts +50 -0
- package/dist/team/config.d.ts.map +1 -0
- package/dist/team/config.js +108 -0
- package/dist/team/config.js.map +1 -0
- package/dist/team/memory.d.ts +63 -0
- package/dist/team/memory.d.ts.map +1 -0
- package/dist/team/memory.js +282 -0
- package/dist/team/memory.js.map +1 -0
- package/dist/team/review.d.ts +123 -0
- package/dist/team/review.d.ts.map +1 -0
- package/dist/team/review.js +293 -0
- package/dist/team/review.js.map +1 -0
- package/dist/utils/env.d.ts +19 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +250 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +45 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/web-dashboard/server.d.ts +59 -0
- package/dist/web-dashboard/server.d.ts.map +1 -0
- package/dist/web-dashboard/server.js +418 -0
- package/dist/web-dashboard/server.js.map +1 -0
- package/dist/workflow/registry.d.ts +127 -0
- package/dist/workflow/registry.d.ts.map +1 -0
- package/dist/workflow/registry.js +482 -0
- package/dist/workflow/registry.js.map +1 -0
- package/dist/workflow/templates.d.ts +93 -0
- package/dist/workflow/templates.d.ts.map +1 -0
- package/dist/workflow/templates.js +481 -0
- package/dist/workflow/templates.js.map +1 -0
- package/package.json +78 -0
- package/src/web-dashboard/public/assets/index-B08nDkSB.css +1 -0
- package/src/web-dashboard/public/assets/index-BKL8YOFD.js +135 -0
- package/src/web-dashboard/public/assets/index-BKL8YOFD.js.map +1 -0
- package/src/web-dashboard/public/index.html +13 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team Memory — Git-synced shared memory for team collaboration.
|
|
3
|
+
*
|
|
4
|
+
* The team memory is stored in a git repository at `~/.buff/team/` (or a
|
|
5
|
+
* configurable path). It contains:
|
|
6
|
+
*
|
|
7
|
+
* trajectories/ — Shared agent execution trajectories (JSON)
|
|
8
|
+
* patterns/ — Project-level coding patterns (JSON)
|
|
9
|
+
* templates/ — Team workflow templates (JSON)
|
|
10
|
+
*
|
|
11
|
+
* Commands:
|
|
12
|
+
* buff team join <repo-url> — Clone the team repo
|
|
13
|
+
* buff team sync — Pull latest + push local changes
|
|
14
|
+
* buff team share — Share local trajectories with team
|
|
15
|
+
*
|
|
16
|
+
* The sync operation:
|
|
17
|
+
* 1. Pull latest from remote
|
|
18
|
+
* 2. Apply local changes on top
|
|
19
|
+
* 3. Commit new trajectories/patterns
|
|
20
|
+
* 4. Push to remote
|
|
21
|
+
*
|
|
22
|
+
* Authentication is via Git credentials (SSH key or git-credential helper).
|
|
23
|
+
*/
|
|
24
|
+
export interface TeamMemoryStats {
|
|
25
|
+
/** Number of shared trajectories */
|
|
26
|
+
trajectoryCount: number;
|
|
27
|
+
/** Number of shared patterns */
|
|
28
|
+
patternCount: number;
|
|
29
|
+
/** Number of shared workflow templates */
|
|
30
|
+
templateCount: number;
|
|
31
|
+
/** Whether git is configured */
|
|
32
|
+
gitConfigured: boolean;
|
|
33
|
+
/** Current git branch */
|
|
34
|
+
branch: string;
|
|
35
|
+
/** Uncommitted changes count */
|
|
36
|
+
uncommittedChanges: number;
|
|
37
|
+
/** Last sync time */
|
|
38
|
+
lastSync: string | null;
|
|
39
|
+
}
|
|
40
|
+
export interface SyncResult {
|
|
41
|
+
pulled: number;
|
|
42
|
+
pushed: number;
|
|
43
|
+
conflicts: string[];
|
|
44
|
+
errors: string[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Initialize the team memory directory as a git repository.
|
|
48
|
+
* Called by `buff team join` or `buff team init`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function initTeamMemory(repoUrl?: string, cwd?: string): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Sync team memory with remote: pull latest, push local changes.
|
|
53
|
+
*/
|
|
54
|
+
export declare function syncTeamMemory(cwd?: string): Promise<SyncResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Share local trajectories with the team by copying them to the team memory directory.
|
|
57
|
+
*/
|
|
58
|
+
export declare function shareTrajectories(cwd?: string): Promise<number>;
|
|
59
|
+
/**
|
|
60
|
+
* Get team memory statistics.
|
|
61
|
+
*/
|
|
62
|
+
export declare function getTeamMemoryStats(cwd?: string): TeamMemoryStats;
|
|
63
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/team/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAYH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAwDD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDlF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA+DtE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,eAAe,CA2ChE"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team Memory — Git-synced shared memory for team collaboration.
|
|
3
|
+
*
|
|
4
|
+
* The team memory is stored in a git repository at `~/.buff/team/` (or a
|
|
5
|
+
* configurable path). It contains:
|
|
6
|
+
*
|
|
7
|
+
* trajectories/ — Shared agent execution trajectories (JSON)
|
|
8
|
+
* patterns/ — Project-level coding patterns (JSON)
|
|
9
|
+
* templates/ — Team workflow templates (JSON)
|
|
10
|
+
*
|
|
11
|
+
* Commands:
|
|
12
|
+
* buff team join <repo-url> — Clone the team repo
|
|
13
|
+
* buff team sync — Pull latest + push local changes
|
|
14
|
+
* buff team share — Share local trajectories with team
|
|
15
|
+
*
|
|
16
|
+
* The sync operation:
|
|
17
|
+
* 1. Pull latest from remote
|
|
18
|
+
* 2. Apply local changes on top
|
|
19
|
+
* 3. Commit new trajectories/patterns
|
|
20
|
+
* 4. Push to remote
|
|
21
|
+
*
|
|
22
|
+
* Authentication is via Git credentials (SSH key or git-credential helper).
|
|
23
|
+
*/
|
|
24
|
+
import { execSync } from 'node:child_process';
|
|
25
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, copyFileSync } from 'node:fs';
|
|
26
|
+
import { join } from 'node:path';
|
|
27
|
+
import { homedir } from 'node:os';
|
|
28
|
+
import { logger } from '../utils/logger.js';
|
|
29
|
+
import { getTeamConfig } from './config.js';
|
|
30
|
+
// ─── Paths ──────────────────────────────────────────────────────────────────
|
|
31
|
+
function getTeamDir(cwd) {
|
|
32
|
+
const config = getTeamConfig(cwd);
|
|
33
|
+
const baseDir = config.localPath || join(homedir(), '.buff', 'team');
|
|
34
|
+
return baseDir;
|
|
35
|
+
}
|
|
36
|
+
function ensureDir(dir) {
|
|
37
|
+
if (!existsSync(dir)) {
|
|
38
|
+
mkdirSync(dir, { recursive: true });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function getTrajectoriesDir(cwd) {
|
|
42
|
+
return join(getTeamDir(cwd), 'trajectories');
|
|
43
|
+
}
|
|
44
|
+
function getPatternsDir(cwd) {
|
|
45
|
+
return join(getTeamDir(cwd), 'patterns');
|
|
46
|
+
}
|
|
47
|
+
function getTemplatesDir(cwd) {
|
|
48
|
+
return join(getTeamDir(cwd), 'templates');
|
|
49
|
+
}
|
|
50
|
+
// ─── Git Operations ─────────────────────────────────────────────────────────
|
|
51
|
+
function gitExec(args, cwd) {
|
|
52
|
+
const dir = getTeamDir(cwd);
|
|
53
|
+
try {
|
|
54
|
+
return execSync(`git ${args.join(' ')}`, {
|
|
55
|
+
cwd: dir,
|
|
56
|
+
encoding: 'utf-8',
|
|
57
|
+
stdio: 'pipe',
|
|
58
|
+
timeout: 60_000,
|
|
59
|
+
}).trim();
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
const error = err;
|
|
63
|
+
throw new Error(error.stderr?.trim() || error.message || 'Git operation failed');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function isGitRepo(cwd) {
|
|
67
|
+
try {
|
|
68
|
+
gitExec(['rev-parse', '--git-dir'], cwd);
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// ─── Team Memory ────────────────────────────────────────────────────────────
|
|
76
|
+
/**
|
|
77
|
+
* Initialize the team memory directory as a git repository.
|
|
78
|
+
* Called by `buff team join` or `buff team init`.
|
|
79
|
+
*/
|
|
80
|
+
export async function initTeamMemory(repoUrl, cwd) {
|
|
81
|
+
const dir = getTeamDir(cwd);
|
|
82
|
+
ensureDir(dir);
|
|
83
|
+
if (repoUrl) {
|
|
84
|
+
// Clone existing team repo
|
|
85
|
+
logger.info(`Cloning team repository: ${repoUrl}`);
|
|
86
|
+
try {
|
|
87
|
+
execSync(`git clone "${repoUrl}" "${dir}"`, {
|
|
88
|
+
encoding: 'utf-8',
|
|
89
|
+
stdio: 'pipe',
|
|
90
|
+
timeout: 120_000,
|
|
91
|
+
});
|
|
92
|
+
logger.success(`Team repo cloned to ${dir}`);
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
const error = err;
|
|
96
|
+
if (error.stderr?.includes('already exists') || error.message?.includes('already exists')) {
|
|
97
|
+
logger.info('Team directory already exists. Run `buff team sync` to update.');
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
throw new Error(`Failed to clone team repo: ${error.stderr?.slice(0, 300) || error.message}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Initialize new empty team repo
|
|
106
|
+
ensureDir(join(dir, 'trajectories'));
|
|
107
|
+
ensureDir(join(dir, 'patterns'));
|
|
108
|
+
ensureDir(join(dir, 'templates'));
|
|
109
|
+
// Create .gitkeep files
|
|
110
|
+
writeFileSync(join(dir, 'trajectories', '.gitkeep'), '');
|
|
111
|
+
writeFileSync(join(dir, 'patterns', '.gitkeep'), '');
|
|
112
|
+
writeFileSync(join(dir, 'templates', '.gitkeep'), '');
|
|
113
|
+
// Create a README for the team repo
|
|
114
|
+
writeFileSync(join(dir, 'README.md'), '# Agent-Baba-D Team Memory\n\n' +
|
|
115
|
+
'This repository stores shared agent execution trajectories, coding patterns,\n' +
|
|
116
|
+
'and workflow templates for the team.\n\n' +
|
|
117
|
+
'Managed by the `buff team` CLI commands.\n');
|
|
118
|
+
// Initialize git
|
|
119
|
+
execSync('git init', { cwd: dir, encoding: 'utf-8', stdio: 'pipe' });
|
|
120
|
+
execSync('git add -A', { cwd: dir, encoding: 'utf-8', stdio: 'pipe' });
|
|
121
|
+
execSync('git commit -m "chore: initialize team memory"', {
|
|
122
|
+
cwd: dir, encoding: 'utf-8', stdio: 'pipe', timeout: 30_000,
|
|
123
|
+
});
|
|
124
|
+
logger.success(`Team memory initialized at ${dir}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Sync team memory with remote: pull latest, push local changes.
|
|
129
|
+
*/
|
|
130
|
+
export async function syncTeamMemory(cwd) {
|
|
131
|
+
const result = { pulled: 0, pushed: 0, conflicts: [], errors: [] };
|
|
132
|
+
if (!isGitRepo(cwd)) {
|
|
133
|
+
throw new Error('Team memory is not a git repository. Run `buff team init` or `buff team join <repo>`.');
|
|
134
|
+
}
|
|
135
|
+
// Check for uncommitted changes
|
|
136
|
+
const status = gitExec(['status', '--porcelain'], cwd);
|
|
137
|
+
const hasChanges = status.trim().length > 0;
|
|
138
|
+
// Commit any pending changes
|
|
139
|
+
if (hasChanges) {
|
|
140
|
+
gitExec(['add', '-A'], cwd);
|
|
141
|
+
gitExec(['commit', '-m', `sync: team memory update ${new Date().toISOString().slice(0, 10)}`], cwd);
|
|
142
|
+
result.pushed = 1;
|
|
143
|
+
}
|
|
144
|
+
// Check if remote is configured
|
|
145
|
+
let hasRemote = false;
|
|
146
|
+
try {
|
|
147
|
+
gitExec(['remote', '-v'], cwd);
|
|
148
|
+
hasRemote = true;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// No remote configured — local-only mode
|
|
152
|
+
logger.info('No remote configured. Team memory is local-only.');
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
if (hasRemote) {
|
|
156
|
+
// Get current branch
|
|
157
|
+
const branch = gitExec(['rev-parse', '--abbrev-ref', 'HEAD'], cwd);
|
|
158
|
+
try {
|
|
159
|
+
// Pull latest
|
|
160
|
+
logger.info('Pulling latest team memory...');
|
|
161
|
+
gitExec(['pull', '--rebase', 'origin', branch], cwd);
|
|
162
|
+
result.pulled = 1;
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
166
|
+
if (msg.includes('conflict') || msg.includes('CONFLICT')) {
|
|
167
|
+
result.conflicts.push(msg.slice(0, 200));
|
|
168
|
+
logger.error('Sync conflicts detected. Resolve them manually in the team directory.');
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
result.errors.push(msg.slice(0, 200));
|
|
172
|
+
logger.warn(`Pull failed: ${msg.slice(0, 200)}`);
|
|
173
|
+
}
|
|
174
|
+
// Push
|
|
175
|
+
if (hasChanges) {
|
|
176
|
+
try {
|
|
177
|
+
logger.info('Pushing team memory updates...');
|
|
178
|
+
gitExec(['push', 'origin', branch], cwd);
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
182
|
+
result.errors.push(msg.slice(0, 200));
|
|
183
|
+
logger.warn(`Push failed: ${msg.slice(0, 200)}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Share local trajectories with the team by copying them to the team memory directory.
|
|
191
|
+
*/
|
|
192
|
+
export async function shareTrajectories(cwd) {
|
|
193
|
+
const teamDir = getTeamDir(cwd);
|
|
194
|
+
const trajectoriesDir = getTrajectoriesDir(cwd);
|
|
195
|
+
ensureDir(trajectoriesDir);
|
|
196
|
+
// Read local trajectories
|
|
197
|
+
const localTrajDir = join(homedir(), '.buff', 'memory');
|
|
198
|
+
if (!existsSync(localTrajDir)) {
|
|
199
|
+
logger.info('No local trajectories found to share.');
|
|
200
|
+
return 0;
|
|
201
|
+
}
|
|
202
|
+
const files = readdirSync(localTrajDir).filter((f) => f.endsWith('.json') || f.endsWith('.trajectory.json'));
|
|
203
|
+
let shared = 0;
|
|
204
|
+
for (const file of files) {
|
|
205
|
+
const src = join(localTrajDir, file);
|
|
206
|
+
const dst = join(trajectoriesDir, file);
|
|
207
|
+
// Skip if already exists and is identical
|
|
208
|
+
if (existsSync(dst)) {
|
|
209
|
+
const srcContent = readFileSync(src, 'utf-8');
|
|
210
|
+
const dstContent = readFileSync(dst, 'utf-8');
|
|
211
|
+
if (srcContent === dstContent)
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
copyFileSync(src, dst);
|
|
215
|
+
shared++;
|
|
216
|
+
}
|
|
217
|
+
// Also share patterns
|
|
218
|
+
const localPatternDir = join(localTrajDir, 'patterns');
|
|
219
|
+
if (existsSync(localPatternDir)) {
|
|
220
|
+
const patternFiles = readdirSync(localPatternDir).filter((f) => f.endsWith('.json'));
|
|
221
|
+
const patternsDir = getPatternsDir(cwd);
|
|
222
|
+
ensureDir(patternsDir);
|
|
223
|
+
for (const file of patternFiles) {
|
|
224
|
+
const src = join(localPatternDir, file);
|
|
225
|
+
const dst = join(patternsDir, file);
|
|
226
|
+
copyFileSync(src, dst);
|
|
227
|
+
shared++;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (shared > 0) {
|
|
231
|
+
logger.success(`Shared ${shared} file(s) with team memory. Run \`buff team sync\` to publish.`);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
logger.info('All local trajectories already in sync with team memory.');
|
|
235
|
+
}
|
|
236
|
+
return shared;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Get team memory statistics.
|
|
240
|
+
*/
|
|
241
|
+
export function getTeamMemoryStats(cwd) {
|
|
242
|
+
const dir = getTeamDir(cwd);
|
|
243
|
+
const trajectoryCount = existsSync(getTrajectoriesDir(cwd))
|
|
244
|
+
? readdirSync(getTrajectoriesDir(cwd)).filter((f) => f.endsWith('.json')).length
|
|
245
|
+
: 0;
|
|
246
|
+
const patternCount = existsSync(getPatternsDir(cwd))
|
|
247
|
+
? readdirSync(getPatternsDir(cwd)).filter((f) => f.endsWith('.json')).length
|
|
248
|
+
: 0;
|
|
249
|
+
const templateCount = existsSync(getTemplatesDir(cwd))
|
|
250
|
+
? readdirSync(getTemplatesDir(cwd)).filter((f) => f.endsWith('.json')).length
|
|
251
|
+
: 0;
|
|
252
|
+
let gitConfigured = false;
|
|
253
|
+
let branch = 'N/A';
|
|
254
|
+
let uncommittedChanges = 0;
|
|
255
|
+
let lastSync = null;
|
|
256
|
+
if (existsSync(dir) && isGitRepo(cwd)) {
|
|
257
|
+
gitConfigured = true;
|
|
258
|
+
try {
|
|
259
|
+
branch = gitExec(['rev-parse', '--abbrev-ref', 'HEAD'], cwd);
|
|
260
|
+
}
|
|
261
|
+
catch { /* */ }
|
|
262
|
+
try {
|
|
263
|
+
const status = gitExec(['status', '--porcelain'], cwd);
|
|
264
|
+
uncommittedChanges = status.trim() ? status.split('\n').length : 0;
|
|
265
|
+
}
|
|
266
|
+
catch { /* */ }
|
|
267
|
+
try {
|
|
268
|
+
lastSync = gitExec(['log', '-1', '--format=%ci'], cwd);
|
|
269
|
+
}
|
|
270
|
+
catch { /* */ }
|
|
271
|
+
}
|
|
272
|
+
return {
|
|
273
|
+
trajectoryCount,
|
|
274
|
+
patternCount,
|
|
275
|
+
templateCount,
|
|
276
|
+
gitConfigured,
|
|
277
|
+
branch,
|
|
278
|
+
uncommittedChanges,
|
|
279
|
+
lastSync,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/team/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team Review — Review workflow (agent PR → review → merge).
|
|
3
|
+
*
|
|
4
|
+
* The review workflow enables team members to review agent-generated changes
|
|
5
|
+
* before applying them. It mimics a simplified PR workflow:
|
|
6
|
+
*
|
|
7
|
+
* 1. PR Creation: Agent proposes changes → saved as a "review bundle"
|
|
8
|
+
* 2. Review: Team member reviews the proposed changes
|
|
9
|
+
* 3. Merge: Approved changes are applied to the working directory
|
|
10
|
+
*
|
|
11
|
+
* Review bundles are stored in ~/.buff/team/reviews/ and can be shared
|
|
12
|
+
* via git (if team memory is set up) or locally.
|
|
13
|
+
*
|
|
14
|
+
* Each bundle contains:
|
|
15
|
+
* - Metadata (author, timestamp, goal, provider)
|
|
16
|
+
* - Proposed file changes (path, original, new content)
|
|
17
|
+
* - Review comments (status, feedback)
|
|
18
|
+
*/
|
|
19
|
+
/** Status of a review */
|
|
20
|
+
export type ReviewStatus = 'pending' | 'approved' | 'changes-requested' | 'merged' | 'rejected';
|
|
21
|
+
/** A single file change in a review bundle */
|
|
22
|
+
export interface ReviewFileChange {
|
|
23
|
+
path: string;
|
|
24
|
+
originalContent?: string;
|
|
25
|
+
newContent?: string;
|
|
26
|
+
status: 'created' | 'modified' | 'deleted';
|
|
27
|
+
}
|
|
28
|
+
/** A review comment */
|
|
29
|
+
export interface ReviewComment {
|
|
30
|
+
reviewer: string;
|
|
31
|
+
status: 'approve' | 'request-changes' | 'comment';
|
|
32
|
+
comment: string;
|
|
33
|
+
timestamp: number;
|
|
34
|
+
}
|
|
35
|
+
/** A complete review bundle */
|
|
36
|
+
export interface ReviewBundle {
|
|
37
|
+
/** Unique review ID */
|
|
38
|
+
id: string;
|
|
39
|
+
/** Title/summary of the proposed changes */
|
|
40
|
+
title: string;
|
|
41
|
+
/** The original user goal that produced these changes */
|
|
42
|
+
goal: string;
|
|
43
|
+
/** Author (git user or hostname) */
|
|
44
|
+
author: string;
|
|
45
|
+
/** Current review status */
|
|
46
|
+
status: ReviewStatus;
|
|
47
|
+
/** When the bundle was created */
|
|
48
|
+
createdAt: number;
|
|
49
|
+
/** Provider used */
|
|
50
|
+
provider: string;
|
|
51
|
+
/** Model used */
|
|
52
|
+
model: string;
|
|
53
|
+
/** The proposed file changes */
|
|
54
|
+
changes: ReviewFileChange[];
|
|
55
|
+
/** Review comments */
|
|
56
|
+
comments: ReviewComment[];
|
|
57
|
+
/** Execution summary from the orchestrator */
|
|
58
|
+
summary?: string;
|
|
59
|
+
/** Tags for categorization */
|
|
60
|
+
tags: string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create a new review bundle from proposed file changes.
|
|
64
|
+
* Typically called after an agent execution to capture the proposed changes
|
|
65
|
+
* for review before applying them.
|
|
66
|
+
*
|
|
67
|
+
* @param title — Short title for the review
|
|
68
|
+
* @param goal — The original goal
|
|
69
|
+
* @param changes — Proposed file changes
|
|
70
|
+
* @param options — Optional metadata
|
|
71
|
+
* @returns The created ReviewBundle
|
|
72
|
+
*/
|
|
73
|
+
export declare function createReview(title: string, goal: string, changes: ReviewFileChange[], options?: {
|
|
74
|
+
provider?: string;
|
|
75
|
+
model?: string;
|
|
76
|
+
summary?: string;
|
|
77
|
+
author?: string;
|
|
78
|
+
tags?: string[];
|
|
79
|
+
}): ReviewBundle;
|
|
80
|
+
/**
|
|
81
|
+
* Load a review bundle by ID.
|
|
82
|
+
*/
|
|
83
|
+
export declare function getReview(id: string): ReviewBundle | null;
|
|
84
|
+
/**
|
|
85
|
+
* List all review bundles, sorted by recency.
|
|
86
|
+
*/
|
|
87
|
+
export declare function listReviews(limit?: number): ReviewBundle[];
|
|
88
|
+
/**
|
|
89
|
+
* Add a review comment to a bundle.
|
|
90
|
+
*/
|
|
91
|
+
export declare function addReviewComment(id: string, reviewer: string, status: 'approve' | 'request-changes' | 'comment', comment: string): ReviewBundle | null;
|
|
92
|
+
/**
|
|
93
|
+
* Merge a review bundle — apply approved changes to the working directory.
|
|
94
|
+
*
|
|
95
|
+
* @param id — Review bundle ID
|
|
96
|
+
* @param workingDir — Working directory to apply changes to (default: process.cwd())
|
|
97
|
+
* @returns The number of files changed
|
|
98
|
+
*/
|
|
99
|
+
export declare function mergeReview(id: string, workingDir?: string): number;
|
|
100
|
+
/**
|
|
101
|
+
* Reject a review bundle.
|
|
102
|
+
*/
|
|
103
|
+
export declare function rejectReview(id: string, reason?: string): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Create a review bundle from the current orchestrator result.
|
|
106
|
+
* This captures all file changes proposed by the agents into a review.
|
|
107
|
+
*
|
|
108
|
+
* @param goal — The original goal
|
|
109
|
+
* @param fileChanges — The proposed file changes from the orchestrator
|
|
110
|
+
* @param summary — Execution summary
|
|
111
|
+
* @returns The created ReviewBundle
|
|
112
|
+
*/
|
|
113
|
+
export declare function createReviewFromResult(goal: string, fileChanges: Array<{
|
|
114
|
+
path: string;
|
|
115
|
+
originalContent?: string;
|
|
116
|
+
newContent?: string;
|
|
117
|
+
status: string;
|
|
118
|
+
}>, summary?: string, options?: {
|
|
119
|
+
provider?: string;
|
|
120
|
+
model?: string;
|
|
121
|
+
author?: string;
|
|
122
|
+
}): ReviewBundle;
|
|
123
|
+
//# sourceMappingURL=review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/team/review.ts"],"names":[],"mappings":"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"}
|