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":"agentRuntime.js","sourceRoot":"","sources":["../../src/atp/agentRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentStreamBus — server-side EventEmitter that broadcasts token-level
|
|
3
|
+
* LLM streaming events from every agent to the dashboard's SSE clients.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* import { publishAgentStream } from "./agentStreamBus.js";
|
|
7
|
+
* agent.subscribe(event => publishAgentStream("dev", event));
|
|
8
|
+
*
|
|
9
|
+
* The SSE endpoint in dashboard/server.ts subscribes and forwards tokens
|
|
10
|
+
* as newline-delimited JSON to every connected browser.
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from "events";
|
|
13
|
+
import type { AgentEvent } from "@mariozechner/pi-agent-core";
|
|
14
|
+
export type StreamTokenType = "agent_start" | "text" | "thinking_start" | "thinking" | "thinking_end" | "tool_start" | "tool_end" | "agent_end";
|
|
15
|
+
export interface StreamToken {
|
|
16
|
+
agentId: string;
|
|
17
|
+
type: StreamTokenType;
|
|
18
|
+
content: string;
|
|
19
|
+
toolName?: string;
|
|
20
|
+
toolArgs?: Record<string, unknown>;
|
|
21
|
+
toolResult?: string;
|
|
22
|
+
isError?: boolean;
|
|
23
|
+
}
|
|
24
|
+
declare class AgentStreamBusImpl extends EventEmitter {
|
|
25
|
+
}
|
|
26
|
+
export declare const agentStreamBus: AgentStreamBusImpl;
|
|
27
|
+
/** Get the current replay buffer (a snapshot for replaying to new clients). */
|
|
28
|
+
export declare function getReplayBuffer(): StreamToken[];
|
|
29
|
+
/**
|
|
30
|
+
* Convert a pi-agent-core AgentEvent into a StreamToken and emit it on the bus.
|
|
31
|
+
* Call this inside any agent's subscribe() handler.
|
|
32
|
+
*/
|
|
33
|
+
export declare function publishAgentStream(agentId: string, event: AgentEvent): void;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=agentStreamBus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentStreamBus.d.ts","sourceRoot":"","sources":["../../src/atp/agentStreamBus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAM9D,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,MAAM,GACN,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,YAAY,GACZ,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,cAAM,kBAAmB,SAAQ,YAAY;CAAG;AAEhD,eAAO,MAAM,cAAc,oBAA2B,CAAC;AAyBvD,+EAA+E;AAC/E,wBAAgB,eAAe,IAAI,WAAW,EAAE,CAE/C;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAsH3E"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentStreamBus — server-side EventEmitter that broadcasts token-level
|
|
3
|
+
* LLM streaming events from every agent to the dashboard's SSE clients.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* import { publishAgentStream } from "./agentStreamBus.js";
|
|
7
|
+
* agent.subscribe(event => publishAgentStream("dev", event));
|
|
8
|
+
*
|
|
9
|
+
* The SSE endpoint in dashboard/server.ts subscribes and forwards tokens
|
|
10
|
+
* as newline-delimited JSON to every connected browser.
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from "events";
|
|
13
|
+
import { trackTurnStart, trackOutputChars, trackTurnEnd } from "./tokenTracker.js";
|
|
14
|
+
import { getModelCostRates } from "./modelConfig.js";
|
|
15
|
+
// ── Bus ───────────────────────────────────────────────────────────────────────
|
|
16
|
+
class AgentStreamBusImpl extends EventEmitter {
|
|
17
|
+
}
|
|
18
|
+
export const agentStreamBus = new AgentStreamBusImpl();
|
|
19
|
+
agentStreamBus.setMaxListeners(100); // allow many concurrent SSE clients
|
|
20
|
+
// ── Replay buffer ─────────────────────────────────────────────────────────────
|
|
21
|
+
// Keeps the last 400 tokens in memory so new SSE clients can catch up
|
|
22
|
+
// on what agents were doing when they connect (or reconnect after a drop).
|
|
23
|
+
// Per-agent: only the CURRENT turn is buffered (cleared on agent_start).
|
|
24
|
+
// When a turn ends (agent_end received), the buffer is retained so new clients
|
|
25
|
+
// can see what each agent last did.
|
|
26
|
+
const REPLAY_LIMIT = 400;
|
|
27
|
+
const _replayBuffer = [];
|
|
28
|
+
/** Add a token to the replay buffer. On agent_start, clear previous tokens for that agent. */
|
|
29
|
+
function bufferToken(tok) {
|
|
30
|
+
if (tok.type === "agent_start") {
|
|
31
|
+
// Clear previous tokens for this agent so stale state doesn't replay
|
|
32
|
+
for (let i = _replayBuffer.length - 1; i >= 0; i--) {
|
|
33
|
+
if (_replayBuffer[i].agentId === tok.agentId)
|
|
34
|
+
_replayBuffer.splice(i, 1);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
_replayBuffer.push(tok);
|
|
38
|
+
if (_replayBuffer.length > REPLAY_LIMIT)
|
|
39
|
+
_replayBuffer.shift();
|
|
40
|
+
}
|
|
41
|
+
/** Get the current replay buffer (a snapshot for replaying to new clients). */
|
|
42
|
+
export function getReplayBuffer() {
|
|
43
|
+
return _replayBuffer.slice();
|
|
44
|
+
}
|
|
45
|
+
// ── Publisher ─────────────────────────────────────────────────────────────────
|
|
46
|
+
/**
|
|
47
|
+
* Convert a pi-agent-core AgentEvent into a StreamToken and emit it on the bus.
|
|
48
|
+
* Call this inside any agent's subscribe() handler.
|
|
49
|
+
*/
|
|
50
|
+
export function publishAgentStream(agentId, event) {
|
|
51
|
+
const emit = (tok) => {
|
|
52
|
+
bufferToken(tok);
|
|
53
|
+
agentStreamBus.emit("token", tok);
|
|
54
|
+
};
|
|
55
|
+
switch (event.type) {
|
|
56
|
+
case "agent_start":
|
|
57
|
+
trackTurnStart(agentId);
|
|
58
|
+
emit({ agentId, type: "agent_start", content: "" });
|
|
59
|
+
break;
|
|
60
|
+
case "message_update": {
|
|
61
|
+
const ae = event.assistantMessageEvent;
|
|
62
|
+
if (!ae)
|
|
63
|
+
break;
|
|
64
|
+
if (ae.type === "text_delta" && ae.delta) {
|
|
65
|
+
trackOutputChars(agentId, ae.delta.length);
|
|
66
|
+
emit({ agentId, type: "text", content: ae.delta });
|
|
67
|
+
}
|
|
68
|
+
if (ae.type === "thinking_start") {
|
|
69
|
+
emit({ agentId, type: "thinking_start", content: "" });
|
|
70
|
+
}
|
|
71
|
+
if (ae.type === "thinking_delta" && ae.delta) {
|
|
72
|
+
trackOutputChars(agentId, ae.delta.length);
|
|
73
|
+
emit({ agentId, type: "thinking", content: ae.delta });
|
|
74
|
+
}
|
|
75
|
+
if (ae.type === "thinking_end") {
|
|
76
|
+
emit({ agentId, type: "thinking_end", content: "" });
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case "tool_execution_start": {
|
|
81
|
+
const toolArgs = event.args && typeof event.args === "object"
|
|
82
|
+
? event.args
|
|
83
|
+
: undefined;
|
|
84
|
+
// Count tool argument chars as output (models often produce output via tool calls)
|
|
85
|
+
if (toolArgs) {
|
|
86
|
+
const argsStr = JSON.stringify(toolArgs);
|
|
87
|
+
trackOutputChars(agentId, argsStr.length);
|
|
88
|
+
}
|
|
89
|
+
emit({
|
|
90
|
+
agentId,
|
|
91
|
+
type: "tool_start",
|
|
92
|
+
content: event.toolName ?? "",
|
|
93
|
+
toolName: event.toolName,
|
|
94
|
+
toolArgs,
|
|
95
|
+
});
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
case "tool_execution_end": {
|
|
99
|
+
const e = event;
|
|
100
|
+
// Extract text content from the AgentToolResult
|
|
101
|
+
let toolResult = "";
|
|
102
|
+
if (e.result?.content && Array.isArray(e.result.content)) {
|
|
103
|
+
toolResult = e.result.content
|
|
104
|
+
.filter((c) => c.type === "text")
|
|
105
|
+
.map((c) => String(c.text || ""))
|
|
106
|
+
.join("")
|
|
107
|
+
.substring(0, 400); // cap at 400 chars for the stream panel
|
|
108
|
+
}
|
|
109
|
+
emit({
|
|
110
|
+
agentId,
|
|
111
|
+
type: "tool_end",
|
|
112
|
+
content: "",
|
|
113
|
+
toolName: e.toolName,
|
|
114
|
+
toolResult,
|
|
115
|
+
isError: e.isError ?? false,
|
|
116
|
+
});
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
case "agent_end": {
|
|
120
|
+
// Extract real usage from AssistantMessages in the event
|
|
121
|
+
const msgs = event.messages ?? [];
|
|
122
|
+
let realInput = 0;
|
|
123
|
+
let realOutput = 0;
|
|
124
|
+
let realCostUsd = 0;
|
|
125
|
+
let model;
|
|
126
|
+
for (const msg of msgs) {
|
|
127
|
+
if (msg.role === "assistant" && msg.usage) {
|
|
128
|
+
realInput += msg.usage.input ?? 0;
|
|
129
|
+
realOutput += msg.usage.output ?? 0;
|
|
130
|
+
realCostUsd += msg.usage.cost?.total ?? 0;
|
|
131
|
+
if (msg.model)
|
|
132
|
+
model = msg.model;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const hasRealTokens = realInput > 0 || realOutput > 0;
|
|
136
|
+
if (hasRealTokens) {
|
|
137
|
+
// Use real token counts and cost from the provider
|
|
138
|
+
const rates = model ? getModelCostRates(msgs.find((m) => m.role === "assistant")?.provider ?? "", model) : null;
|
|
139
|
+
trackTurnEnd(agentId, {
|
|
140
|
+
model,
|
|
141
|
+
inputTokens: realInput,
|
|
142
|
+
outputTokens: realOutput,
|
|
143
|
+
costUsd: realCostUsd > 0 ? realCostUsd : undefined,
|
|
144
|
+
inputCostPerM: rates?.inputPerM,
|
|
145
|
+
outputCostPerM: rates?.outputPerM,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Fallback to char-based estimation (model name still useful)
|
|
150
|
+
trackTurnEnd(agentId, model ? { model } : undefined);
|
|
151
|
+
}
|
|
152
|
+
emit({ agentId, type: "agent_end", content: "" });
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
default:
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=agentStreamBus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentStreamBus.js","sourceRoot":"","sources":["../../src/atp/agentStreamBus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Tool Configuration — catalog of all tools per agent + persistent enable/disable config.
|
|
3
|
+
* Stored in data/agent-tool-config.json as { [agentId]: string[] } (list of enabled tool IDs).
|
|
4
|
+
* Default: all tools enabled (no file entry = all enabled).
|
|
5
|
+
*/
|
|
6
|
+
export interface ToolDef {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
group: string;
|
|
11
|
+
locked?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface AgentProfile {
|
|
14
|
+
agent_id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
role: string;
|
|
17
|
+
department: string;
|
|
18
|
+
initials: string;
|
|
19
|
+
color: string;
|
|
20
|
+
implemented: boolean;
|
|
21
|
+
tools: ToolDef[];
|
|
22
|
+
}
|
|
23
|
+
export declare const AGENT_PROFILES: AgentProfile[];
|
|
24
|
+
export declare function readToolConfig(): Record<string, string[]>;
|
|
25
|
+
export declare function writeToolConfig(cfg: Record<string, string[]>): void;
|
|
26
|
+
/** Returns list of enabled tool IDs for an agent. Locked tools are always included. */
|
|
27
|
+
export declare function getEnabledTools(agentId: string): string[];
|
|
28
|
+
/** Persist a new enabled-tools list for an agent. */
|
|
29
|
+
export declare function setAgentTools(agentId: string, toolIds: string[]): void;
|
|
30
|
+
/**
|
|
31
|
+
* Apply tool enable/disable config to a list of AgentTool objects.
|
|
32
|
+
* - Locked tools: always pass through unchanged.
|
|
33
|
+
* - Disabled tools: kept in schema (no hallucination) but execute returns a
|
|
34
|
+
* "disabled" error. A per-tool retry counter escalates the message on
|
|
35
|
+
* repeated calls to discourage the LLM from retrying.
|
|
36
|
+
*/
|
|
37
|
+
export declare function applyToolConfig(agentId: string, allTools: any[]): any[];
|
|
38
|
+
//# sourceMappingURL=agentToolConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentToolConfig.d.ts","sourceRoot":"","sources":["../../src/atp/agentToolConfig.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AA8KD,eAAO,MAAM,cAAc,EAAE,YAAY,EAAyB,CAAC;AAInE,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAOzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAEnE;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAUzD;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAItE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CA4BvE"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Tool Configuration — catalog of all tools per agent + persistent enable/disable config.
|
|
3
|
+
* Stored in data/agent-tool-config.json as { [agentId]: string[] } (list of enabled tool IDs).
|
|
4
|
+
* Default: all tools enabled (no file entry = all enabled).
|
|
5
|
+
*/
|
|
6
|
+
import { readFileSync, writeFileSync, existsSync } from "fs";
|
|
7
|
+
import { join } from "path";
|
|
8
|
+
import { config } from "../config.js";
|
|
9
|
+
import { loadRoster } from "../ar/roster.js";
|
|
10
|
+
const CONFIG_PATH = join(config.dataDir, "agent-tool-config.json");
|
|
11
|
+
// ── Shared tool sets ──────────────────────────────────────────────────────────
|
|
12
|
+
const MEMORY_TOOLS = [
|
|
13
|
+
{ id: "read_stm", name: "Read STM", description: "Read short-term memory (daily scratchpad)", group: "Memory" },
|
|
14
|
+
{ id: "write_stm", name: "Write STM", description: "Write short-term memory", group: "Memory" },
|
|
15
|
+
{ id: "read_ltm", name: "Read LTM", description: "Read long-term memory journal", group: "Memory" },
|
|
16
|
+
{ id: "write_ltm", name: "Write LTM", description: "Write long-term memory journal", group: "Memory" },
|
|
17
|
+
{ id: "read_sltm", name: "Read SLTM", description: "Read permanent stable memory", group: "Memory" },
|
|
18
|
+
{ id: "write_sltm", name: "Write SLTM", description: "Write permanent stable memory", group: "Memory" },
|
|
19
|
+
];
|
|
20
|
+
// PM messaging — includes broadcast (PM is the only coordinator who broadcasts)
|
|
21
|
+
const MESSAGING_TOOLS = [
|
|
22
|
+
{ id: "message_agent", name: "Message Agent", description: "Send a direct message to any agent", group: "Messaging", locked: true },
|
|
23
|
+
{ id: "read_inbox", name: "Read Inbox", description: "Check and clear own inbox", group: "Messaging", locked: true },
|
|
24
|
+
{ id: "broadcast_message", name: "Broadcast Message", description: "Send to ALL agents at once — PM use only", group: "Messaging" },
|
|
25
|
+
];
|
|
26
|
+
// Worker messaging — point-to-point only (no broadcast)
|
|
27
|
+
const AGENT_MESSAGING_TOOLS = [
|
|
28
|
+
{ id: "message_agent", name: "Message Agent", description: "Send a direct message to any agent", group: "Messaging", locked: true },
|
|
29
|
+
{ id: "read_inbox", name: "Read Inbox", description: "Check and clear own inbox", group: "Messaging", locked: true },
|
|
30
|
+
];
|
|
31
|
+
// BA file tools — documentation files only (.md and .mmd)
|
|
32
|
+
const BA_FILE_TOOLS = [
|
|
33
|
+
{ id: "read", name: "read", description: "Read .md and .mmd documentation files only", group: "Files" },
|
|
34
|
+
{ id: "write", name: "write", description: "Write .md and .mmd documentation files only", group: "Files" },
|
|
35
|
+
{ id: "edit", name: "edit", description: "Edit .md and .mmd documentation files only", group: "Files" },
|
|
36
|
+
];
|
|
37
|
+
const DATE_TOOL = { id: "get_current_date", name: "Get Current Date", description: "Get current date and time", group: "Utilities" };
|
|
38
|
+
const WEB_TOOLS = [
|
|
39
|
+
{ id: "web_search", name: "Web Search", description: "Search the web via SearXNG", group: "Web" },
|
|
40
|
+
{ id: "web_read", name: "Read Web Page", description: "Fetch and read a web page's text content", group: "Web" },
|
|
41
|
+
];
|
|
42
|
+
const READONLY_FILE_TOOLS = [
|
|
43
|
+
{ id: "read", name: "read", description: "Read files from disk", group: "Files" },
|
|
44
|
+
{ id: "grep", name: "grep", description: "Search file content by pattern", group: "Files" },
|
|
45
|
+
{ id: "find", name: "find", description: "Find files by glob pattern", group: "Files" },
|
|
46
|
+
{ id: "ls", name: "ls", description: "List directory contents", group: "Files" },
|
|
47
|
+
];
|
|
48
|
+
const CODING_FILE_TOOLS = [
|
|
49
|
+
{ id: "read", name: "read", description: "Read files from disk", group: "Files" },
|
|
50
|
+
{ id: "write", name: "write", description: "Create or overwrite files", group: "Files" },
|
|
51
|
+
{ id: "edit", name: "edit", description: "Make targeted edits to a file", group: "Files" },
|
|
52
|
+
{ id: "bash", name: "bash", description: "Execute shell commands", group: "Files" },
|
|
53
|
+
];
|
|
54
|
+
const SPECIALIST_TASK_TOOLS = [
|
|
55
|
+
{ id: "read_my_tasks", name: "Read My Tasks", description: "View tasks assigned to me", group: "Task Management" },
|
|
56
|
+
{ id: "read_task_details", name: "Task Details", description: "Get full task information", group: "Task Management" },
|
|
57
|
+
{ id: "update_my_task", name: "Update My Task", description: "Update task status & result", group: "Task Management" },
|
|
58
|
+
{ id: "read_task_messages", name: "Read Task Messages", description: "Read PM messages for a specific task", group: "Task Management" },
|
|
59
|
+
{ id: "self_assign_task", name: "Self-Assign Task", description: "Create & claim a task from direct request", group: "Task Management" },
|
|
60
|
+
];
|
|
61
|
+
// ── Tool profile to ToolDef[] mapping ─────────────────────────────────────────
|
|
62
|
+
const GIT_TOOLS = [
|
|
63
|
+
{ id: "git_init", name: "Git Init", description: "Initialize git repo in a project folder", group: "Git" },
|
|
64
|
+
{ id: "git_status", name: "Git Status", description: "Show git status for a project", group: "Git" },
|
|
65
|
+
{ id: "git_diff", name: "Git Diff", description: "Show file changes in a project", group: "Git" },
|
|
66
|
+
{ id: "git_add", name: "Git Add", description: "Stage files for commit", group: "Git" },
|
|
67
|
+
{ id: "git_commit", name: "Git Commit", description: "Commit staged changes", group: "Git" },
|
|
68
|
+
{ id: "git_log", name: "Git Log", description: "Show commit history", group: "Git" },
|
|
69
|
+
];
|
|
70
|
+
const GLOB_TOOL = { id: "glob", name: "glob", description: "Find files matching a glob pattern", group: "Files" };
|
|
71
|
+
const SCOPED_WRITE_TOOLS = [
|
|
72
|
+
{ id: "write", name: "write", description: "Write .md and .mmd files only", group: "Files" },
|
|
73
|
+
{ id: "edit", name: "edit", description: "Edit .md and .mmd files only", group: "Files" },
|
|
74
|
+
];
|
|
75
|
+
const QA_DOMAIN_TOOLS = [
|
|
76
|
+
{ id: "run_code_scan", name: "Run Code Scan", description: "Trigger SonarQube code scan via OCTO-FLOWS", group: "OCTO-Flows" },
|
|
77
|
+
{ id: "run_flow", name: "Run OCTO-Flow", description: "Trigger any named OCTO-FLOW pipeline", group: "OCTO-Flows" },
|
|
78
|
+
];
|
|
79
|
+
const SECURITY_DOMAIN_TOOLS = [
|
|
80
|
+
{ id: "run_sast_scan", name: "Run SAST Scan", description: "Trigger Semgrep SAST scan via OCTO-FLOWS", group: "OCTO-Flows" },
|
|
81
|
+
{ id: "run_secret_scan", name: "Run Secret Scan", description: "Trigger Gitleaks secret scan via OCTO-FLOWS", group: "OCTO-Flows" },
|
|
82
|
+
{ id: "run_sca_scan", name: "Run SCA Scan", description: "Trigger Trivy dependency vulnerability scan via OCTO-FLOWS", group: "OCTO-Flows" },
|
|
83
|
+
{ id: "run_flow", name: "Run OCTO-Flow", description: "Trigger any named OCTO-FLOW pipeline", group: "OCTO-Flows" },
|
|
84
|
+
];
|
|
85
|
+
/** Build ToolDef[] for a specialist based on their roster entry. */
|
|
86
|
+
function buildToolDefs(entry) {
|
|
87
|
+
const tools = [...SPECIALIST_TASK_TOOLS];
|
|
88
|
+
// File tools based on tool_profile
|
|
89
|
+
switch (entry.tool_profile) {
|
|
90
|
+
case "coding":
|
|
91
|
+
tools.push(...CODING_FILE_TOOLS);
|
|
92
|
+
break;
|
|
93
|
+
case "coding_extended":
|
|
94
|
+
tools.push(...CODING_FILE_TOOLS);
|
|
95
|
+
// coding_extended adds grep/find/ls on top of coding (bash already included)
|
|
96
|
+
tools.push({ id: "grep", name: "grep", description: "Search file content", group: "Files" }, { id: "find", name: "find", description: "Find files by pattern", group: "Files" }, { id: "ls", name: "ls", description: "List directory contents", group: "Files" });
|
|
97
|
+
break;
|
|
98
|
+
case "scoped_write":
|
|
99
|
+
tools.push(...READONLY_FILE_TOOLS, ...SCOPED_WRITE_TOOLS);
|
|
100
|
+
break;
|
|
101
|
+
case "ba":
|
|
102
|
+
tools.push(...BA_FILE_TOOLS);
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
tools.push(...READONLY_FILE_TOOLS);
|
|
106
|
+
}
|
|
107
|
+
// Capability flags
|
|
108
|
+
if (entry.capabilities?.git)
|
|
109
|
+
tools.push(...GIT_TOOLS);
|
|
110
|
+
if (entry.capabilities?.glob)
|
|
111
|
+
tools.push(GLOB_TOOL);
|
|
112
|
+
// Domain tools
|
|
113
|
+
if (entry.domain_tools?.includes("qa"))
|
|
114
|
+
tools.push(...QA_DOMAIN_TOOLS);
|
|
115
|
+
if (entry.domain_tools?.includes("security"))
|
|
116
|
+
tools.push(...SECURITY_DOMAIN_TOOLS);
|
|
117
|
+
tools.push(...MEMORY_TOOLS, ...AGENT_MESSAGING_TOOLS, DATE_TOOL, ...WEB_TOOLS);
|
|
118
|
+
return tools;
|
|
119
|
+
}
|
|
120
|
+
/** PM tools — hardcoded since PM is a unique role with its own tool set. */
|
|
121
|
+
const PM_TOOLS = [
|
|
122
|
+
{ id: "create_and_assign_task", name: "Create & Assign Task", description: "Create a task and auto-assign to an agent", group: "Task Management" },
|
|
123
|
+
{ id: "start_task", name: "Start Task", description: "Trigger a pending task by ID", group: "Task Management" },
|
|
124
|
+
{ id: "start_tasks", name: "Start Multiple Tasks", description: "Trigger multiple pending tasks at once", group: "Task Management" },
|
|
125
|
+
{ id: "reschedule_task", name: "Reschedule Task", description: "Change a task's scheduled date", group: "Task Management" },
|
|
126
|
+
{ id: "send_task_message", name: "Send Task Message", description: "Message the agent assigned to a task", group: "Task Management" },
|
|
127
|
+
{ id: "send_priority_message", name: "Priority Message", description: "Send a priority interrupt to an agent", group: "Task Management" },
|
|
128
|
+
{ id: "check_task_status", name: "Check Task Status", description: "Check current status of any task", group: "Task Management" },
|
|
129
|
+
{ id: "list_all_tasks", name: "List All Tasks", description: "View the full ATP task board", group: "Task Management" },
|
|
130
|
+
{ id: "read_messages", name: "Read Messages", description: "Read notifications from agents", group: "Task Management" },
|
|
131
|
+
{ id: "restart_task", name: "Restart Task", description: "Force-restart a stuck or stalled task", group: "Task Management" },
|
|
132
|
+
{ id: "cancel_task", name: "Cancel Task", description: "Cancel a task (keeps record)", group: "Task Management" },
|
|
133
|
+
{ id: "delete_task", name: "Delete Task", description: "Permanently delete a completed task", group: "Task Management" },
|
|
134
|
+
{ id: "interrupt_agent", name: "Interrupt Agent", description: "Abort a running agent mid-stream", group: "Task Management" },
|
|
135
|
+
{ id: "unblock_agent", name: "Unblock Agent", description: "Clear interrupt flags on an agent", group: "Task Management" },
|
|
136
|
+
{ id: "view_employee_directory", name: "Employee Directory", description: "List all employees and their status", group: "HR" },
|
|
137
|
+
{ id: "lookup_employee", name: "Lookup Employee", description: "Get full details on any employee", group: "HR" },
|
|
138
|
+
{ id: "set_employee_status", name: "Set Employee Status", description: "Mark an employee available/busy/offline", group: "HR" },
|
|
139
|
+
...READONLY_FILE_TOOLS,
|
|
140
|
+
...MEMORY_TOOLS,
|
|
141
|
+
...MESSAGING_TOOLS,
|
|
142
|
+
DATE_TOOL,
|
|
143
|
+
...WEB_TOOLS,
|
|
144
|
+
];
|
|
145
|
+
// ── Full agent catalog — built dynamically from roster.json ──────────────────
|
|
146
|
+
function buildAgentProfiles() {
|
|
147
|
+
const roster = loadRoster();
|
|
148
|
+
return roster.agents.filter((e) => e.enabled).map((entry) => ({
|
|
149
|
+
agent_id: entry.agent_id,
|
|
150
|
+
name: entry.name,
|
|
151
|
+
role: entry.role,
|
|
152
|
+
department: entry.department,
|
|
153
|
+
initials: entry.initials,
|
|
154
|
+
color: entry.color,
|
|
155
|
+
implemented: true,
|
|
156
|
+
tools: entry.category === "pm" ? PM_TOOLS : buildToolDefs(entry),
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
export const AGENT_PROFILES = buildAgentProfiles();
|
|
160
|
+
// ── Persistence ───────────────────────────────────────────────────────────────
|
|
161
|
+
export function readToolConfig() {
|
|
162
|
+
if (!existsSync(CONFIG_PATH))
|
|
163
|
+
return {};
|
|
164
|
+
try {
|
|
165
|
+
return JSON.parse(readFileSync(CONFIG_PATH, "utf-8"));
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
return {};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
export function writeToolConfig(cfg) {
|
|
172
|
+
writeFileSync(CONFIG_PATH, JSON.stringify(cfg, null, 2), "utf-8");
|
|
173
|
+
}
|
|
174
|
+
/** Returns list of enabled tool IDs for an agent. Locked tools are always included. */
|
|
175
|
+
export function getEnabledTools(agentId) {
|
|
176
|
+
const profile = AGENT_PROFILES.find((a) => a.agent_id === agentId);
|
|
177
|
+
const lockedIds = profile?.tools.filter((t) => t.locked).map((t) => t.id) ?? [];
|
|
178
|
+
const stored = readToolConfig();
|
|
179
|
+
if (stored[agentId]) {
|
|
180
|
+
// Merge locked tools into stored list so they always appear enabled
|
|
181
|
+
const merged = new Set([...stored[agentId], ...lockedIds]);
|
|
182
|
+
return [...merged];
|
|
183
|
+
}
|
|
184
|
+
return profile ? profile.tools.map((t) => t.id) : [];
|
|
185
|
+
}
|
|
186
|
+
/** Persist a new enabled-tools list for an agent. */
|
|
187
|
+
export function setAgentTools(agentId, toolIds) {
|
|
188
|
+
const cfg = readToolConfig();
|
|
189
|
+
cfg[agentId] = toolIds;
|
|
190
|
+
writeToolConfig(cfg);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Apply tool enable/disable config to a list of AgentTool objects.
|
|
194
|
+
* - Locked tools: always pass through unchanged.
|
|
195
|
+
* - Disabled tools: kept in schema (no hallucination) but execute returns a
|
|
196
|
+
* "disabled" error. A per-tool retry counter escalates the message on
|
|
197
|
+
* repeated calls to discourage the LLM from retrying.
|
|
198
|
+
*/
|
|
199
|
+
export function applyToolConfig(agentId, allTools) {
|
|
200
|
+
const stored = readToolConfig();
|
|
201
|
+
// No stored config for this agent = full access, no blocking
|
|
202
|
+
if (!stored[agentId])
|
|
203
|
+
return allTools;
|
|
204
|
+
const enabled = new Set(getEnabledTools(agentId));
|
|
205
|
+
const profile = AGENT_PROFILES.find((a) => a.agent_id === agentId);
|
|
206
|
+
const locked = new Set(profile?.tools.filter((t) => t.locked).map((t) => t.id) ?? []);
|
|
207
|
+
return allTools.map((t) => {
|
|
208
|
+
// Locked or enabled — pass through as-is
|
|
209
|
+
if (locked.has(t.name) || enabled.has(t.name))
|
|
210
|
+
return t;
|
|
211
|
+
// Disabled — soft-block with escalating messages
|
|
212
|
+
let callCount = 0;
|
|
213
|
+
return {
|
|
214
|
+
...t,
|
|
215
|
+
execute: async () => {
|
|
216
|
+
callCount++;
|
|
217
|
+
const msg = callCount === 1
|
|
218
|
+
? `Tool '${t.name}' is disabled by the administrator. Do not retry — respond without it.`
|
|
219
|
+
: `SYSTEM BLOCK: Tool '${t.name}' is disabled. You have called it ${callCount} times. Stop immediately and respond without it.`;
|
|
220
|
+
return { content: [{ type: "text", text: msg }], details: {} };
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=agentToolConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentToolConfig.js","sourceRoot":"","sources":["../../src/atp/agentToolConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent chat log for user ↔ agent messages.
|
|
3
|
+
*
|
|
4
|
+
* Captures every message between Sir (the founder) and VEC agents,
|
|
5
|
+
* regardless of channel (CLI, Telegram, Dashboard). The dashboard
|
|
6
|
+
* Teams panel reads from this log to show the full conversation history.
|
|
7
|
+
*
|
|
8
|
+
* Storage: data/chat-log.json (max 200 entries, oldest dropped first)
|
|
9
|
+
*/
|
|
10
|
+
export interface ChatEntry {
|
|
11
|
+
id: string;
|
|
12
|
+
timestamp: string;
|
|
13
|
+
/** Agent key or "user" */
|
|
14
|
+
from: string;
|
|
15
|
+
/** Agent key or "user" */
|
|
16
|
+
to: string;
|
|
17
|
+
message: string;
|
|
18
|
+
/** Where the message originated */
|
|
19
|
+
channel: "cli" | "telegram" | "dashboard" | "agent";
|
|
20
|
+
/** If part of a group conversation */
|
|
21
|
+
group_id?: string;
|
|
22
|
+
}
|
|
23
|
+
declare class UserChatLogClass {
|
|
24
|
+
private read;
|
|
25
|
+
private write;
|
|
26
|
+
/** Append a new chat entry. */
|
|
27
|
+
log(entry: Omit<ChatEntry, "id" | "timestamp">): void;
|
|
28
|
+
/** Read last `limit` entries (default 100). */
|
|
29
|
+
getRecent(limit?: number): ChatEntry[];
|
|
30
|
+
clear(): void;
|
|
31
|
+
}
|
|
32
|
+
export declare const UserChatLog: UserChatLogClass;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=chatLog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatLog.d.ts","sourceRoot":"","sources":["../../src/atp/chatLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,OAAO,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IACpD,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,cAAM,gBAAgB;IACpB,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,KAAK;IASb,+BAA+B;IAC/B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI;IAcrD,+CAA+C;IAC/C,SAAS,CAAC,KAAK,GAAE,MAAY,GAAG,SAAS,EAAE;IAK3C,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,WAAW,kBAAyB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent chat log for user ↔ agent messages.
|
|
3
|
+
*
|
|
4
|
+
* Captures every message between Sir (the founder) and VEC agents,
|
|
5
|
+
* regardless of channel (CLI, Telegram, Dashboard). The dashboard
|
|
6
|
+
* Teams panel reads from this log to show the full conversation history.
|
|
7
|
+
*
|
|
8
|
+
* Storage: data/chat-log.json (max 200 entries, oldest dropped first)
|
|
9
|
+
*/
|
|
10
|
+
import fs from "fs";
|
|
11
|
+
import path from "path";
|
|
12
|
+
import { config } from "../config.js";
|
|
13
|
+
const LOG_PATH = path.join(config.dataDir, "chat-log.json");
|
|
14
|
+
const MAX_ENTRIES = 200;
|
|
15
|
+
class UserChatLogClass {
|
|
16
|
+
read() {
|
|
17
|
+
try {
|
|
18
|
+
const raw = fs.readFileSync(LOG_PATH, "utf-8");
|
|
19
|
+
const parsed = JSON.parse(raw);
|
|
20
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
write(entries) {
|
|
27
|
+
try {
|
|
28
|
+
fs.mkdirSync(path.dirname(LOG_PATH), { recursive: true });
|
|
29
|
+
fs.writeFileSync(LOG_PATH, JSON.stringify(entries), "utf-8");
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Non-fatal
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** Append a new chat entry. */
|
|
36
|
+
log(entry) {
|
|
37
|
+
const entries = this.read();
|
|
38
|
+
entries.push({
|
|
39
|
+
...entry,
|
|
40
|
+
id: `${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,
|
|
41
|
+
timestamp: new Date().toISOString(),
|
|
42
|
+
});
|
|
43
|
+
// Trim to max
|
|
44
|
+
if (entries.length > MAX_ENTRIES) {
|
|
45
|
+
entries.splice(0, entries.length - MAX_ENTRIES);
|
|
46
|
+
}
|
|
47
|
+
this.write(entries);
|
|
48
|
+
}
|
|
49
|
+
/** Read last `limit` entries (default 100). */
|
|
50
|
+
getRecent(limit = 100) {
|
|
51
|
+
const entries = this.read();
|
|
52
|
+
return entries.slice(-limit);
|
|
53
|
+
}
|
|
54
|
+
clear() {
|
|
55
|
+
this.write([]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export const UserChatLog = new UserChatLogClass();
|
|
59
|
+
//# sourceMappingURL=chatLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatLog.js","sourceRoot":"","sources":["../../src/atp/chatLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAgBtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC5D,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,gBAAgB;IACZ,IAAI;QACV,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAoB;QAChC,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,GAAG,CAAC,KAA0C;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,KAAK;YACR,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAC7D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,cAAc;QACd,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,+CAA+C;IAC/C,SAAS,CAAC,QAAgB,GAAG;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a getApiKey resolver for Codex OAuth, or undefined if not using Codex.
|
|
3
|
+
* Pass the result directly into new Agent({ getApiKey: codexApiKeyResolver() }).
|
|
4
|
+
*/
|
|
5
|
+
export declare function codexApiKeyResolver(): ((provider: string) => Promise<string | undefined>) | undefined;
|
|
6
|
+
//# sourceMappingURL=codexAuth.d.ts.map
|