crow-central-agency 0.26.0 → 0.26.3
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/dist/_shared/index.js +2 -2
- package/dist/_shared/schemas/agent-runtime-state.schema.js +9 -0
- package/dist/_shared/schemas/agent.schema.js +18 -0
- package/dist/bootstrap.js +4 -1
- package/dist/config/constants.js +6 -0
- package/dist/config/env.js +1 -6
- package/dist/mcp/agents/agents-mcp-server.js +3 -1
- package/dist/mcp/agents/invoke-agent.js +4 -1
- package/dist/mcp/agents/search-workspace.js +104 -0
- package/dist/public/assets/arc-D7DDV_QI.js +1 -0
- package/dist/public/assets/architecture-7EHR7CIX-DG_7xbiq.js +1 -0
- package/dist/public/assets/architectureDiagram-3BPJPVTR-D9eaZGLN.js +36 -0
- package/dist/public/assets/array-BifhSqXX.js +1 -0
- package/dist/public/assets/blockDiagram-GPEHLZMM-B-ui54uY.js +132 -0
- package/dist/public/assets/{c4Diagram-AAUBKEIU-Bp3MvOdk.js → c4Diagram-AAUBKEIU-C7xPAjI3.js} +6 -6
- package/dist/public/assets/channel-Bqyn77ps.js +1 -0
- package/dist/public/assets/chunk-2J33WTMH-DLyyWUKS.js +1 -0
- package/dist/public/assets/chunk-3OPIFGDE-BAV3S28P.js +62 -0
- package/dist/public/assets/chunk-4BX2VUAB-BMsk68L-.js +1 -0
- package/dist/public/assets/chunk-55IACEB6--DpBVdAI.js +1 -0
- package/dist/public/assets/chunk-5ZQYHXKU-k4j14TFR.js +2 -0
- package/dist/public/assets/{chunk-727SXJPM-UOO-PL29.js → chunk-727SXJPM-BypqFsHB.js} +6 -6
- package/dist/public/assets/chunk-AQP2D5EJ-DrynAvvL.js +231 -0
- package/dist/public/assets/chunk-BSJP7CBP-9dKWaw0S.js +1 -0
- package/dist/public/assets/chunk-CSCIHK7Q-XbmkaXEE.js +124 -0
- package/dist/public/assets/{chunk-FMBD7UC4-BZ_ezk5U.js → chunk-FMBD7UC4-Cp4hTfZl.js} +1 -1
- package/dist/public/assets/chunk-L5ZTLDWV-Dv4f3XV4.js +1 -0
- package/dist/public/assets/chunk-ND2GUHAM-BgcUO3cE.js +1 -0
- package/dist/public/assets/chunk-NNHCCRGN-DlpIbxXb.js +159 -0
- package/dist/public/assets/chunk-NZK2D7GU-DEdNhH61.js +1 -0
- package/dist/public/assets/chunk-O5CBEL6O-BkWxYhMO.js +70 -0
- package/dist/public/assets/chunk-QZHKN3VN-D2IHPYC7.js +1 -0
- package/dist/public/assets/classDiagram-4FO5ZUOK-BLdtoNh2.js +1 -0
- package/dist/public/assets/classDiagram-v2-Q7XG4LA2-BLdtoNh2.js +1 -0
- package/dist/public/assets/cose-bilkent-S5V4N54A-DFygL_8B.js +1 -0
- package/dist/public/assets/dagre-BM42HDAG-BFYx57Wz.js +4 -0
- package/dist/public/assets/diagram-2AECGRRQ-IYSHkW-2.js +43 -0
- package/dist/public/assets/diagram-5GNKFQAL-UpYSKKej.js +10 -0
- package/dist/public/assets/diagram-KO2AKTUF-DbnrTKPq.js +3 -0
- package/dist/public/assets/diagram-LMA3HP47-DTqAJENa.js +24 -0
- package/dist/public/assets/diagram-OG6HWLK6-BWcvJIuP.js +24 -0
- package/dist/public/assets/dist-DFtMN8Vu.js +1 -0
- package/dist/public/assets/erDiagram-TEJ5UH35-BVEd8xBX.js +85 -0
- package/dist/public/assets/eventmodeling-FCH6USID-BX2CvCmJ.js +1 -0
- package/dist/public/assets/flowDiagram-I6XJVG4X-D9GrCXY9.js +162 -0
- package/dist/public/assets/ganttDiagram-6RSMTGT7-TRVQ1Fd3.js +292 -0
- package/dist/public/assets/gitGraph-WXDBUCRP-DK18B2O2.js +1 -0
- package/dist/public/assets/gitGraphDiagram-PVQCEYII-CawvqXpb.js +106 -0
- package/dist/public/assets/index-BD39KHS1.js +479 -0
- package/dist/public/assets/index-Cw0PF_eX.css +1 -0
- package/dist/public/assets/info-J43DQDTF-CpTMz9Tv.js +1 -0
- package/dist/public/assets/infoDiagram-5YYISTIA-BkyHKMEu.js +2 -0
- package/dist/public/assets/{ishikawaDiagram-YF4QCWOH-Dn0DKdcA.js → ishikawaDiagram-YF4QCWOH-BlYTG6NZ.js} +6 -6
- package/dist/public/assets/{journeyDiagram-JHISSGLW-D05e1p3k.js → journeyDiagram-JHISSGLW-BadSfDOq.js} +6 -6
- package/dist/public/assets/kanban-definition-UN3LZRKU-DSzr_MHX.js +89 -0
- package/dist/public/assets/line-BxRqDWw8.js +1 -0
- package/dist/public/assets/linear-DUggFzN6.js +1 -0
- package/dist/public/assets/mermaid-parser.core-BdOZ0AFQ.js +4 -0
- package/dist/public/assets/{mindmap-definition-RKZ34NQL-DJsoshgW.js → mindmap-definition-RKZ34NQL-CDanssiL.js} +30 -30
- package/dist/public/assets/packet-YPE3B663-DtrEp0HG.js +1 -0
- package/dist/public/assets/path-BWPyau1x.js +1 -0
- package/dist/public/assets/pie-LRSECV5Y-Biojo2af.js +1 -0
- package/dist/public/assets/pieDiagram-4H26LBE5-DvTobos2.js +30 -0
- package/dist/public/assets/{quadrantDiagram-W4KKPZXB-B8gTTwP5.js → quadrantDiagram-W4KKPZXB-DyqnhvLb.js} +6 -6
- package/dist/public/assets/radar-GUYGQ44K-Dl-OE3Q4.js +1 -0
- package/dist/public/assets/requirementDiagram-4Y6WPE33-C2TLOjB5.js +84 -0
- package/dist/public/assets/rough.esm-CSKSodPl.js +1 -0
- package/dist/public/assets/sankeyDiagram-5OEKKPKP-chSC0J1Z.js +40 -0
- package/dist/public/assets/sequenceDiagram-3UESZ5HK-gfcTwLo3.js +162 -0
- package/dist/public/assets/src-uUomEtsP.js +1 -0
- package/dist/public/assets/stateDiagram-AJRCARHV-BG4zEDn1.js +1 -0
- package/dist/public/assets/stateDiagram-v2-BHNVJYJU-Dd6Qk2n9.js +1 -0
- package/dist/public/assets/timeline-definition-PNZ67QCA-Ci2qPX8l.js +120 -0
- package/dist/public/assets/treeView-BLDUP644-CI9praQE.js +1 -0
- package/dist/public/assets/treemap-LRROVOQU-CFg0aDpp.js +1 -0
- package/dist/public/assets/vennDiagram-CIIHVFJN-9CSWWKTm.js +34 -0
- package/dist/public/assets/wardley-L42UT6IY-J8igKzxr.js +1 -0
- package/dist/public/assets/wardleyDiagram-YWT4CUSO-CEXKT4ed.js +78 -0
- package/dist/public/assets/{xychartDiagram-2RQKCTM6-BL2gcO0L.js → xychartDiagram-2RQKCTM6-xqxLFQu_.js} +7 -7
- package/dist/public/index.html +15 -2
- package/dist/routes/artifact.routes.js +21 -0
- package/dist/runner/agent-runner.js +31 -7
- package/dist/runner/agent-runner.types.js +2 -0
- package/dist/runner/claude-code-agent-runner.js +2 -2
- package/dist/runner/github-copilot-agent-runner.js +51 -22
- package/dist/runner/github-copilot-stream-processor.js +12 -1
- package/dist/runner/tool-activity-parser-utils.js +16 -0
- package/dist/runner/tool-activity-parser.js +1 -4
- package/dist/services/agent-registry.js +41 -10
- package/dist/services/artifact/artifact-manager.js +6 -1
- package/dist/services/artifact/artifact-tags.js +2 -2
- package/dist/services/runtime/agent-runtime-manager.js +32 -1
- package/dist/services/search/document-search-service.js +169 -0
- package/dist/services/search/document-search-service.types.js +12 -0
- package/dist/services/session/github-copilot-session-transformer.js +5 -2
- package/dist/services/session/session-message-transformer.js +2 -2
- package/dist/utils/fs-utils.js +8 -0
- package/dist/utils/message-template.js +9 -2
- package/package.json +10 -9
- package/dist/public/assets/arc-adBOpW_3.js +0 -1
- package/dist/public/assets/architecture-7EHR7CIX-BM3uZ41G.js +0 -1
- package/dist/public/assets/architectureDiagram-3BPJPVTR-CyYDwXdT.js +0 -36
- package/dist/public/assets/blockDiagram-GPEHLZMM-BaTbFS6g.js +0 -132
- package/dist/public/assets/channel-WwfMT9OL.js +0 -1
- package/dist/public/assets/chunk-2J33WTMH-BQLD_96K.js +0 -1
- package/dist/public/assets/chunk-4BX2VUAB-CsjEa7Xy.js +0 -1
- package/dist/public/assets/chunk-55IACEB6-DZGb1zVE.js +0 -1
- package/dist/public/assets/chunk-AQP2D5EJ-DDokG4xF.js +0 -231
- package/dist/public/assets/chunk-ND2GUHAM-Bjp0gfDO.js +0 -1
- package/dist/public/assets/chunk-QZHKN3VN-D5S04sRp.js +0 -1
- package/dist/public/assets/classDiagram-4FO5ZUOK-BdhGo_Iv.js +0 -1
- package/dist/public/assets/classDiagram-v2-Q7XG4LA2-BdhGo_Iv.js +0 -1
- package/dist/public/assets/cose-bilkent-S5V4N54A-BsELH7vp.js +0 -1
- package/dist/public/assets/dagre-BM42HDAG-BiSg5NvA.js +0 -4
- package/dist/public/assets/diagram-2AECGRRQ-C9T0YKoZ.js +0 -43
- package/dist/public/assets/diagram-5GNKFQAL-BnMtpQjO.js +0 -10
- package/dist/public/assets/diagram-KO2AKTUF-Q7ns-0Z5.js +0 -3
- package/dist/public/assets/diagram-LMA3HP47-BDs1Rb7q.js +0 -24
- package/dist/public/assets/diagram-OG6HWLK6-CzDIN69n.js +0 -24
- package/dist/public/assets/erDiagram-TEJ5UH35-CCgWxhuG.js +0 -85
- package/dist/public/assets/eventmodeling-FCH6USID-Dq2SBRIu.js +0 -1
- package/dist/public/assets/flowDiagram-I6XJVG4X-jkLE8x4R.js +0 -162
- package/dist/public/assets/ganttDiagram-6RSMTGT7-DFB_D6AI.js +0 -292
- package/dist/public/assets/gitGraph-WXDBUCRP-BOsTFEOS.js +0 -1
- package/dist/public/assets/gitGraphDiagram-PVQCEYII-J9LUumhG.js +0 -106
- package/dist/public/assets/index-Bod4VHkZ.js +0 -732
- package/dist/public/assets/index-DdDKmqq6.css +0 -1
- package/dist/public/assets/info-J43DQDTF-8-SxO_Yc.js +0 -1
- package/dist/public/assets/infoDiagram-5YYISTIA-xkuCMtOz.js +0 -2
- package/dist/public/assets/kanban-definition-UN3LZRKU-Dq2uULlK.js +0 -89
- package/dist/public/assets/linear-Bjh0J03y.js +0 -1
- package/dist/public/assets/mermaid-parser.core-D4hh7fAl.js +0 -161
- package/dist/public/assets/packet-YPE3B663-BT8zBOD4.js +0 -1
- package/dist/public/assets/pie-LRSECV5Y-JmIGhqyU.js +0 -1
- package/dist/public/assets/pieDiagram-4H26LBE5-CjSQqA7Z.js +0 -30
- package/dist/public/assets/radar-GUYGQ44K-BGxf9Glp.js +0 -1
- package/dist/public/assets/requirementDiagram-4Y6WPE33-yillybNW.js +0 -84
- package/dist/public/assets/sankeyDiagram-5OEKKPKP-DykcjOS-.js +0 -40
- package/dist/public/assets/sequenceDiagram-3UESZ5HK-C3J4dvIw.js +0 -162
- package/dist/public/assets/stateDiagram-AJRCARHV-Bx7ADTMy.js +0 -1
- package/dist/public/assets/stateDiagram-v2-BHNVJYJU-CAhRgBeY.js +0 -1
- package/dist/public/assets/timeline-definition-PNZ67QCA-DY6XOJNR.js +0 -120
- package/dist/public/assets/treeView-BLDUP644-uOGy7zUG.js +0 -1
- package/dist/public/assets/treemap-LRROVOQU-C-csMv2z.js +0 -1
- package/dist/public/assets/vennDiagram-CIIHVFJN-Bqvgn2qM.js +0 -34
- package/dist/public/assets/wardley-L42UT6IY-wGZ-nS_N.js +0 -1
- package/dist/public/assets/wardleyDiagram-YWT4CUSO-DW-nQKs1.js +0 -78
package/dist/_shared/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { CLAUDE_MODELS, GITHUB_COPILOT_MODELS, CLAUDE_CODE_MODEL_OPTIONS, ModelOptionSchema, CLAUDE_DEFAULT_MODEL, COPILOT_DEFAULT_MODEL, AgentIdSchema, AgentConfigSchema, AgentConfigTemplateSchema, CreateAgentInputSchema, UpdateAgentInputSchema, ToolConfigSchema, PermissionModeSchema, SettingSourceSchema, LoopConfigSchema, ConfiguredFeedSchema, MAX_LOOP_TIMES, PERMISSION_MODE, SETTING_SOURCE, DEFAULT_SETTING_SOURCES, TOOL_MODE, DEFAULT_CLAUDE_CODE_AVAILABLE_TOOLS, DEFAULT_GITHUB_COPILOT_AVAILABLE_TOOLS, DEFAULT_AVAILABLE_TOOLS_BY_TYPE, SUBAGENT_TOOL_NAME, AGENT_TYPE, } from "./schemas/agent.schema.js";
|
|
1
|
+
export { CLAUDE_MODELS, GITHUB_COPILOT_MODELS, CLAUDE_CODE_MODEL_OPTIONS, ModelOptionSchema, CLAUDE_DEFAULT_MODEL, COPILOT_DEFAULT_MODEL, AgentIdSchema, AgentConfigSchema, AgentConfigTemplateSchema, CreateAgentInputSchema, UpdateAgentInputSchema, ToolConfigSchema, PermissionModeSchema, SettingSourceSchema, DiscoveredSkillSchema, LoopConfigSchema, ConfiguredFeedSchema, MAX_LOOP_TIMES, PERMISSION_MODE, SETTING_SOURCE, DEFAULT_SETTING_SOURCES, TOOL_MODE, DEFAULT_CLAUDE_CODE_AVAILABLE_TOOLS, DEFAULT_GITHUB_COPILOT_AVAILABLE_TOOLS, DEFAULT_AVAILABLE_TOOLS_BY_TYPE, SUBAGENT_TOOL_NAME, AGENT_TYPE, } from "./schemas/agent.schema.js";
|
|
2
2
|
export { SchedulerTimeSchema, DAY_OF_WEEK, DayOfWeekSchema, TimeModeSchema, TIME_MODE, } from "./schemas/scheduler.schema.js";
|
|
3
3
|
export { createApiSuccessSchema, ApiErrorSchema, } from "./schemas/api-response.schema.js";
|
|
4
|
-
export { SessionUsageSchema, PendingPermissionInfoSchema, AgentRuntimeStateSchema, AgentActivitySchema, AGENT_ACTIVITY_TYPE, AGENT_STATUS, } from "./schemas/agent-runtime-state.schema.js";
|
|
4
|
+
export { SessionUsageSchema, PendingPermissionInfoSchema, PendingInstructionReminderSchema, AgentRuntimeStateSchema, AgentActivitySchema, AGENT_ACTIVITY_TYPE, AGENT_STATUS, } from "./schemas/agent-runtime-state.schema.js";
|
|
5
5
|
export { ClientMessageSchema, ServerMessageSchema, SendMessageSchema, InjectMessageSchema, PermissionResponseWsSchema, AgentTextWsMessageSchema, AgentActivityWsMessageSchema, AgentResultWsMessageSchema, AgentStatusWsMessageSchema, AgentCreatedWsMessageSchema, AgentUpdatedWsMessageSchema, AgentDeletedWsMessageSchema, AgentUsageWsMessageSchema, PermissionRequestWsMessageSchema, PermissionCancelledWsMessageSchema, ErrorWsMessageSchema, AgentMessageWsMessageSchema, AgentToolProgressWsMessageSchema, TaskAddedWsMessageSchema, TaskUpdatedWsMessageSchema, TaskAssignedWsMessageSchema, TaskStateChangedWsMessageSchema, TaskDeletedWsMessageSchema, CircleCreatedWsMessageSchema, CircleUpdatedWsMessageSchema, CircleDeletedWsMessageSchema, RelationshipCreatedWsMessageSchema, RelationshipDeletedWsMessageSchema, CLIENT_MESSAGE_TYPE, SERVER_MESSAGE_TYPE, } from "./schemas/websocket.schema.js";
|
|
6
6
|
export { PERMISSION_DECISION, PermissionRequestSchema, PermissionResponseSchema, } from "./schemas/permission.schema.js";
|
|
7
7
|
export { AgentMessageSchema, MessageAnnotationSchema, AGENT_MESSAGE_ROLE, AGENT_MESSAGE_TYPE, } from "./schemas/agent-message.schema.js";
|
|
@@ -56,6 +56,14 @@ export const PendingPermissionInfoSchema = z.object({
|
|
|
56
56
|
input: z.record(z.string(), z.unknown()).optional(),
|
|
57
57
|
decisionReason: z.string().optional(),
|
|
58
58
|
});
|
|
59
|
+
/**
|
|
60
|
+
* One-shot flags marking which instruction sources changed since the agent's last turn.
|
|
61
|
+
* Set when persona/AGENT.md is edited and cleared after the next turn injects a reminder.
|
|
62
|
+
*/
|
|
63
|
+
export const PendingInstructionReminderSchema = z.object({
|
|
64
|
+
persona: z.boolean().optional(),
|
|
65
|
+
agentMd: z.boolean().optional(),
|
|
66
|
+
});
|
|
59
67
|
/**
|
|
60
68
|
* Agent runtime state - maintained by the runtime manager per agent.
|
|
61
69
|
*/
|
|
@@ -72,5 +80,6 @@ export const AgentRuntimeStateSchema = z.object({
|
|
|
72
80
|
lastGmailCheckTimestamp: z.number().optional(),
|
|
73
81
|
lastError: z.string().optional(),
|
|
74
82
|
pendingPermissions: z.array(PendingPermissionInfoSchema).optional(),
|
|
83
|
+
pendingInstructionReminder: PendingInstructionReminderSchema.optional(),
|
|
75
84
|
});
|
|
76
85
|
//# sourceMappingURL=agent-runtime-state.schema.js.map
|
|
@@ -166,6 +166,21 @@ export const PermissionModeSchema = z.enum([
|
|
|
166
166
|
PERMISSION_MODE.DONT_ASK,
|
|
167
167
|
]);
|
|
168
168
|
export const SettingSourceSchema = z.enum([SETTING_SOURCE.USER, SETTING_SOURCE.PROJECT, SETTING_SOURCE.LOCAL]);
|
|
169
|
+
export const DiscoveredSkillSchema = z.object({
|
|
170
|
+
name: z.string(),
|
|
171
|
+
source: z.string(),
|
|
172
|
+
});
|
|
173
|
+
export const SettingSourceConfigSchema = z.object({
|
|
174
|
+
disableFileHooks: z.boolean().optional(),
|
|
175
|
+
instructionSources: z.array(z.string()).optional(),
|
|
176
|
+
disabledInstructionSources: z.array(z.string()).optional(),
|
|
177
|
+
discoveredSkills: z.array(DiscoveredSkillSchema).optional(),
|
|
178
|
+
disabledSkills: z.array(z.string()).optional(),
|
|
179
|
+
});
|
|
180
|
+
export const SettingSourceConfigInputSchema = SettingSourceConfigSchema.omit({
|
|
181
|
+
instructionSources: true,
|
|
182
|
+
discoveredSkills: true,
|
|
183
|
+
});
|
|
169
184
|
/**
|
|
170
185
|
* Tool configuration for agent
|
|
171
186
|
*/
|
|
@@ -192,6 +207,7 @@ export const AgentConfigSchema = z.object({
|
|
|
192
207
|
model: z.string().default(CLAUDE_DEFAULT_MODEL),
|
|
193
208
|
permissionMode: PermissionModeSchema.default(PERMISSION_MODE.DEFAULT),
|
|
194
209
|
settingSources: z.array(SettingSourceSchema).default([...DEFAULT_SETTING_SOURCES]),
|
|
210
|
+
settingSourceConfig: SettingSourceConfigSchema.optional(),
|
|
195
211
|
availableTools: z.array(z.string()).optional(),
|
|
196
212
|
toolConfig: ToolConfigSchema.default({ mode: TOOL_MODE.UNRESTRICTED }),
|
|
197
213
|
agentVoiceConfig: AgentVoiceConfigSchema.optional(),
|
|
@@ -224,6 +240,7 @@ export const CreateAgentInputSchema = z.object({
|
|
|
224
240
|
model: z.string().optional(),
|
|
225
241
|
permissionMode: PermissionModeSchema.optional(),
|
|
226
242
|
settingSources: z.array(SettingSourceSchema).optional(),
|
|
243
|
+
settingSourceConfig: SettingSourceConfigInputSchema.optional(),
|
|
227
244
|
toolConfig: ToolConfigSchema.optional(),
|
|
228
245
|
agentVoiceConfig: AgentVoiceConfigSchema.optional(),
|
|
229
246
|
mcpServerIds: z.array(z.string()).optional(),
|
|
@@ -246,6 +263,7 @@ export const UpdateAgentInputSchema = z.object({
|
|
|
246
263
|
model: z.string().optional(),
|
|
247
264
|
permissionMode: PermissionModeSchema.optional(),
|
|
248
265
|
settingSources: z.array(SettingSourceSchema).optional(),
|
|
266
|
+
settingSourceConfig: SettingSourceConfigInputSchema.optional(),
|
|
249
267
|
toolConfig: ToolConfigSchema.optional(),
|
|
250
268
|
agentVoiceConfig: AgentVoiceConfigSchema.optional(),
|
|
251
269
|
mcpServerIds: z.array(z.string()).optional(),
|
package/dist/bootstrap.js
CHANGED
|
@@ -11,6 +11,7 @@ import { SessionManager } from "./services/session/session-manager.js";
|
|
|
11
11
|
import { CopilotClientManager } from "./services/copilot/copilot-client-manager.js";
|
|
12
12
|
import { WsBroadcaster } from "./services/ws-broadcaster.js";
|
|
13
13
|
import { ArtifactManager } from "./services/artifact/artifact-manager.js";
|
|
14
|
+
import { DocumentSearchService } from "./services/search/document-search-service.js";
|
|
14
15
|
import { PlacesManager } from "./services/places/places-manager.js";
|
|
15
16
|
import { setupWebSocket } from "./server/setup-websocket.js";
|
|
16
17
|
import { registerArtifactRoutes } from "./routes/artifact.routes.js";
|
|
@@ -88,6 +89,8 @@ export async function bootstrap(options) {
|
|
|
88
89
|
const feedManager = new SimplyFeedManager(storeProvider, folderFileProvider, crowScheduler);
|
|
89
90
|
const artifactManager = new ArtifactManager(storeProvider, registry, circleManager);
|
|
90
91
|
await artifactManager.initialize();
|
|
92
|
+
const documentSearchService = new DocumentSearchService(artifactManager, taskManager, registry, circleManager);
|
|
93
|
+
await documentSearchService.initialize();
|
|
91
94
|
const placesManager = new PlacesManager();
|
|
92
95
|
const connectorManager = new ConnectorManager(storeProvider, registry, crowScheduler);
|
|
93
96
|
connectorManager.registerConnector(new GoogleConnector());
|
|
@@ -124,7 +127,7 @@ export async function bootstrap(options) {
|
|
|
124
127
|
routineManager.addRoutine(discordRoutine);
|
|
125
128
|
// Register built-in MCP servers
|
|
126
129
|
mcpManager.registerMcpServer(getArtifactsMcpServerDefinition(artifactManager, registry, circleManager, sensorManager));
|
|
127
|
-
mcpManager.registerMcpServer(getAgentsMcpServerDefinition(registry, runtimeManager, taskManager));
|
|
130
|
+
mcpManager.registerMcpServer(getAgentsMcpServerDefinition(registry, runtimeManager, taskManager, documentSearchService, circleManager));
|
|
128
131
|
mcpManager.registerMcpServer(getTasksMcpServerDefinition(taskManager, circleManager, sensorManager));
|
|
129
132
|
mcpManager.registerMcpServer(getFeedMcpServerDefinition(registry, feedManager, sensorManager, systemSettingsManager));
|
|
130
133
|
mcpManager.registerMcpServer(getAudioMcpServerDefinition(registry, artifactManager));
|
package/dist/config/constants.js
CHANGED
|
@@ -40,4 +40,10 @@ export const REMINDERS_STORE_TABLE = "reminders";
|
|
|
40
40
|
export const CLIENT_STORE_TABLE = "client";
|
|
41
41
|
export const CLIENT_STORE_TIMEZONE_KEY = "timezone";
|
|
42
42
|
export const CLIENT_STORE_LOCATION_KEY = "location";
|
|
43
|
+
/** Environment variable the Copilot runtime reads for its home directory. */
|
|
44
|
+
export const COPILOT_HOME_ENV = "COPILOT_HOME";
|
|
45
|
+
/** Default Copilot home directory name under the user's home when COPILOT_HOME is unset. */
|
|
46
|
+
export const COPILOT_DEFAULT_HOME_DIR_NAME = ".copilot";
|
|
47
|
+
/** Subdirectory under the Copilot home holding user-level skills. */
|
|
48
|
+
export const COPILOT_SKILLS_DIR_NAME = "skills";
|
|
43
49
|
//# sourceMappingURL=constants.js.map
|
package/dist/config/env.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import os from "node:os";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { expandPath } from "../utils/fs-utils.js";
|
|
4
5
|
const CONFIG_DIR = path.dirname(fileURLToPath(import.meta.url));
|
|
5
6
|
const DIST_DIR = path.resolve(CONFIG_DIR, "..");
|
|
6
7
|
const DEFAULT_STATIC_DIR = path.join(DIST_DIR, "public");
|
|
@@ -14,12 +15,6 @@ function getBoolean(key) {
|
|
|
14
15
|
const value = process.env[key]?.trim().toLowerCase();
|
|
15
16
|
return value === "true" || value === "1";
|
|
16
17
|
}
|
|
17
|
-
function expandPath(filePath) {
|
|
18
|
-
if (filePath.startsWith("~")) {
|
|
19
|
-
return path.join(os.homedir(), filePath.slice(1));
|
|
20
|
-
}
|
|
21
|
-
return path.resolve(filePath);
|
|
22
|
-
}
|
|
23
18
|
function readRequired(key) {
|
|
24
19
|
const value = process.env[key]?.trim();
|
|
25
20
|
if (!value) {
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { defineMcpTool } from "../crow-mcp-manager-utils.js";
|
|
2
2
|
import { getListAgentsToolConfig } from "./list-agents.js";
|
|
3
3
|
import { getInvokeAgentToolConfig } from "./invoke-agent.js";
|
|
4
|
+
import { getSearchWorkspaceToolConfig } from "./search-workspace.js";
|
|
4
5
|
export const CROW_AGENTS_MCP_SERVER_NAME = "crow-agents";
|
|
5
|
-
export function getAgentsMcpServerDefinition(registry, runtimeManager, taskManager) {
|
|
6
|
+
export function getAgentsMcpServerDefinition(registry, runtimeManager, taskManager, documentSearchService, circleManager) {
|
|
6
7
|
return {
|
|
7
8
|
name: CROW_AGENTS_MCP_SERVER_NAME,
|
|
8
9
|
getTools: (agentId) => [
|
|
9
10
|
defineMcpTool(getListAgentsToolConfig(agentId, registry)),
|
|
10
11
|
defineMcpTool(getInvokeAgentToolConfig(agentId, registry, runtimeManager, taskManager)),
|
|
12
|
+
defineMcpTool(getSearchWorkspaceToolConfig(agentId, documentSearchService, taskManager, circleManager)),
|
|
11
13
|
],
|
|
12
14
|
};
|
|
13
15
|
}
|
|
@@ -56,6 +56,9 @@ async function createTask(taskManager, sourceAgentConfig, targetAgentConfig, tas
|
|
|
56
56
|
const ownerSource = { sourceType: AGENT_TASK_SOURCE_TYPE.AGENT, agentId: targetAgentConfig.id };
|
|
57
57
|
// agent visibility enforcement in task manager
|
|
58
58
|
await taskManager.addTask(task, originateSource, ownerSource, parentTaskId);
|
|
59
|
-
return
|
|
59
|
+
return [
|
|
60
|
+
`Task sent to agent "${targetAgentConfig.name}" (${targetAgentConfig.id}). The agent is working on it and you will be notified when the result is ready.`,
|
|
61
|
+
"If you need this result to answer, wait for it before responding - do not answer from your own knowledge in the meantime, and do not reply in fragments as each delegated result arrives. Once all outstanding results are in, consolidate them into a single final response.",
|
|
62
|
+
].join(" ");
|
|
60
63
|
}
|
|
61
64
|
//# sourceMappingURL=invoke-agent.js.map
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ENTITY_TYPE } from "../../_shared/index.js";
|
|
3
|
+
import { DATA_SOURCE_TYPE, } from "../../services/search/document-search-service.types.js";
|
|
4
|
+
import { applyPagination, formatPaginationHeader, getErrorToolResult, textToolResult } from "../tool-utils.js";
|
|
5
|
+
const DEFAULT_SEARCH_LIMIT = 25;
|
|
6
|
+
const MAX_SEARCH_LIMIT = 200;
|
|
7
|
+
export const SEARCH_WORKSPACE_TOOL_NAME = "search_workspace";
|
|
8
|
+
const SEARCH_SOURCE_VALUES = [DATA_SOURCE_TYPE.ARTIFACT, DATA_SOURCE_TYPE.CIRCLE_ARTIFACT, DATA_SOURCE_TYPE.TASK];
|
|
9
|
+
export function getSearchWorkspaceToolConfig(agentId, documentSearchService, taskManager, circleManager) {
|
|
10
|
+
const inputSchema = {
|
|
11
|
+
query: z
|
|
12
|
+
.string()
|
|
13
|
+
.min(1)
|
|
14
|
+
.describe("Full-text query matched against artifact filenames and contents, task titles and results, and tags. Supports fuzzy and prefix matching."),
|
|
15
|
+
sources: z
|
|
16
|
+
.array(z.enum(SEARCH_SOURCE_VALUES))
|
|
17
|
+
.min(1)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe(`Restrict to specific sources. Values: ${SEARCH_SOURCE_VALUES.join(", ")}. Omit to search all.`),
|
|
20
|
+
limit: z
|
|
21
|
+
.number()
|
|
22
|
+
.optional()
|
|
23
|
+
.describe(`Maximum number of hits to return per page. Default ${DEFAULT_SEARCH_LIMIT}.`),
|
|
24
|
+
skip: z.number().optional().describe("Number of hits to skip for pagination."),
|
|
25
|
+
};
|
|
26
|
+
const handler = async ({ query, sources, limit, skip }) => {
|
|
27
|
+
try {
|
|
28
|
+
const filter = buildAccessFilter(agentId, taskManager, circleManager, sources);
|
|
29
|
+
const hits = documentSearchService.search(query, { filter, limit: MAX_SEARCH_LIMIT });
|
|
30
|
+
if (hits.length === 0) {
|
|
31
|
+
return textToolResult([`No matches found for query "${query}".`]);
|
|
32
|
+
}
|
|
33
|
+
const pagination = applyPagination(hits, limit || DEFAULT_SEARCH_LIMIT, skip);
|
|
34
|
+
const header = formatPaginationHeader(`Workspace search for query "${query}"`, pagination);
|
|
35
|
+
return textToolResult(header.concat("", renderHits(pagination.items)));
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return getErrorToolResult(error, "Failed to search workspace.");
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const config = {
|
|
42
|
+
name: SEARCH_WORKSPACE_TOOL_NAME,
|
|
43
|
+
description: "Full-text search across your own artifacts, artifacts in circles you directly belong to, and the results of tasks you own. Supports fuzzy and prefix matching, ranked by relevance. Results are grouped by source; open a hit with the read tool named in its section.",
|
|
44
|
+
inputSchema,
|
|
45
|
+
handler,
|
|
46
|
+
};
|
|
47
|
+
return config;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Build the predicate that limits results to what the agent may see: its own artifacts, artifacts
|
|
51
|
+
* in circles it directly belongs to, and tasks it owns. An optional `sources` list narrows further.
|
|
52
|
+
*/
|
|
53
|
+
function buildAccessFilter(agentId, taskManager, circleManager, sources) {
|
|
54
|
+
const memberCircleIds = new Set(circleManager.getCirclesForEntity(agentId, ENTITY_TYPE.AGENT).map((circle) => circle.id));
|
|
55
|
+
const ownedTaskIds = new Set(taskManager.getTasksByOwner(agentId).map((task) => task.id));
|
|
56
|
+
const allowedSources = sources ? new Set(sources) : undefined;
|
|
57
|
+
return (ref) => {
|
|
58
|
+
if (allowedSources && !allowedSources.has(ref.dataSourceType)) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
switch (ref.dataSourceType) {
|
|
62
|
+
case DATA_SOURCE_TYPE.ARTIFACT:
|
|
63
|
+
return ref.provenanceId === agentId;
|
|
64
|
+
case DATA_SOURCE_TYPE.CIRCLE_ARTIFACT:
|
|
65
|
+
return memberCircleIds.has(ref.provenanceId);
|
|
66
|
+
case DATA_SOURCE_TYPE.TASK:
|
|
67
|
+
return ownedTaskIds.has(ref.documentId);
|
|
68
|
+
default:
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function renderHits(hits) {
|
|
74
|
+
const artifactHits = hits.filter((hit) => hit.dataSourceType !== DATA_SOURCE_TYPE.TASK);
|
|
75
|
+
const taskHits = hits.filter((hit) => hit.dataSourceType === DATA_SOURCE_TYPE.TASK);
|
|
76
|
+
const sections = [];
|
|
77
|
+
if (artifactHits.length > 0) {
|
|
78
|
+
sections.push([
|
|
79
|
+
"Artifacts:",
|
|
80
|
+
"[Read with read_artifact, or read_circle_artifact for hits showing a circleId]",
|
|
81
|
+
...artifactHits.map(renderArtifactHit),
|
|
82
|
+
]);
|
|
83
|
+
}
|
|
84
|
+
if (taskHits.length > 0) {
|
|
85
|
+
sections.push(["Tasks:", "[Read with get_task_result]", ...taskHits.map(renderTaskHit)]);
|
|
86
|
+
}
|
|
87
|
+
const lines = [];
|
|
88
|
+
for (const section of sections) {
|
|
89
|
+
if (lines.length > 0) {
|
|
90
|
+
lines.push("");
|
|
91
|
+
}
|
|
92
|
+
lines.push(...section);
|
|
93
|
+
}
|
|
94
|
+
return lines;
|
|
95
|
+
}
|
|
96
|
+
function renderArtifactHit(hit) {
|
|
97
|
+
const circle = hit.dataSourceType === DATA_SOURCE_TYPE.CIRCLE_ARTIFACT ? ` circleId: ${hit.provenanceId}` : "";
|
|
98
|
+
const tags = hit.tags?.length ? ` tags: [${hit.tags.join(", ")}]` : "";
|
|
99
|
+
return `- Filename: ${hit.title}${circle}${tags}`;
|
|
100
|
+
}
|
|
101
|
+
function renderTaskHit(hit) {
|
|
102
|
+
return `- Id: ${hit.documentId} Title: ${hit.title}`;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=search-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"./path-BWPyau1x.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-DFtMN8Vu.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i)if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-NNHCCRGN-DlpIbxXb.js";import{x as e}from"./mermaid-parser.core-BdOZ0AFQ.js";export{e as createArchitectureServices};
|