octo-vec 1.0.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/README.md +646 -0
- package/core/prompts/architect.md +124 -0
- package/core/prompts/ba.md +117 -0
- package/core/prompts/backend.md +154 -0
- package/core/prompts/compliance.md +127 -0
- package/core/prompts/dataanalyst.md +126 -0
- package/core/prompts/dataengineer.md +155 -0
- package/core/prompts/dba.md +155 -0
- package/core/prompts/designer.md +145 -0
- package/core/prompts/dev.md +148 -0
- package/core/prompts/devops.md +127 -0
- package/core/prompts/frontend.md +151 -0
- package/core/prompts/mlengineer.md +156 -0
- package/core/prompts/mobile.md +155 -0
- package/core/prompts/pm.md +182 -0
- package/core/prompts/productowner.md +122 -0
- package/core/prompts/qa.md +135 -0
- package/core/prompts/releasemanager.md +138 -0
- package/core/prompts/researcher.md +122 -0
- package/core/prompts/scrummaster.md +125 -0
- package/core/prompts/security.md +127 -0
- package/core/prompts/sre.md +141 -0
- package/core/prompts/support.md +138 -0
- package/core/prompts/techwriter.md +123 -0
- package/core/roster.json +1161 -0
- package/dashboard/dist/assets/index--L-aFRgh.css +1 -0
- package/dashboard/dist/assets/index-BoOVmAFf.js +523 -0
- package/dashboard/dist/icons/integrations/gitleaks.svg +6 -0
- package/dashboard/dist/icons/integrations/searxng.svg +5 -0
- package/dashboard/dist/icons/integrations/semgrep.svg +4 -0
- package/dashboard/dist/icons/integrations/slack.svg +6 -0
- package/dashboard/dist/icons/integrations/sonarqube.svg +5 -0
- package/dashboard/dist/icons/integrations/telegram.svg +4 -0
- package/dashboard/dist/icons/integrations/trivy.svg +5 -0
- package/dashboard/dist/icons/providers/anthropic.svg +1 -0
- package/dashboard/dist/icons/providers/antigravity.svg +1 -0
- package/dashboard/dist/icons/providers/azure.svg +1 -0
- package/dashboard/dist/icons/providers/bedrock.svg +1 -0
- package/dashboard/dist/icons/providers/cerebras.svg +1 -0
- package/dashboard/dist/icons/providers/chatglm.svg +1 -0
- package/dashboard/dist/icons/providers/codex.svg +1 -0
- package/dashboard/dist/icons/providers/gemini.svg +1 -0
- package/dashboard/dist/icons/providers/githubcopilot.svg +1 -0
- package/dashboard/dist/icons/providers/googlecloud.svg +1 -0
- package/dashboard/dist/icons/providers/groq.svg +1 -0
- package/dashboard/dist/icons/providers/huggingface.svg +1 -0
- package/dashboard/dist/icons/providers/kimi.svg +1 -0
- package/dashboard/dist/icons/providers/minimax.svg +1 -0
- package/dashboard/dist/icons/providers/mistral.svg +1 -0
- package/dashboard/dist/icons/providers/openai.svg +1 -0
- package/dashboard/dist/icons/providers/openrouter.svg +1 -0
- package/dashboard/dist/icons/providers/vercel.svg +1 -0
- package/dashboard/dist/icons/providers/xai.svg +1 -0
- package/dashboard/dist/index.html +17 -0
- package/dist/agents/pmAgent.d.ts +40 -0
- package/dist/agents/pmAgent.d.ts.map +1 -0
- package/dist/agents/pmAgent.js +181 -0
- package/dist/agents/pmAgent.js.map +1 -0
- package/dist/ar/baseSpecialist.d.ts +36 -0
- package/dist/ar/baseSpecialist.d.ts.map +1 -0
- package/dist/ar/baseSpecialist.js +292 -0
- package/dist/ar/baseSpecialist.js.map +1 -0
- package/dist/ar/promptLoader.d.ts +10 -0
- package/dist/ar/promptLoader.d.ts.map +1 -0
- package/dist/ar/promptLoader.js +22 -0
- package/dist/ar/promptLoader.js.map +1 -0
- package/dist/ar/registry.d.ts +12 -0
- package/dist/ar/registry.d.ts.map +1 -0
- package/dist/ar/registry.js +22 -0
- package/dist/ar/registry.js.map +1 -0
- package/dist/ar/roster.d.ts +104 -0
- package/dist/ar/roster.d.ts.map +1 -0
- package/dist/ar/roster.js +245 -0
- package/dist/ar/roster.js.map +1 -0
- package/dist/ar/toolProfiles.d.ts +18 -0
- package/dist/ar/toolProfiles.d.ts.map +1 -0
- package/dist/ar/toolProfiles.js +89 -0
- package/dist/ar/toolProfiles.js.map +1 -0
- package/dist/atp/agentGroups.d.ts +39 -0
- package/dist/atp/agentGroups.d.ts.map +1 -0
- package/dist/atp/agentGroups.js +109 -0
- package/dist/atp/agentGroups.js.map +1 -0
- package/dist/atp/agentInterrupt.d.ts +31 -0
- package/dist/atp/agentInterrupt.d.ts.map +1 -0
- package/dist/atp/agentInterrupt.js +51 -0
- package/dist/atp/agentInterrupt.js.map +1 -0
- package/dist/atp/agentMessageQueue.d.ts +74 -0
- package/dist/atp/agentMessageQueue.d.ts.map +1 -0
- package/dist/atp/agentMessageQueue.js +218 -0
- package/dist/atp/agentMessageQueue.js.map +1 -0
- package/dist/atp/agentRuntime.d.ts +67 -0
- package/dist/atp/agentRuntime.d.ts.map +1 -0
- package/dist/atp/agentRuntime.js +279 -0
- package/dist/atp/agentRuntime.js.map +1 -0
- package/dist/atp/agentStreamBus.d.ts +35 -0
- package/dist/atp/agentStreamBus.d.ts.map +1 -0
- package/dist/atp/agentStreamBus.js +159 -0
- package/dist/atp/agentStreamBus.js.map +1 -0
- package/dist/atp/agentToolConfig.d.ts +38 -0
- package/dist/atp/agentToolConfig.d.ts.map +1 -0
- package/dist/atp/agentToolConfig.js +225 -0
- package/dist/atp/agentToolConfig.js.map +1 -0
- package/dist/atp/chatLog.d.ts +34 -0
- package/dist/atp/chatLog.d.ts.map +1 -0
- package/dist/atp/chatLog.js +59 -0
- package/dist/atp/chatLog.js.map +1 -0
- package/dist/atp/codexAuth.d.ts +6 -0
- package/dist/atp/codexAuth.d.ts.map +1 -0
- package/dist/atp/codexAuth.js +44 -0
- package/dist/atp/codexAuth.js.map +1 -0
- package/dist/atp/database.d.ts +54 -0
- package/dist/atp/database.d.ts.map +1 -0
- package/dist/atp/database.js +323 -0
- package/dist/atp/database.js.map +1 -0
- package/dist/atp/eventLog.d.ts +12 -0
- package/dist/atp/eventLog.d.ts.map +1 -0
- package/dist/atp/eventLog.js +60 -0
- package/dist/atp/eventLog.js.map +1 -0
- package/dist/atp/inboxLoop.d.ts +72 -0
- package/dist/atp/inboxLoop.d.ts.map +1 -0
- package/dist/atp/inboxLoop.js +482 -0
- package/dist/atp/inboxLoop.js.map +1 -0
- package/dist/atp/llmDebug.d.ts +18 -0
- package/dist/atp/llmDebug.d.ts.map +1 -0
- package/dist/atp/llmDebug.js +97 -0
- package/dist/atp/llmDebug.js.map +1 -0
- package/dist/atp/messageDebouncer.d.ts +34 -0
- package/dist/atp/messageDebouncer.d.ts.map +1 -0
- package/dist/atp/messageDebouncer.js +60 -0
- package/dist/atp/messageDebouncer.js.map +1 -0
- package/dist/atp/messageQueue.d.ts +17 -0
- package/dist/atp/messageQueue.d.ts.map +1 -0
- package/dist/atp/messageQueue.js +69 -0
- package/dist/atp/messageQueue.js.map +1 -0
- package/dist/atp/modelConfig.d.ts +46 -0
- package/dist/atp/modelConfig.d.ts.map +1 -0
- package/dist/atp/modelConfig.js +232 -0
- package/dist/atp/modelConfig.js.map +1 -0
- package/dist/atp/models.d.ts +87 -0
- package/dist/atp/models.d.ts.map +1 -0
- package/dist/atp/models.js +45 -0
- package/dist/atp/models.js.map +1 -0
- package/dist/atp/postTaskHooks.d.ts +21 -0
- package/dist/atp/postTaskHooks.d.ts.map +1 -0
- package/dist/atp/postTaskHooks.js +89 -0
- package/dist/atp/postTaskHooks.js.map +1 -0
- package/dist/atp/tokenTracker.d.ts +46 -0
- package/dist/atp/tokenTracker.d.ts.map +1 -0
- package/dist/atp/tokenTracker.js +120 -0
- package/dist/atp/tokenTracker.js.map +1 -0
- package/dist/channels/activeChannel.d.ts +14 -0
- package/dist/channels/activeChannel.d.ts.map +1 -0
- package/dist/channels/activeChannel.js +18 -0
- package/dist/channels/activeChannel.js.map +1 -0
- package/dist/channels/channelConfig.d.ts +61 -0
- package/dist/channels/channelConfig.d.ts.map +1 -0
- package/dist/channels/channelConfig.js +130 -0
- package/dist/channels/channelConfig.js.map +1 -0
- package/dist/channels/channelManager.d.ts +22 -0
- package/dist/channels/channelManager.d.ts.map +1 -0
- package/dist/channels/channelManager.js +77 -0
- package/dist/channels/channelManager.js.map +1 -0
- package/dist/channels/discord.d.ts +24 -0
- package/dist/channels/discord.d.ts.map +1 -0
- package/dist/channels/discord.js +276 -0
- package/dist/channels/discord.js.map +1 -0
- package/dist/channels/slack.d.ts +25 -0
- package/dist/channels/slack.d.ts.map +1 -0
- package/dist/channels/slack.js +313 -0
- package/dist/channels/slack.js.map +1 -0
- package/dist/channels/telegram.d.ts +20 -0
- package/dist/channels/telegram.d.ts.map +1 -0
- package/dist/channels/telegram.js +273 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/channels/types.d.ts +12 -0
- package/dist/channels/types.d.ts.map +1 -0
- package/dist/channels/types.js +5 -0
- package/dist/channels/types.js.map +1 -0
- package/dist/config.d.ts +82 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +144 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard/security.d.ts +68 -0
- package/dist/dashboard/security.d.ts.map +1 -0
- package/dist/dashboard/security.js +178 -0
- package/dist/dashboard/security.js.map +1 -0
- package/dist/dashboard/securityHelpers.d.ts +10 -0
- package/dist/dashboard/securityHelpers.d.ts.map +1 -0
- package/dist/dashboard/securityHelpers.js +22 -0
- package/dist/dashboard/securityHelpers.js.map +1 -0
- package/dist/dashboard/server.d.ts +18 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +3207 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/flows/codeScanFlow.d.ts +14 -0
- package/dist/flows/codeScanFlow.d.ts.map +1 -0
- package/dist/flows/codeScanFlow.js +204 -0
- package/dist/flows/codeScanFlow.js.map +1 -0
- package/dist/flows/gitleaksScanFlow.d.ts +12 -0
- package/dist/flows/gitleaksScanFlow.d.ts.map +1 -0
- package/dist/flows/gitleaksScanFlow.js +205 -0
- package/dist/flows/gitleaksScanFlow.js.map +1 -0
- package/dist/flows/index.d.ts +30 -0
- package/dist/flows/index.d.ts.map +1 -0
- package/dist/flows/index.js +43 -0
- package/dist/flows/index.js.map +1 -0
- package/dist/flows/semgrepScanFlow.d.ts +13 -0
- package/dist/flows/semgrepScanFlow.d.ts.map +1 -0
- package/dist/flows/semgrepScanFlow.js +211 -0
- package/dist/flows/semgrepScanFlow.js.map +1 -0
- package/dist/flows/trivyScanFlow.d.ts +13 -0
- package/dist/flows/trivyScanFlow.d.ts.map +1 -0
- package/dist/flows/trivyScanFlow.js +198 -0
- package/dist/flows/trivyScanFlow.js.map +1 -0
- package/dist/identity.d.ts +22 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +34 -0
- package/dist/identity.js.map +1 -0
- package/dist/init.d.ts +8 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +27 -0
- package/dist/init.js.map +1 -0
- package/dist/integrations/integrationConfig.d.ts +80 -0
- package/dist/integrations/integrationConfig.d.ts.map +1 -0
- package/dist/integrations/integrationConfig.js +146 -0
- package/dist/integrations/integrationConfig.js.map +1 -0
- package/dist/mcp/mcpBridge.d.ts +36 -0
- package/dist/mcp/mcpBridge.d.ts.map +1 -0
- package/dist/mcp/mcpBridge.js +157 -0
- package/dist/mcp/mcpBridge.js.map +1 -0
- package/dist/memory/agentMemory.d.ts +32 -0
- package/dist/memory/agentMemory.d.ts.map +1 -0
- package/dist/memory/agentMemory.js +116 -0
- package/dist/memory/agentMemory.js.map +1 -0
- package/dist/memory/autoCompaction.d.ts +46 -0
- package/dist/memory/autoCompaction.d.ts.map +1 -0
- package/dist/memory/autoCompaction.js +220 -0
- package/dist/memory/autoCompaction.js.map +1 -0
- package/dist/memory/compaction.d.ts +17 -0
- package/dist/memory/compaction.d.ts.map +1 -0
- package/dist/memory/compaction.js +27 -0
- package/dist/memory/compaction.js.map +1 -0
- package/dist/memory/messageHistory.d.ts +28 -0
- package/dist/memory/messageHistory.d.ts.map +1 -0
- package/dist/memory/messageHistory.js +60 -0
- package/dist/memory/messageHistory.js.map +1 -0
- package/dist/memory/sessionLifecycle.d.ts +30 -0
- package/dist/memory/sessionLifecycle.d.ts.map +1 -0
- package/dist/memory/sessionLifecycle.js +63 -0
- package/dist/memory/sessionLifecycle.js.map +1 -0
- package/dist/migrate.d.ts +8 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +83 -0
- package/dist/migrate.js.map +1 -0
- package/dist/onboarding.d.ts +8 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +188 -0
- package/dist/onboarding.js.map +1 -0
- package/dist/tools/domain/baFileTools.d.ts +7 -0
- package/dist/tools/domain/baFileTools.d.ts.map +1 -0
- package/dist/tools/domain/baFileTools.js +46 -0
- package/dist/tools/domain/baFileTools.js.map +1 -0
- package/dist/tools/domain/baTools.d.ts +6 -0
- package/dist/tools/domain/baTools.d.ts.map +1 -0
- package/dist/tools/domain/baTools.js +160 -0
- package/dist/tools/domain/baTools.js.map +1 -0
- package/dist/tools/domain/baseSpecialistTools.d.ts +22 -0
- package/dist/tools/domain/baseSpecialistTools.d.ts.map +1 -0
- package/dist/tools/domain/baseSpecialistTools.js +183 -0
- package/dist/tools/domain/baseSpecialistTools.js.map +1 -0
- package/dist/tools/domain/devTools.d.ts +6 -0
- package/dist/tools/domain/devTools.d.ts.map +1 -0
- package/dist/tools/domain/devTools.js +191 -0
- package/dist/tools/domain/devTools.js.map +1 -0
- package/dist/tools/domain/gitTools.d.ts +36 -0
- package/dist/tools/domain/gitTools.d.ts.map +1 -0
- package/dist/tools/domain/gitTools.js +279 -0
- package/dist/tools/domain/gitTools.js.map +1 -0
- package/dist/tools/domain/qaTools.d.ts +6 -0
- package/dist/tools/domain/qaTools.d.ts.map +1 -0
- package/dist/tools/domain/qaTools.js +275 -0
- package/dist/tools/domain/qaTools.js.map +1 -0
- package/dist/tools/domain/securityFlowTools.d.ts +6 -0
- package/dist/tools/domain/securityFlowTools.d.ts.map +1 -0
- package/dist/tools/domain/securityFlowTools.js +156 -0
- package/dist/tools/domain/securityFlowTools.js.map +1 -0
- package/dist/tools/pm/employeeTools.d.ts +15 -0
- package/dist/tools/pm/employeeTools.d.ts.map +1 -0
- package/dist/tools/pm/employeeTools.js +117 -0
- package/dist/tools/pm/employeeTools.js.map +1 -0
- package/dist/tools/pm/taskTools.d.ts +31 -0
- package/dist/tools/pm/taskTools.d.ts.map +1 -0
- package/dist/tools/pm/taskTools.js +534 -0
- package/dist/tools/pm/taskTools.js.map +1 -0
- package/dist/tools/shared/dateTools.d.ts +7 -0
- package/dist/tools/shared/dateTools.d.ts.map +1 -0
- package/dist/tools/shared/dateTools.js +35 -0
- package/dist/tools/shared/dateTools.js.map +1 -0
- package/dist/tools/shared/fileTools.d.ts +33 -0
- package/dist/tools/shared/fileTools.d.ts.map +1 -0
- package/dist/tools/shared/fileTools.js +312 -0
- package/dist/tools/shared/fileTools.js.map +1 -0
- package/dist/tools/shared/memoryTools.d.ts +18 -0
- package/dist/tools/shared/memoryTools.d.ts.map +1 -0
- package/dist/tools/shared/memoryTools.js +275 -0
- package/dist/tools/shared/memoryTools.js.map +1 -0
- package/dist/tools/shared/messagingTools.d.ts +14 -0
- package/dist/tools/shared/messagingTools.d.ts.map +1 -0
- package/dist/tools/shared/messagingTools.js +95 -0
- package/dist/tools/shared/messagingTools.js.map +1 -0
- package/dist/tools/shared/webTools.d.ts +12 -0
- package/dist/tools/shared/webTools.d.ts.map +1 -0
- package/dist/tools/shared/webTools.js +140 -0
- package/dist/tools/shared/webTools.js.map +1 -0
- package/dist/tower.d.ts +8 -0
- package/dist/tower.d.ts.map +1 -0
- package/dist/tower.js +774 -0
- package/dist/tower.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseSpecialistTools.js","sourceRoot":"","sources":["../../../src/tools/domain/baseSpecialistTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devTools.d.ts","sourceRoot":"","sources":["../../../src/tools/domain/devTools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAQ7D,eAAO,MAAM,QAAQ,EAAE,SAAS,EAuL/B,CAAC"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Senior Developer domain tools — template scaffolds for the LLM to populate.
|
|
3
|
+
*/
|
|
4
|
+
import { Type } from "@mariozechner/pi-ai";
|
|
5
|
+
import { EventLog } from "../../atp/eventLog.js";
|
|
6
|
+
import { EventType } from "../../atp/models.js";
|
|
7
|
+
function ok(text) {
|
|
8
|
+
return { content: [{ type: "text", text }], details: {} };
|
|
9
|
+
}
|
|
10
|
+
export const devTools = [
|
|
11
|
+
{
|
|
12
|
+
name: "write_code",
|
|
13
|
+
label: "Write Code",
|
|
14
|
+
description: "Write code for a given feature or functionality description.",
|
|
15
|
+
parameters: Type.Object({
|
|
16
|
+
description: Type.String({ description: "What code needs to be written" }),
|
|
17
|
+
language: Type.Optional(Type.String({ description: "Programming language (default: python)" })),
|
|
18
|
+
task_id: Type.Optional(Type.String({ description: "Optional ATP task ID for tracking" })),
|
|
19
|
+
}),
|
|
20
|
+
execute: async (_, params) => {
|
|
21
|
+
const lang = params.language ?? "python";
|
|
22
|
+
EventLog.log(EventType.AGENT_TOOL_CALL, "dev", params.task_id ?? "", "Dev writing code");
|
|
23
|
+
return ok(`## CODE IMPLEMENTATION
|
|
24
|
+
|
|
25
|
+
**Task:** ${params.description}
|
|
26
|
+
**Language:** ${lang}
|
|
27
|
+
|
|
28
|
+
### Implementation Plan:
|
|
29
|
+
1. Understand the requirements and scope
|
|
30
|
+
2. Design the solution architecture
|
|
31
|
+
3. Write clean, modular code with proper separation of concerns
|
|
32
|
+
4. Add necessary error handling and input validation
|
|
33
|
+
5. Write inline documentation/comments for complex logic
|
|
34
|
+
|
|
35
|
+
### Code Structure:
|
|
36
|
+
\`\`\`${lang}
|
|
37
|
+
# [Implementation would go here based on the actual requirements]
|
|
38
|
+
# Following best practices:
|
|
39
|
+
# - Single responsibility principle
|
|
40
|
+
# - DRY (Don't Repeat Yourself)
|
|
41
|
+
# - Proper error handling
|
|
42
|
+
# - Type hints (for Python) / TypeScript types
|
|
43
|
+
# - Meaningful variable/function names
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
### Key Considerations:
|
|
47
|
+
- Edge cases handled
|
|
48
|
+
- Input validation included
|
|
49
|
+
- Error messages are descriptive
|
|
50
|
+
- Performance optimized where needed`);
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "review_code",
|
|
55
|
+
label: "Review Code",
|
|
56
|
+
description: "Review code for quality, bugs, and best practices.",
|
|
57
|
+
parameters: Type.Object({
|
|
58
|
+
code_snippet: Type.String({ description: "The code to review" }),
|
|
59
|
+
task_id: Type.Optional(Type.String({ description: "Optional ATP task ID for tracking" })),
|
|
60
|
+
}),
|
|
61
|
+
execute: async (_, params) => {
|
|
62
|
+
EventLog.log(EventType.AGENT_TOOL_CALL, "dev", params.task_id ?? "", "Dev reviewing code");
|
|
63
|
+
const preview = params.code_snippet.length > 500
|
|
64
|
+
? params.code_snippet.slice(0, 500) + "..."
|
|
65
|
+
: params.code_snippet;
|
|
66
|
+
return ok(`## CODE REVIEW REPORT
|
|
67
|
+
|
|
68
|
+
**Code Reviewed:**
|
|
69
|
+
\`\`\`
|
|
70
|
+
${preview}
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
### Review Categories:
|
|
74
|
+
|
|
75
|
+
#### 1. Correctness
|
|
76
|
+
- Logic errors: [Check for off-by-one errors, wrong conditions]
|
|
77
|
+
- Edge cases: [Null/empty inputs, boundary values]
|
|
78
|
+
- Error handling: [Exceptions caught and handled properly]
|
|
79
|
+
|
|
80
|
+
#### 2. Code Quality
|
|
81
|
+
- Readability: [Naming conventions, code clarity]
|
|
82
|
+
- Maintainability: [Modular structure, single responsibility]
|
|
83
|
+
- DRY compliance: [No unnecessary duplication]
|
|
84
|
+
|
|
85
|
+
#### 3. Performance
|
|
86
|
+
- Time complexity: [Algorithmic efficiency]
|
|
87
|
+
- Memory usage: [Unnecessary allocations]
|
|
88
|
+
- Database queries: [N+1 problems, missing indexes]
|
|
89
|
+
|
|
90
|
+
#### 4. Security
|
|
91
|
+
- Input sanitization: [SQL injection, XSS vulnerabilities]
|
|
92
|
+
- Secrets management: [No hardcoded credentials]
|
|
93
|
+
- Authentication checks: [Proper access control]
|
|
94
|
+
|
|
95
|
+
### Summary:
|
|
96
|
+
- **Critical Issues:** [List any blocking issues]
|
|
97
|
+
- **Suggestions:** [Non-blocking improvements]
|
|
98
|
+
- **Verdict:** [Approve / Request Changes]`);
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: "debug_issue",
|
|
103
|
+
label: "Debug Issue",
|
|
104
|
+
description: "Analyze and debug a reported issue or error.",
|
|
105
|
+
parameters: Type.Object({
|
|
106
|
+
error_description: Type.String({ description: "Description of the bug or error" }),
|
|
107
|
+
task_id: Type.Optional(Type.String({ description: "Optional ATP task ID for tracking" })),
|
|
108
|
+
}),
|
|
109
|
+
execute: async (_, params) => {
|
|
110
|
+
EventLog.log(EventType.AGENT_TOOL_CALL, "dev", params.task_id ?? "", "Dev debugging issue");
|
|
111
|
+
return ok(`## DEBUG ANALYSIS
|
|
112
|
+
|
|
113
|
+
**Issue:** ${params.error_description}
|
|
114
|
+
|
|
115
|
+
### 1. ROOT CAUSE ANALYSIS
|
|
116
|
+
- **Immediate Cause:** [What directly triggered the error]
|
|
117
|
+
- **Root Cause:** [Underlying design/logic issue]
|
|
118
|
+
- **Contributing Factors:** [Environment, configuration, data]
|
|
119
|
+
|
|
120
|
+
### 2. REPRODUCTION STEPS
|
|
121
|
+
1. [Setup: environment, state]
|
|
122
|
+
2. [Trigger action]
|
|
123
|
+
3. [Observe error]
|
|
124
|
+
|
|
125
|
+
### 3. IMPACT ASSESSMENT
|
|
126
|
+
- **Severity:** [Critical / High / Medium / Low]
|
|
127
|
+
- **Affected Users:** [Scope of impact]
|
|
128
|
+
- **Data Loss Risk:** [Yes / No]
|
|
129
|
+
|
|
130
|
+
### 4. FIX APPROACH
|
|
131
|
+
\`\`\`
|
|
132
|
+
# Proposed fix:
|
|
133
|
+
# [Description of the code change needed]
|
|
134
|
+
\`\`\`
|
|
135
|
+
|
|
136
|
+
### 5. PREVENTION
|
|
137
|
+
- [How to prevent this class of bug in future]
|
|
138
|
+
- [Tests to add]
|
|
139
|
+
|
|
140
|
+
### 6. TESTING VERIFICATION
|
|
141
|
+
- [ ] Unit test covers the fix
|
|
142
|
+
- [ ] Edge cases tested
|
|
143
|
+
- [ ] Regression test added`);
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: "refactor_code",
|
|
148
|
+
label: "Refactor Code",
|
|
149
|
+
description: "Propose and implement code refactoring for better structure and maintainability.",
|
|
150
|
+
parameters: Type.Object({
|
|
151
|
+
code_description: Type.String({ description: "Description of the code to refactor and why" }),
|
|
152
|
+
refactoring_goals: Type.Optional(Type.String({ description: "Specific goals: readability, performance, testability, etc." })),
|
|
153
|
+
task_id: Type.Optional(Type.String({ description: "Optional ATP task ID for tracking" })),
|
|
154
|
+
}),
|
|
155
|
+
execute: async (_, params) => {
|
|
156
|
+
EventLog.log(EventType.AGENT_TOOL_CALL, "dev", params.task_id ?? "", "Dev refactoring code");
|
|
157
|
+
return ok(`## REFACTORING PLAN
|
|
158
|
+
|
|
159
|
+
**Code:** ${params.code_description}
|
|
160
|
+
**Goals:** ${params.refactoring_goals ?? "Improve structure and maintainability"}
|
|
161
|
+
|
|
162
|
+
### CURRENT ISSUES
|
|
163
|
+
- [Issue 1: e.g., Long method, does too many things]
|
|
164
|
+
- [Issue 2: e.g., Magic numbers, poor naming]
|
|
165
|
+
- [Issue 3: e.g., Duplicated logic]
|
|
166
|
+
|
|
167
|
+
### REFACTORING APPROACH
|
|
168
|
+
|
|
169
|
+
#### Step 1: [First change]
|
|
170
|
+
- Before: [Current pattern]
|
|
171
|
+
- After: [Improved pattern]
|
|
172
|
+
- Reason: [Why this is better]
|
|
173
|
+
|
|
174
|
+
#### Step 2: [Second change]
|
|
175
|
+
- Before: [Current pattern]
|
|
176
|
+
- After: [Improved pattern]
|
|
177
|
+
|
|
178
|
+
### SAFETY CHECKLIST
|
|
179
|
+
- [ ] All existing tests still pass
|
|
180
|
+
- [ ] No behavior changes (pure refactor)
|
|
181
|
+
- [ ] New tests added for newly separated functions
|
|
182
|
+
- [ ] Code reviewed before merge
|
|
183
|
+
|
|
184
|
+
### EXPECTED OUTCOMES
|
|
185
|
+
- Readability: [Better/Same]
|
|
186
|
+
- Performance: [Better/Same/Note tradeoffs]
|
|
187
|
+
- Testability: [Better/Same]`);
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
];
|
|
191
|
+
//# sourceMappingURL=devTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devTools.js","sourceRoot":"","sources":["../../../src/tools/domain/devTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git versioning tools — tiered by permission level.
|
|
3
|
+
*
|
|
4
|
+
* Three tiers:
|
|
5
|
+
* read → git_status, git_diff, git_log
|
|
6
|
+
* write → read + git_add, git_commit
|
|
7
|
+
* admin → write + git_init
|
|
8
|
+
*
|
|
9
|
+
* Per-agent identity: commits use the agent's name from roster
|
|
10
|
+
* with email as {agent_id}@octovec.dev (git doesn't verify emails).
|
|
11
|
+
*/
|
|
12
|
+
import type { AgentTool } from "@mariozechner/pi-agent-core";
|
|
13
|
+
/** Read-only git tools: status, diff, log. */
|
|
14
|
+
export declare function getGitReadTools(agentId: string): AgentTool[];
|
|
15
|
+
/** Write-level git tools: add, commit (uses agent identity). */
|
|
16
|
+
export declare function getGitWriteTools(agentId: string): AgentTool[];
|
|
17
|
+
/** Admin-level git tools: init (uses agent identity). */
|
|
18
|
+
export declare function getGitAdminTools(agentId: string): AgentTool[];
|
|
19
|
+
/** All git tools (backwards compat — returns all tiers). */
|
|
20
|
+
export declare function getGitTools(agentId: string): AgentTool[];
|
|
21
|
+
/**
|
|
22
|
+
* Auto-initialize a git repo in a project folder if it doesn't have one yet.
|
|
23
|
+
* Called before task execution when folder_access points to a projects/ path.
|
|
24
|
+
*/
|
|
25
|
+
export declare function autoInitRepo(projectDir: string, agentId?: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Auto-commit any uncommitted changes after a completed task.
|
|
28
|
+
* Returns true if a commit was made, false if working tree was clean.
|
|
29
|
+
*/
|
|
30
|
+
export declare function autoCommitIfDirty(projectDir: string, taskId: string, taskDescription: string, agentId?: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Extract the project directory from a task's folder_access field.
|
|
33
|
+
* Returns the absolute path if it's a projects/ path, null otherwise.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getProjectDirFromFolderAccess(folderAccess: string): string | null;
|
|
36
|
+
//# sourceMappingURL=gitTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitTools.d.ts","sourceRoot":"","sources":["../../../src/tools/domain/gitTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AA2D7D,8CAA8C;AAC9C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAmD5D;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAqD7D;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAqC7D;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAMxD;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAoBvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAexH;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQjF"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git versioning tools — tiered by permission level.
|
|
3
|
+
*
|
|
4
|
+
* Three tiers:
|
|
5
|
+
* read → git_status, git_diff, git_log
|
|
6
|
+
* write → read + git_add, git_commit
|
|
7
|
+
* admin → write + git_init
|
|
8
|
+
*
|
|
9
|
+
* Per-agent identity: commits use the agent's name from roster
|
|
10
|
+
* with email as {agent_id}@octovec.dev (git doesn't verify emails).
|
|
11
|
+
*/
|
|
12
|
+
import { execFileSync } from "child_process";
|
|
13
|
+
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
14
|
+
import { join, resolve, normalize, sep } from "path";
|
|
15
|
+
import { Type } from "@mariozechner/pi-ai";
|
|
16
|
+
import { projectsWorkspace } from "../../config.js";
|
|
17
|
+
import { getRosterEntry } from "../../ar/roster.js";
|
|
18
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
19
|
+
function ok(text) {
|
|
20
|
+
return { content: [{ type: "text", text }], details: {} };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a project name to an absolute path inside workspace/projects/.
|
|
24
|
+
* Throws if the resolved path escapes the projects directory.
|
|
25
|
+
*/
|
|
26
|
+
function resolveProjectDir(project) {
|
|
27
|
+
const resolved = resolve(projectsWorkspace, normalize(project));
|
|
28
|
+
if (resolved !== projectsWorkspace && !resolved.startsWith(projectsWorkspace + sep)) {
|
|
29
|
+
throw new Error(`Path traversal blocked: '${project}' resolves outside projects/`);
|
|
30
|
+
}
|
|
31
|
+
return resolved;
|
|
32
|
+
}
|
|
33
|
+
/** Run a git command in a directory and return stdout. */
|
|
34
|
+
function git(cwd, args) {
|
|
35
|
+
return execFileSync("git", args, {
|
|
36
|
+
cwd,
|
|
37
|
+
encoding: "utf-8",
|
|
38
|
+
timeout: 30_000,
|
|
39
|
+
env: { ...process.env, GIT_TERMINAL_PROMPT: "0" },
|
|
40
|
+
}).trim();
|
|
41
|
+
}
|
|
42
|
+
/** Check if a directory has a .git folder. */
|
|
43
|
+
function isGitRepo(dir) {
|
|
44
|
+
return existsSync(join(dir, ".git"));
|
|
45
|
+
}
|
|
46
|
+
/** Resolve git author identity from roster. */
|
|
47
|
+
function getGitIdentity(agentId) {
|
|
48
|
+
if (!agentId)
|
|
49
|
+
return { name: "OCTO-VEC", email: "agent@octovec.dev" };
|
|
50
|
+
const entry = getRosterEntry(agentId);
|
|
51
|
+
if (!entry)
|
|
52
|
+
return { name: "OCTO-VEC", email: "agent@octovec.dev" };
|
|
53
|
+
return { name: entry.name, email: `${agentId}@octovec.dev` };
|
|
54
|
+
}
|
|
55
|
+
const DEFAULT_GITIGNORE = `node_modules/
|
|
56
|
+
dist/
|
|
57
|
+
build/
|
|
58
|
+
.env
|
|
59
|
+
.env.*
|
|
60
|
+
*.log
|
|
61
|
+
.DS_Store
|
|
62
|
+
Thumbs.db
|
|
63
|
+
coverage/
|
|
64
|
+
.cache/
|
|
65
|
+
`;
|
|
66
|
+
// ── Tiered Git Tools ─────────────────────────────────────────────────────────
|
|
67
|
+
/** Read-only git tools: status, diff, log. */
|
|
68
|
+
export function getGitReadTools(agentId) {
|
|
69
|
+
const git_status = {
|
|
70
|
+
name: "git_status",
|
|
71
|
+
label: "Git Status",
|
|
72
|
+
description: "Show the git status of a project directory.",
|
|
73
|
+
parameters: Type.Object({
|
|
74
|
+
project: Type.String({ description: "Project folder name under workspace/projects/" }),
|
|
75
|
+
}),
|
|
76
|
+
execute: async (_, params) => {
|
|
77
|
+
const dir = resolveProjectDir(params.project);
|
|
78
|
+
if (!isGitRepo(dir))
|
|
79
|
+
return ok(`ERROR: '${params.project}' is not a git repository. Use git_init first.`);
|
|
80
|
+
const output = git(dir, ["status"]);
|
|
81
|
+
return ok(output);
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
const git_diff = {
|
|
85
|
+
name: "git_diff",
|
|
86
|
+
label: "Git Diff",
|
|
87
|
+
description: "Show file changes in a project. Use staged=true to see staged changes.",
|
|
88
|
+
parameters: Type.Object({
|
|
89
|
+
project: Type.String({ description: "Project folder name under workspace/projects/" }),
|
|
90
|
+
staged: Type.Optional(Type.Boolean({ description: "If true, show staged changes (--staged). Default: false." })),
|
|
91
|
+
}),
|
|
92
|
+
execute: async (_, params) => {
|
|
93
|
+
const dir = resolveProjectDir(params.project);
|
|
94
|
+
if (!isGitRepo(dir))
|
|
95
|
+
return ok(`ERROR: '${params.project}' is not a git repository.`);
|
|
96
|
+
const args = params.staged ? ["diff", "--staged"] : ["diff"];
|
|
97
|
+
const output = git(dir, args);
|
|
98
|
+
return ok(output || "(no changes)");
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
const git_log = {
|
|
102
|
+
name: "git_log",
|
|
103
|
+
label: "Git Log",
|
|
104
|
+
description: "Show commit history for a project.",
|
|
105
|
+
parameters: Type.Object({
|
|
106
|
+
project: Type.String({ description: "Project folder name under workspace/projects/" }),
|
|
107
|
+
limit: Type.Optional(Type.Number({ description: "Max number of commits to show. Default: 20." })),
|
|
108
|
+
}),
|
|
109
|
+
execute: async (_, params) => {
|
|
110
|
+
const dir = resolveProjectDir(params.project);
|
|
111
|
+
if (!isGitRepo(dir))
|
|
112
|
+
return ok(`ERROR: '${params.project}' is not a git repository.`);
|
|
113
|
+
const n = params.limit ?? 20;
|
|
114
|
+
const output = git(dir, ["log", "--oneline", `-n`, String(n)]);
|
|
115
|
+
return ok(output || "(no commits yet)");
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
return [git_status, git_diff, git_log];
|
|
119
|
+
}
|
|
120
|
+
/** Write-level git tools: add, commit (uses agent identity). */
|
|
121
|
+
export function getGitWriteTools(agentId) {
|
|
122
|
+
const { name, email } = getGitIdentity(agentId);
|
|
123
|
+
const git_add = {
|
|
124
|
+
name: "git_add",
|
|
125
|
+
label: "Git Add",
|
|
126
|
+
description: "Stage files for commit. Defaults to staging all changes.",
|
|
127
|
+
parameters: Type.Object({
|
|
128
|
+
project: Type.String({ description: "Project folder name under workspace/projects/" }),
|
|
129
|
+
files: Type.Optional(Type.String({ description: "Space-separated file paths to stage. Default: '.' (all)" })),
|
|
130
|
+
}),
|
|
131
|
+
execute: async (_, params) => {
|
|
132
|
+
const dir = resolveProjectDir(params.project);
|
|
133
|
+
if (!isGitRepo(dir))
|
|
134
|
+
return ok(`ERROR: '${params.project}' is not a git repository.`);
|
|
135
|
+
const fileArgs = params.files ? params.files.split(/\s+/) : ["."];
|
|
136
|
+
git(dir, ["add", ...fileArgs]);
|
|
137
|
+
const status = git(dir, ["status", "--short"]);
|
|
138
|
+
return ok(`Staged files in '${params.project}'.\n${status}`);
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
const git_commit = {
|
|
142
|
+
name: "git_commit",
|
|
143
|
+
label: "Git Commit",
|
|
144
|
+
description: `Commit staged changes with a message. If nothing is staged, auto-stages all changes first. ` +
|
|
145
|
+
`Author: ${name}.`,
|
|
146
|
+
parameters: Type.Object({
|
|
147
|
+
project: Type.String({ description: "Project folder name under workspace/projects/" }),
|
|
148
|
+
message: Type.String({ description: "Commit message describing the changes" }),
|
|
149
|
+
}),
|
|
150
|
+
execute: async (_, params) => {
|
|
151
|
+
const dir = resolveProjectDir(params.project);
|
|
152
|
+
if (!isGitRepo(dir))
|
|
153
|
+
return ok(`ERROR: '${params.project}' is not a git repository. Use git_init first.`);
|
|
154
|
+
// Auto-stage if nothing is staged
|
|
155
|
+
const staged = git(dir, ["diff", "--staged", "--stat"]);
|
|
156
|
+
if (!staged) {
|
|
157
|
+
const porcelain = git(dir, ["status", "--porcelain"]);
|
|
158
|
+
if (!porcelain)
|
|
159
|
+
return ok("Nothing to commit — working tree clean.");
|
|
160
|
+
git(dir, ["add", "-A"]);
|
|
161
|
+
}
|
|
162
|
+
const output = git(dir, [
|
|
163
|
+
"-c", `user.name=${name}`,
|
|
164
|
+
"-c", `user.email=${email}`,
|
|
165
|
+
"commit", "-m", params.message,
|
|
166
|
+
]);
|
|
167
|
+
return ok(output);
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
return [git_add, git_commit];
|
|
171
|
+
}
|
|
172
|
+
/** Admin-level git tools: init (uses agent identity). */
|
|
173
|
+
export function getGitAdminTools(agentId) {
|
|
174
|
+
const { name, email } = getGitIdentity(agentId);
|
|
175
|
+
const git_init = {
|
|
176
|
+
name: "git_init",
|
|
177
|
+
label: "Git Init",
|
|
178
|
+
description: "Initialize a new git repository in a project folder under workspace/projects/. " +
|
|
179
|
+
"Creates a .gitignore and makes an initial commit.",
|
|
180
|
+
parameters: Type.Object({
|
|
181
|
+
project: Type.String({ description: "Project folder name under workspace/projects/ (e.g. 'my-app')" }),
|
|
182
|
+
}),
|
|
183
|
+
execute: async (_, params) => {
|
|
184
|
+
const dir = resolveProjectDir(params.project);
|
|
185
|
+
if (!existsSync(dir)) {
|
|
186
|
+
mkdirSync(dir, { recursive: true });
|
|
187
|
+
}
|
|
188
|
+
if (isGitRepo(dir)) {
|
|
189
|
+
return ok(`Project '${params.project}' already has a git repository.`);
|
|
190
|
+
}
|
|
191
|
+
git(dir, ["init"]);
|
|
192
|
+
const gitignorePath = join(dir, ".gitignore");
|
|
193
|
+
if (!existsSync(gitignorePath)) {
|
|
194
|
+
writeFileSync(gitignorePath, DEFAULT_GITIGNORE, "utf-8");
|
|
195
|
+
}
|
|
196
|
+
git(dir, ["add", "-A"]);
|
|
197
|
+
git(dir, [
|
|
198
|
+
"-c", `user.name=${name}`,
|
|
199
|
+
"-c", `user.email=${email}`,
|
|
200
|
+
"commit", "-m", "Initial commit",
|
|
201
|
+
"--allow-empty",
|
|
202
|
+
]);
|
|
203
|
+
return ok(`Initialized git repository in projects/${params.project}/ with initial commit.`);
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
return [git_init];
|
|
207
|
+
}
|
|
208
|
+
/** All git tools (backwards compat — returns all tiers). */
|
|
209
|
+
export function getGitTools(agentId) {
|
|
210
|
+
return [
|
|
211
|
+
...getGitAdminTools(agentId),
|
|
212
|
+
...getGitReadTools(agentId),
|
|
213
|
+
...getGitWriteTools(agentId),
|
|
214
|
+
];
|
|
215
|
+
}
|
|
216
|
+
// ── Auto-commit helper (used by devAgent task lifecycle) ──────────────────────
|
|
217
|
+
/**
|
|
218
|
+
* Auto-initialize a git repo in a project folder if it doesn't have one yet.
|
|
219
|
+
* Called before task execution when folder_access points to a projects/ path.
|
|
220
|
+
*/
|
|
221
|
+
export function autoInitRepo(projectDir, agentId) {
|
|
222
|
+
if (!existsSync(projectDir) || isGitRepo(projectDir))
|
|
223
|
+
return;
|
|
224
|
+
const { name, email } = getGitIdentity(agentId);
|
|
225
|
+
git(projectDir, ["init"]);
|
|
226
|
+
const gitignorePath = join(projectDir, ".gitignore");
|
|
227
|
+
if (!existsSync(gitignorePath)) {
|
|
228
|
+
writeFileSync(gitignorePath, DEFAULT_GITIGNORE, "utf-8");
|
|
229
|
+
}
|
|
230
|
+
git(projectDir, ["add", "-A"]);
|
|
231
|
+
try {
|
|
232
|
+
git(projectDir, [
|
|
233
|
+
"-c", `user.name=${name}`,
|
|
234
|
+
"-c", `user.email=${email}`,
|
|
235
|
+
"commit", "-m", "Initial commit [auto-init]",
|
|
236
|
+
"--allow-empty",
|
|
237
|
+
]);
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
// empty repo, nothing to commit — that's fine
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Auto-commit any uncommitted changes after a completed task.
|
|
245
|
+
* Returns true if a commit was made, false if working tree was clean.
|
|
246
|
+
*/
|
|
247
|
+
export function autoCommitIfDirty(projectDir, taskId, taskDescription, agentId) {
|
|
248
|
+
if (!existsSync(projectDir) || !isGitRepo(projectDir))
|
|
249
|
+
return false;
|
|
250
|
+
const porcelain = git(projectDir, ["status", "--porcelain"]);
|
|
251
|
+
if (!porcelain)
|
|
252
|
+
return false; // clean
|
|
253
|
+
const { name, email } = getGitIdentity(agentId);
|
|
254
|
+
git(projectDir, ["add", "-A"]);
|
|
255
|
+
const msg = `${taskId}: ${taskDescription.slice(0, 100)} [auto-commit]`;
|
|
256
|
+
git(projectDir, [
|
|
257
|
+
"-c", `user.name=${name}`,
|
|
258
|
+
"-c", `user.email=${email}`,
|
|
259
|
+
"commit", "-m", msg,
|
|
260
|
+
]);
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Extract the project directory from a task's folder_access field.
|
|
265
|
+
* Returns the absolute path if it's a projects/ path, null otherwise.
|
|
266
|
+
*/
|
|
267
|
+
export function getProjectDirFromFolderAccess(folderAccess) {
|
|
268
|
+
if (!folderAccess)
|
|
269
|
+
return null;
|
|
270
|
+
// folder_access is relative to workspace, e.g. "projects/my-app"
|
|
271
|
+
const normalized = normalize(folderAccess);
|
|
272
|
+
if (!normalized.startsWith("projects"))
|
|
273
|
+
return null;
|
|
274
|
+
const resolved = resolve(projectsWorkspace, "..", normalized);
|
|
275
|
+
if (resolved !== projectsWorkspace && !resolved.startsWith(projectsWorkspace + sep))
|
|
276
|
+
return null;
|
|
277
|
+
return resolved;
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=gitTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitTools.js","sourceRoot":"","sources":["../../../src/tools/domain/gitTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qaTools.d.ts","sourceRoot":"","sources":["../../../src/tools/domain/qaTools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAS7D,eAAO,MAAM,OAAO,EAAE,SAAS,EAuS9B,CAAC"}
|