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.
Files changed (319) hide show
  1. package/README.md +646 -0
  2. package/core/prompts/architect.md +124 -0
  3. package/core/prompts/ba.md +117 -0
  4. package/core/prompts/backend.md +154 -0
  5. package/core/prompts/compliance.md +127 -0
  6. package/core/prompts/dataanalyst.md +126 -0
  7. package/core/prompts/dataengineer.md +155 -0
  8. package/core/prompts/dba.md +155 -0
  9. package/core/prompts/designer.md +145 -0
  10. package/core/prompts/dev.md +148 -0
  11. package/core/prompts/devops.md +127 -0
  12. package/core/prompts/frontend.md +151 -0
  13. package/core/prompts/mlengineer.md +156 -0
  14. package/core/prompts/mobile.md +155 -0
  15. package/core/prompts/pm.md +182 -0
  16. package/core/prompts/productowner.md +122 -0
  17. package/core/prompts/qa.md +135 -0
  18. package/core/prompts/releasemanager.md +138 -0
  19. package/core/prompts/researcher.md +122 -0
  20. package/core/prompts/scrummaster.md +125 -0
  21. package/core/prompts/security.md +127 -0
  22. package/core/prompts/sre.md +141 -0
  23. package/core/prompts/support.md +138 -0
  24. package/core/prompts/techwriter.md +123 -0
  25. package/core/roster.json +1161 -0
  26. package/dashboard/dist/assets/index--L-aFRgh.css +1 -0
  27. package/dashboard/dist/assets/index-BoOVmAFf.js +523 -0
  28. package/dashboard/dist/icons/integrations/gitleaks.svg +6 -0
  29. package/dashboard/dist/icons/integrations/searxng.svg +5 -0
  30. package/dashboard/dist/icons/integrations/semgrep.svg +4 -0
  31. package/dashboard/dist/icons/integrations/slack.svg +6 -0
  32. package/dashboard/dist/icons/integrations/sonarqube.svg +5 -0
  33. package/dashboard/dist/icons/integrations/telegram.svg +4 -0
  34. package/dashboard/dist/icons/integrations/trivy.svg +5 -0
  35. package/dashboard/dist/icons/providers/anthropic.svg +1 -0
  36. package/dashboard/dist/icons/providers/antigravity.svg +1 -0
  37. package/dashboard/dist/icons/providers/azure.svg +1 -0
  38. package/dashboard/dist/icons/providers/bedrock.svg +1 -0
  39. package/dashboard/dist/icons/providers/cerebras.svg +1 -0
  40. package/dashboard/dist/icons/providers/chatglm.svg +1 -0
  41. package/dashboard/dist/icons/providers/codex.svg +1 -0
  42. package/dashboard/dist/icons/providers/gemini.svg +1 -0
  43. package/dashboard/dist/icons/providers/githubcopilot.svg +1 -0
  44. package/dashboard/dist/icons/providers/googlecloud.svg +1 -0
  45. package/dashboard/dist/icons/providers/groq.svg +1 -0
  46. package/dashboard/dist/icons/providers/huggingface.svg +1 -0
  47. package/dashboard/dist/icons/providers/kimi.svg +1 -0
  48. package/dashboard/dist/icons/providers/minimax.svg +1 -0
  49. package/dashboard/dist/icons/providers/mistral.svg +1 -0
  50. package/dashboard/dist/icons/providers/openai.svg +1 -0
  51. package/dashboard/dist/icons/providers/openrouter.svg +1 -0
  52. package/dashboard/dist/icons/providers/vercel.svg +1 -0
  53. package/dashboard/dist/icons/providers/xai.svg +1 -0
  54. package/dashboard/dist/index.html +17 -0
  55. package/dist/agents/pmAgent.d.ts +40 -0
  56. package/dist/agents/pmAgent.d.ts.map +1 -0
  57. package/dist/agents/pmAgent.js +181 -0
  58. package/dist/agents/pmAgent.js.map +1 -0
  59. package/dist/ar/baseSpecialist.d.ts +36 -0
  60. package/dist/ar/baseSpecialist.d.ts.map +1 -0
  61. package/dist/ar/baseSpecialist.js +292 -0
  62. package/dist/ar/baseSpecialist.js.map +1 -0
  63. package/dist/ar/promptLoader.d.ts +10 -0
  64. package/dist/ar/promptLoader.d.ts.map +1 -0
  65. package/dist/ar/promptLoader.js +22 -0
  66. package/dist/ar/promptLoader.js.map +1 -0
  67. package/dist/ar/registry.d.ts +12 -0
  68. package/dist/ar/registry.d.ts.map +1 -0
  69. package/dist/ar/registry.js +22 -0
  70. package/dist/ar/registry.js.map +1 -0
  71. package/dist/ar/roster.d.ts +104 -0
  72. package/dist/ar/roster.d.ts.map +1 -0
  73. package/dist/ar/roster.js +245 -0
  74. package/dist/ar/roster.js.map +1 -0
  75. package/dist/ar/toolProfiles.d.ts +18 -0
  76. package/dist/ar/toolProfiles.d.ts.map +1 -0
  77. package/dist/ar/toolProfiles.js +89 -0
  78. package/dist/ar/toolProfiles.js.map +1 -0
  79. package/dist/atp/agentGroups.d.ts +39 -0
  80. package/dist/atp/agentGroups.d.ts.map +1 -0
  81. package/dist/atp/agentGroups.js +109 -0
  82. package/dist/atp/agentGroups.js.map +1 -0
  83. package/dist/atp/agentInterrupt.d.ts +31 -0
  84. package/dist/atp/agentInterrupt.d.ts.map +1 -0
  85. package/dist/atp/agentInterrupt.js +51 -0
  86. package/dist/atp/agentInterrupt.js.map +1 -0
  87. package/dist/atp/agentMessageQueue.d.ts +74 -0
  88. package/dist/atp/agentMessageQueue.d.ts.map +1 -0
  89. package/dist/atp/agentMessageQueue.js +218 -0
  90. package/dist/atp/agentMessageQueue.js.map +1 -0
  91. package/dist/atp/agentRuntime.d.ts +67 -0
  92. package/dist/atp/agentRuntime.d.ts.map +1 -0
  93. package/dist/atp/agentRuntime.js +279 -0
  94. package/dist/atp/agentRuntime.js.map +1 -0
  95. package/dist/atp/agentStreamBus.d.ts +35 -0
  96. package/dist/atp/agentStreamBus.d.ts.map +1 -0
  97. package/dist/atp/agentStreamBus.js +159 -0
  98. package/dist/atp/agentStreamBus.js.map +1 -0
  99. package/dist/atp/agentToolConfig.d.ts +38 -0
  100. package/dist/atp/agentToolConfig.d.ts.map +1 -0
  101. package/dist/atp/agentToolConfig.js +225 -0
  102. package/dist/atp/agentToolConfig.js.map +1 -0
  103. package/dist/atp/chatLog.d.ts +34 -0
  104. package/dist/atp/chatLog.d.ts.map +1 -0
  105. package/dist/atp/chatLog.js +59 -0
  106. package/dist/atp/chatLog.js.map +1 -0
  107. package/dist/atp/codexAuth.d.ts +6 -0
  108. package/dist/atp/codexAuth.d.ts.map +1 -0
  109. package/dist/atp/codexAuth.js +44 -0
  110. package/dist/atp/codexAuth.js.map +1 -0
  111. package/dist/atp/database.d.ts +54 -0
  112. package/dist/atp/database.d.ts.map +1 -0
  113. package/dist/atp/database.js +323 -0
  114. package/dist/atp/database.js.map +1 -0
  115. package/dist/atp/eventLog.d.ts +12 -0
  116. package/dist/atp/eventLog.d.ts.map +1 -0
  117. package/dist/atp/eventLog.js +60 -0
  118. package/dist/atp/eventLog.js.map +1 -0
  119. package/dist/atp/inboxLoop.d.ts +72 -0
  120. package/dist/atp/inboxLoop.d.ts.map +1 -0
  121. package/dist/atp/inboxLoop.js +482 -0
  122. package/dist/atp/inboxLoop.js.map +1 -0
  123. package/dist/atp/llmDebug.d.ts +18 -0
  124. package/dist/atp/llmDebug.d.ts.map +1 -0
  125. package/dist/atp/llmDebug.js +97 -0
  126. package/dist/atp/llmDebug.js.map +1 -0
  127. package/dist/atp/messageDebouncer.d.ts +34 -0
  128. package/dist/atp/messageDebouncer.d.ts.map +1 -0
  129. package/dist/atp/messageDebouncer.js +60 -0
  130. package/dist/atp/messageDebouncer.js.map +1 -0
  131. package/dist/atp/messageQueue.d.ts +17 -0
  132. package/dist/atp/messageQueue.d.ts.map +1 -0
  133. package/dist/atp/messageQueue.js +69 -0
  134. package/dist/atp/messageQueue.js.map +1 -0
  135. package/dist/atp/modelConfig.d.ts +46 -0
  136. package/dist/atp/modelConfig.d.ts.map +1 -0
  137. package/dist/atp/modelConfig.js +232 -0
  138. package/dist/atp/modelConfig.js.map +1 -0
  139. package/dist/atp/models.d.ts +87 -0
  140. package/dist/atp/models.d.ts.map +1 -0
  141. package/dist/atp/models.js +45 -0
  142. package/dist/atp/models.js.map +1 -0
  143. package/dist/atp/postTaskHooks.d.ts +21 -0
  144. package/dist/atp/postTaskHooks.d.ts.map +1 -0
  145. package/dist/atp/postTaskHooks.js +89 -0
  146. package/dist/atp/postTaskHooks.js.map +1 -0
  147. package/dist/atp/tokenTracker.d.ts +46 -0
  148. package/dist/atp/tokenTracker.d.ts.map +1 -0
  149. package/dist/atp/tokenTracker.js +120 -0
  150. package/dist/atp/tokenTracker.js.map +1 -0
  151. package/dist/channels/activeChannel.d.ts +14 -0
  152. package/dist/channels/activeChannel.d.ts.map +1 -0
  153. package/dist/channels/activeChannel.js +18 -0
  154. package/dist/channels/activeChannel.js.map +1 -0
  155. package/dist/channels/channelConfig.d.ts +61 -0
  156. package/dist/channels/channelConfig.d.ts.map +1 -0
  157. package/dist/channels/channelConfig.js +130 -0
  158. package/dist/channels/channelConfig.js.map +1 -0
  159. package/dist/channels/channelManager.d.ts +22 -0
  160. package/dist/channels/channelManager.d.ts.map +1 -0
  161. package/dist/channels/channelManager.js +77 -0
  162. package/dist/channels/channelManager.js.map +1 -0
  163. package/dist/channels/discord.d.ts +24 -0
  164. package/dist/channels/discord.d.ts.map +1 -0
  165. package/dist/channels/discord.js +276 -0
  166. package/dist/channels/discord.js.map +1 -0
  167. package/dist/channels/slack.d.ts +25 -0
  168. package/dist/channels/slack.d.ts.map +1 -0
  169. package/dist/channels/slack.js +313 -0
  170. package/dist/channels/slack.js.map +1 -0
  171. package/dist/channels/telegram.d.ts +20 -0
  172. package/dist/channels/telegram.d.ts.map +1 -0
  173. package/dist/channels/telegram.js +273 -0
  174. package/dist/channels/telegram.js.map +1 -0
  175. package/dist/channels/types.d.ts +12 -0
  176. package/dist/channels/types.d.ts.map +1 -0
  177. package/dist/channels/types.js +5 -0
  178. package/dist/channels/types.js.map +1 -0
  179. package/dist/config.d.ts +82 -0
  180. package/dist/config.d.ts.map +1 -0
  181. package/dist/config.js +144 -0
  182. package/dist/config.js.map +1 -0
  183. package/dist/dashboard/security.d.ts +68 -0
  184. package/dist/dashboard/security.d.ts.map +1 -0
  185. package/dist/dashboard/security.js +178 -0
  186. package/dist/dashboard/security.js.map +1 -0
  187. package/dist/dashboard/securityHelpers.d.ts +10 -0
  188. package/dist/dashboard/securityHelpers.d.ts.map +1 -0
  189. package/dist/dashboard/securityHelpers.js +22 -0
  190. package/dist/dashboard/securityHelpers.js.map +1 -0
  191. package/dist/dashboard/server.d.ts +18 -0
  192. package/dist/dashboard/server.d.ts.map +1 -0
  193. package/dist/dashboard/server.js +3207 -0
  194. package/dist/dashboard/server.js.map +1 -0
  195. package/dist/flows/codeScanFlow.d.ts +14 -0
  196. package/dist/flows/codeScanFlow.d.ts.map +1 -0
  197. package/dist/flows/codeScanFlow.js +204 -0
  198. package/dist/flows/codeScanFlow.js.map +1 -0
  199. package/dist/flows/gitleaksScanFlow.d.ts +12 -0
  200. package/dist/flows/gitleaksScanFlow.d.ts.map +1 -0
  201. package/dist/flows/gitleaksScanFlow.js +205 -0
  202. package/dist/flows/gitleaksScanFlow.js.map +1 -0
  203. package/dist/flows/index.d.ts +30 -0
  204. package/dist/flows/index.d.ts.map +1 -0
  205. package/dist/flows/index.js +43 -0
  206. package/dist/flows/index.js.map +1 -0
  207. package/dist/flows/semgrepScanFlow.d.ts +13 -0
  208. package/dist/flows/semgrepScanFlow.d.ts.map +1 -0
  209. package/dist/flows/semgrepScanFlow.js +211 -0
  210. package/dist/flows/semgrepScanFlow.js.map +1 -0
  211. package/dist/flows/trivyScanFlow.d.ts +13 -0
  212. package/dist/flows/trivyScanFlow.d.ts.map +1 -0
  213. package/dist/flows/trivyScanFlow.js +198 -0
  214. package/dist/flows/trivyScanFlow.js.map +1 -0
  215. package/dist/identity.d.ts +22 -0
  216. package/dist/identity.d.ts.map +1 -0
  217. package/dist/identity.js +34 -0
  218. package/dist/identity.js.map +1 -0
  219. package/dist/init.d.ts +8 -0
  220. package/dist/init.d.ts.map +1 -0
  221. package/dist/init.js +27 -0
  222. package/dist/init.js.map +1 -0
  223. package/dist/integrations/integrationConfig.d.ts +80 -0
  224. package/dist/integrations/integrationConfig.d.ts.map +1 -0
  225. package/dist/integrations/integrationConfig.js +146 -0
  226. package/dist/integrations/integrationConfig.js.map +1 -0
  227. package/dist/mcp/mcpBridge.d.ts +36 -0
  228. package/dist/mcp/mcpBridge.d.ts.map +1 -0
  229. package/dist/mcp/mcpBridge.js +157 -0
  230. package/dist/mcp/mcpBridge.js.map +1 -0
  231. package/dist/memory/agentMemory.d.ts +32 -0
  232. package/dist/memory/agentMemory.d.ts.map +1 -0
  233. package/dist/memory/agentMemory.js +116 -0
  234. package/dist/memory/agentMemory.js.map +1 -0
  235. package/dist/memory/autoCompaction.d.ts +46 -0
  236. package/dist/memory/autoCompaction.d.ts.map +1 -0
  237. package/dist/memory/autoCompaction.js +220 -0
  238. package/dist/memory/autoCompaction.js.map +1 -0
  239. package/dist/memory/compaction.d.ts +17 -0
  240. package/dist/memory/compaction.d.ts.map +1 -0
  241. package/dist/memory/compaction.js +27 -0
  242. package/dist/memory/compaction.js.map +1 -0
  243. package/dist/memory/messageHistory.d.ts +28 -0
  244. package/dist/memory/messageHistory.d.ts.map +1 -0
  245. package/dist/memory/messageHistory.js +60 -0
  246. package/dist/memory/messageHistory.js.map +1 -0
  247. package/dist/memory/sessionLifecycle.d.ts +30 -0
  248. package/dist/memory/sessionLifecycle.d.ts.map +1 -0
  249. package/dist/memory/sessionLifecycle.js +63 -0
  250. package/dist/memory/sessionLifecycle.js.map +1 -0
  251. package/dist/migrate.d.ts +8 -0
  252. package/dist/migrate.d.ts.map +1 -0
  253. package/dist/migrate.js +83 -0
  254. package/dist/migrate.js.map +1 -0
  255. package/dist/onboarding.d.ts +8 -0
  256. package/dist/onboarding.d.ts.map +1 -0
  257. package/dist/onboarding.js +188 -0
  258. package/dist/onboarding.js.map +1 -0
  259. package/dist/tools/domain/baFileTools.d.ts +7 -0
  260. package/dist/tools/domain/baFileTools.d.ts.map +1 -0
  261. package/dist/tools/domain/baFileTools.js +46 -0
  262. package/dist/tools/domain/baFileTools.js.map +1 -0
  263. package/dist/tools/domain/baTools.d.ts +6 -0
  264. package/dist/tools/domain/baTools.d.ts.map +1 -0
  265. package/dist/tools/domain/baTools.js +160 -0
  266. package/dist/tools/domain/baTools.js.map +1 -0
  267. package/dist/tools/domain/baseSpecialistTools.d.ts +22 -0
  268. package/dist/tools/domain/baseSpecialistTools.d.ts.map +1 -0
  269. package/dist/tools/domain/baseSpecialistTools.js +183 -0
  270. package/dist/tools/domain/baseSpecialistTools.js.map +1 -0
  271. package/dist/tools/domain/devTools.d.ts +6 -0
  272. package/dist/tools/domain/devTools.d.ts.map +1 -0
  273. package/dist/tools/domain/devTools.js +191 -0
  274. package/dist/tools/domain/devTools.js.map +1 -0
  275. package/dist/tools/domain/gitTools.d.ts +36 -0
  276. package/dist/tools/domain/gitTools.d.ts.map +1 -0
  277. package/dist/tools/domain/gitTools.js +279 -0
  278. package/dist/tools/domain/gitTools.js.map +1 -0
  279. package/dist/tools/domain/qaTools.d.ts +6 -0
  280. package/dist/tools/domain/qaTools.d.ts.map +1 -0
  281. package/dist/tools/domain/qaTools.js +275 -0
  282. package/dist/tools/domain/qaTools.js.map +1 -0
  283. package/dist/tools/domain/securityFlowTools.d.ts +6 -0
  284. package/dist/tools/domain/securityFlowTools.d.ts.map +1 -0
  285. package/dist/tools/domain/securityFlowTools.js +156 -0
  286. package/dist/tools/domain/securityFlowTools.js.map +1 -0
  287. package/dist/tools/pm/employeeTools.d.ts +15 -0
  288. package/dist/tools/pm/employeeTools.d.ts.map +1 -0
  289. package/dist/tools/pm/employeeTools.js +117 -0
  290. package/dist/tools/pm/employeeTools.js.map +1 -0
  291. package/dist/tools/pm/taskTools.d.ts +31 -0
  292. package/dist/tools/pm/taskTools.d.ts.map +1 -0
  293. package/dist/tools/pm/taskTools.js +534 -0
  294. package/dist/tools/pm/taskTools.js.map +1 -0
  295. package/dist/tools/shared/dateTools.d.ts +7 -0
  296. package/dist/tools/shared/dateTools.d.ts.map +1 -0
  297. package/dist/tools/shared/dateTools.js +35 -0
  298. package/dist/tools/shared/dateTools.js.map +1 -0
  299. package/dist/tools/shared/fileTools.d.ts +33 -0
  300. package/dist/tools/shared/fileTools.d.ts.map +1 -0
  301. package/dist/tools/shared/fileTools.js +312 -0
  302. package/dist/tools/shared/fileTools.js.map +1 -0
  303. package/dist/tools/shared/memoryTools.d.ts +18 -0
  304. package/dist/tools/shared/memoryTools.d.ts.map +1 -0
  305. package/dist/tools/shared/memoryTools.js +275 -0
  306. package/dist/tools/shared/memoryTools.js.map +1 -0
  307. package/dist/tools/shared/messagingTools.d.ts +14 -0
  308. package/dist/tools/shared/messagingTools.d.ts.map +1 -0
  309. package/dist/tools/shared/messagingTools.js +95 -0
  310. package/dist/tools/shared/messagingTools.js.map +1 -0
  311. package/dist/tools/shared/webTools.d.ts +12 -0
  312. package/dist/tools/shared/webTools.d.ts.map +1 -0
  313. package/dist/tools/shared/webTools.js +140 -0
  314. package/dist/tools/shared/webTools.js.map +1 -0
  315. package/dist/tower.d.ts +8 -0
  316. package/dist/tower.d.ts.map +1 -0
  317. package/dist/tower.js +774 -0
  318. package/dist/tower.js.map +1 -0
  319. 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,6 @@
1
+ /**
2
+ * Senior Developer domain tools — template scaffolds for the LLM to populate.
3
+ */
4
+ import type { AgentTool } from "@mariozechner/pi-agent-core";
5
+ export declare const devTools: AgentTool[];
6
+ //# sourceMappingURL=devTools.d.ts.map
@@ -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,6 @@
1
+ /**
2
+ * QA Engineer domain tools — template scaffolds for the LLM to populate.
3
+ */
4
+ import type { AgentTool } from "@mariozechner/pi-agent-core";
5
+ export declare const qaTools: AgentTool[];
6
+ //# sourceMappingURL=qaTools.d.ts.map
@@ -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"}