@stardust-bytes/agent-hub 0.1.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 +184 -0
- package/backend/.env.example +26 -0
- package/backend/dist/agent/agent.controller.d.ts +23 -0
- package/backend/dist/agent/agent.controller.js +114 -0
- package/backend/dist/agent/agent.controller.js.map +1 -0
- package/backend/dist/agent/agent.module.d.ts +2 -0
- package/backend/dist/agent/agent.module.js +128 -0
- package/backend/dist/agent/agent.module.js.map +1 -0
- package/backend/dist/agent/agent.service.d.ts +25 -0
- package/backend/dist/agent/agent.service.js +198 -0
- package/backend/dist/agent/agent.service.js.map +1 -0
- package/backend/dist/agent/dto/agent-action.dto.d.ts +10 -0
- package/backend/dist/agent/dto/agent-action.dto.js +73 -0
- package/backend/dist/agent/dto/agent-action.dto.js.map +1 -0
- package/backend/dist/agent/dto/agent-command.util.d.ts +4 -0
- package/backend/dist/agent/dto/agent-command.util.js +13 -0
- package/backend/dist/agent/dto/agent-command.util.js.map +1 -0
- package/backend/dist/agent/dto/agent-run-state.d.ts +21 -0
- package/backend/dist/agent/dto/agent-run-state.js +19 -0
- package/backend/dist/agent/dto/agent-run-state.js.map +1 -0
- package/backend/dist/agent/dto/agent-state.enum.d.ts +6 -0
- package/backend/dist/agent/dto/agent-state.enum.js +11 -0
- package/backend/dist/agent/dto/agent-state.enum.js.map +1 -0
- package/backend/dist/agent/dto/approve-tool.dto.d.ts +4 -0
- package/backend/dist/agent/dto/approve-tool.dto.js +25 -0
- package/backend/dist/agent/dto/approve-tool.dto.js.map +1 -0
- package/backend/dist/agent/dto/chat.dto.d.ts +6 -0
- package/backend/dist/agent/dto/chat.dto.js +35 -0
- package/backend/dist/agent/dto/chat.dto.js.map +1 -0
- package/backend/dist/agent/dto/execute-plan.dto.d.ts +4 -0
- package/backend/dist/agent/dto/execute-plan.dto.js +25 -0
- package/backend/dist/agent/dto/execute-plan.dto.js.map +1 -0
- package/backend/dist/agent/dto/permissions-config.d.ts +8 -0
- package/backend/dist/agent/dto/permissions-config.js +11 -0
- package/backend/dist/agent/dto/permissions-config.js.map +1 -0
- package/backend/dist/agent/dto/update-permissions.dto.d.ts +7 -0
- package/backend/dist/agent/dto/update-permissions.dto.js +46 -0
- package/backend/dist/agent/dto/update-permissions.dto.js.map +1 -0
- package/backend/dist/agent/dto/write-stream.interface.d.ts +3 -0
- package/backend/dist/agent/dto/write-stream.interface.js +3 -0
- package/backend/dist/agent/dto/write-stream.interface.js.map +1 -0
- package/backend/dist/agent/dto/yolo-config.dto.d.ts +5 -0
- package/backend/dist/agent/dto/yolo-config.dto.js +33 -0
- package/backend/dist/agent/dto/yolo-config.dto.js.map +1 -0
- package/backend/dist/agent/mcp/mcp-client.service.d.ts +15 -0
- package/backend/dist/agent/mcp/mcp-client.service.js +71 -0
- package/backend/dist/agent/mcp/mcp-client.service.js.map +1 -0
- package/backend/dist/agent/mcp/mcp.module.d.ts +2 -0
- package/backend/dist/agent/mcp/mcp.module.js +24 -0
- package/backend/dist/agent/mcp/mcp.module.js.map +1 -0
- package/backend/dist/agent/mcp/mcp.service.d.ts +23 -0
- package/backend/dist/agent/mcp/mcp.service.js +123 -0
- package/backend/dist/agent/mcp/mcp.service.js.map +1 -0
- package/backend/dist/agent/providers/llm-provider.interface.d.ts +41 -0
- package/backend/dist/agent/providers/llm-provider.interface.js +3 -0
- package/backend/dist/agent/providers/llm-provider.interface.js.map +1 -0
- package/backend/dist/agent/providers/ollama.provider.d.ts +5 -0
- package/backend/dist/agent/providers/ollama.provider.js +92 -0
- package/backend/dist/agent/providers/ollama.provider.js.map +1 -0
- package/backend/dist/agent/providers/openai.provider.d.ts +5 -0
- package/backend/dist/agent/providers/openai.provider.js +169 -0
- package/backend/dist/agent/providers/openai.provider.js.map +1 -0
- package/backend/dist/agent/services/agent-loop.service.d.ts +131 -0
- package/backend/dist/agent/services/agent-loop.service.js +764 -0
- package/backend/dist/agent/services/agent-loop.service.js.map +1 -0
- package/backend/dist/agent/services/approval-manager.service.d.ts +8 -0
- package/backend/dist/agent/services/approval-manager.service.js +50 -0
- package/backend/dist/agent/services/approval-manager.service.js.map +1 -0
- package/backend/dist/agent/services/context-builder.service.d.ts +32 -0
- package/backend/dist/agent/services/context-builder.service.js +118 -0
- package/backend/dist/agent/services/context-builder.service.js.map +1 -0
- package/backend/dist/agent/services/danger-patterns.config.d.ts +10 -0
- package/backend/dist/agent/services/danger-patterns.config.js +82 -0
- package/backend/dist/agent/services/danger-patterns.config.js.map +1 -0
- package/backend/dist/agent/services/denial-tracking.d.ts +12 -0
- package/backend/dist/agent/services/denial-tracking.js +34 -0
- package/backend/dist/agent/services/denial-tracking.js.map +1 -0
- package/backend/dist/agent/services/llm-controller.service.d.ts +19 -0
- package/backend/dist/agent/services/llm-controller.service.js +70 -0
- package/backend/dist/agent/services/llm-controller.service.js.map +1 -0
- package/backend/dist/agent/services/permissions.service.d.ts +24 -0
- package/backend/dist/agent/services/permissions.service.js +106 -0
- package/backend/dist/agent/services/permissions.service.js.map +1 -0
- package/backend/dist/agent/services/yolo-classifier.constants.d.ts +6 -0
- package/backend/dist/agent/services/yolo-classifier.constants.js +39 -0
- package/backend/dist/agent/services/yolo-classifier.constants.js.map +1 -0
- package/backend/dist/agent/services/yolo-classifier.service.d.ts +29 -0
- package/backend/dist/agent/services/yolo-classifier.service.js +139 -0
- package/backend/dist/agent/services/yolo-classifier.service.js.map +1 -0
- package/backend/dist/agent/subagent/subagent-tools.util.d.ts +3 -0
- package/backend/dist/agent/subagent/subagent-tools.util.js +37 -0
- package/backend/dist/agent/subagent/subagent-tools.util.js.map +1 -0
- package/backend/dist/agent/subagent/subagent.service.d.ts +17 -0
- package/backend/dist/agent/subagent/subagent.service.js +89 -0
- package/backend/dist/agent/subagent/subagent.service.js.map +1 -0
- package/backend/dist/agent-output/agent-output.controller.d.ts +20 -0
- package/backend/dist/agent-output/agent-output.controller.js +123 -0
- package/backend/dist/agent-output/agent-output.controller.js.map +1 -0
- package/backend/dist/agent-output/agent-output.module.d.ts +2 -0
- package/backend/dist/agent-output/agent-output.module.js +22 -0
- package/backend/dist/agent-output/agent-output.module.js.map +1 -0
- package/backend/dist/agent-profiles/agent-profiles.controller.d.ts +59 -0
- package/backend/dist/agent-profiles/agent-profiles.controller.js +70 -0
- package/backend/dist/agent-profiles/agent-profiles.controller.js.map +1 -0
- package/backend/dist/agent-profiles/agent-profiles.module.d.ts +2 -0
- package/backend/dist/agent-profiles/agent-profiles.module.js +23 -0
- package/backend/dist/agent-profiles/agent-profiles.module.js.map +1 -0
- package/backend/dist/agent-profiles/agent-profiles.service.d.ts +85 -0
- package/backend/dist/agent-profiles/agent-profiles.service.js +48 -0
- package/backend/dist/agent-profiles/agent-profiles.service.js.map +1 -0
- package/backend/dist/agent-profiles/dto/create-agent-profile.dto.d.ts +9 -0
- package/backend/dist/agent-profiles/dto/create-agent-profile.dto.js +52 -0
- package/backend/dist/agent-profiles/dto/create-agent-profile.dto.js.map +1 -0
- package/backend/dist/agent-profiles/dto/update-agent-profile.dto.d.ts +5 -0
- package/backend/dist/agent-profiles/dto/update-agent-profile.dto.js +9 -0
- package/backend/dist/agent-profiles/dto/update-agent-profile.dto.js.map +1 -0
- package/backend/dist/app.controller.d.ts +10 -0
- package/backend/dist/app.controller.js +39 -0
- package/backend/dist/app.controller.js.map +1 -0
- package/backend/dist/app.module.d.ts +2 -0
- package/backend/dist/app.module.js +68 -0
- package/backend/dist/app.module.js.map +1 -0
- package/backend/dist/connector/connector.controller.d.ts +67 -0
- package/backend/dist/connector/connector.controller.js +150 -0
- package/backend/dist/connector/connector.controller.js.map +1 -0
- package/backend/dist/connector/connector.module.d.ts +2 -0
- package/backend/dist/connector/connector.module.js +28 -0
- package/backend/dist/connector/connector.module.js.map +1 -0
- package/backend/dist/connector/connector.service.d.ts +61 -0
- package/backend/dist/connector/connector.service.js +63 -0
- package/backend/dist/connector/connector.service.js.map +1 -0
- package/backend/dist/connector/dto/oauth-confirm.dto.d.ts +4 -0
- package/backend/dist/connector/dto/oauth-confirm.dto.js +25 -0
- package/backend/dist/connector/dto/oauth-confirm.dto.js.map +1 -0
- package/backend/dist/connector/dto/update-connector.dto.d.ts +5 -0
- package/backend/dist/connector/dto/update-connector.dto.js +9 -0
- package/backend/dist/connector/dto/update-connector.dto.js.map +1 -0
- package/backend/dist/connector/dto/upsert-connector.dto.d.ts +6 -0
- package/backend/dist/connector/dto/upsert-connector.dto.js +35 -0
- package/backend/dist/connector/dto/upsert-connector.dto.js.map +1 -0
- package/backend/dist/connector/providers/google/gmail.service.d.ts +31 -0
- package/backend/dist/connector/providers/google/gmail.service.js +114 -0
- package/backend/dist/connector/providers/google/gmail.service.js.map +1 -0
- package/backend/dist/connector/providers/google/google-calendar.service.d.ts +37 -0
- package/backend/dist/connector/providers/google/google-calendar.service.js +105 -0
- package/backend/dist/connector/providers/google/google-calendar.service.js.map +1 -0
- package/backend/dist/connector/providers/google/google-drive.service.d.ts +22 -0
- package/backend/dist/connector/providers/google/google-drive.service.js +130 -0
- package/backend/dist/connector/providers/google/google-drive.service.js.map +1 -0
- package/backend/dist/connector/providers/google/google-oauth.service.d.ts +23 -0
- package/backend/dist/connector/providers/google/google-oauth.service.js +74 -0
- package/backend/dist/connector/providers/google/google-oauth.service.js.map +1 -0
- package/backend/dist/connector/providers/google/google-sheets.service.d.ts +29 -0
- package/backend/dist/connector/providers/google/google-sheets.service.js +246 -0
- package/backend/dist/connector/providers/google/google-sheets.service.js.map +1 -0
- package/backend/dist/cowork/cowork.controller.d.ts +37 -0
- package/backend/dist/cowork/cowork.controller.js +127 -0
- package/backend/dist/cowork/cowork.controller.js.map +1 -0
- package/backend/dist/cowork/cowork.module.d.ts +2 -0
- package/backend/dist/cowork/cowork.module.js +26 -0
- package/backend/dist/cowork/cowork.module.js.map +1 -0
- package/backend/dist/cowork/cowork.service.d.ts +40 -0
- package/backend/dist/cowork/cowork.service.js +116 -0
- package/backend/dist/cowork/cowork.service.js.map +1 -0
- package/backend/dist/cowork/dto/set-project.dto.d.ts +3 -0
- package/backend/dist/cowork/dto/set-project.dto.js +21 -0
- package/backend/dist/cowork/dto/set-project.dto.js.map +1 -0
- package/backend/dist/excel/excel.module.d.ts +2 -0
- package/backend/dist/excel/excel.module.js +26 -0
- package/backend/dist/excel/excel.module.js.map +1 -0
- package/backend/dist/excel/excel.service.d.ts +33 -0
- package/backend/dist/excel/excel.service.js +204 -0
- package/backend/dist/excel/excel.service.js.map +1 -0
- package/backend/dist/excel/executors/excel-add-sheet.executor.d.ts +12 -0
- package/backend/dist/excel/executors/excel-add-sheet.executor.js +64 -0
- package/backend/dist/excel/executors/excel-add-sheet.executor.js.map +1 -0
- package/backend/dist/excel/executors/excel-chart.executor.d.ts +12 -0
- package/backend/dist/excel/executors/excel-chart.executor.js +68 -0
- package/backend/dist/excel/executors/excel-chart.executor.js.map +1 -0
- package/backend/dist/excel/executors/list-excel-sheets.executor.d.ts +8 -0
- package/backend/dist/excel/executors/list-excel-sheets.executor.js +38 -0
- package/backend/dist/excel/executors/list-excel-sheets.executor.js.map +1 -0
- package/backend/dist/excel/executors/read-excel.executor.d.ts +8 -0
- package/backend/dist/excel/executors/read-excel.executor.js +40 -0
- package/backend/dist/excel/executors/read-excel.executor.js.map +1 -0
- package/backend/dist/excel/executors/write-excel.executor.d.ts +12 -0
- package/backend/dist/excel/executors/write-excel.executor.js +66 -0
- package/backend/dist/excel/executors/write-excel.executor.js.map +1 -0
- package/backend/dist/files/files.controller.d.ts +8 -0
- package/backend/dist/files/files.controller.js +53 -0
- package/backend/dist/files/files.controller.js.map +1 -0
- package/backend/dist/files/files.module.d.ts +2 -0
- package/backend/dist/files/files.module.js +20 -0
- package/backend/dist/files/files.module.js.map +1 -0
- package/backend/dist/http-exception.filter.d.ts +4 -0
- package/backend/dist/http-exception.filter.js +32 -0
- package/backend/dist/http-exception.filter.js.map +1 -0
- package/backend/dist/knowledge/dto/search.dto.d.ts +3 -0
- package/backend/dist/knowledge/dto/search.dto.js +21 -0
- package/backend/dist/knowledge/dto/search.dto.js.map +1 -0
- package/backend/dist/knowledge/knowledge.controller.d.ts +38 -0
- package/backend/dist/knowledge/knowledge.controller.js +91 -0
- package/backend/dist/knowledge/knowledge.controller.js.map +1 -0
- package/backend/dist/knowledge/knowledge.module.d.ts +2 -0
- package/backend/dist/knowledge/knowledge.module.js +25 -0
- package/backend/dist/knowledge/knowledge.module.js.map +1 -0
- package/backend/dist/knowledge/knowledge.service.d.ts +103 -0
- package/backend/dist/knowledge/knowledge.service.js +379 -0
- package/backend/dist/knowledge/knowledge.service.js.map +1 -0
- package/backend/dist/main.d.ts +1 -0
- package/backend/dist/main.js +33 -0
- package/backend/dist/main.js.map +1 -0
- package/backend/dist/memory/dto/create-memory.dto.d.ts +6 -0
- package/backend/dist/memory/dto/create-memory.dto.js +34 -0
- package/backend/dist/memory/dto/create-memory.dto.js.map +1 -0
- package/backend/dist/memory/dto/search-memory.dto.d.ts +5 -0
- package/backend/dist/memory/dto/search-memory.dto.js +32 -0
- package/backend/dist/memory/dto/search-memory.dto.js.map +1 -0
- package/backend/dist/memory/dto/update-memory.dto.d.ts +5 -0
- package/backend/dist/memory/dto/update-memory.dto.js +9 -0
- package/backend/dist/memory/dto/update-memory.dto.js.map +1 -0
- package/backend/dist/memory/memory-extraction.service.d.ts +19 -0
- package/backend/dist/memory/memory-extraction.service.js +87 -0
- package/backend/dist/memory/memory-extraction.service.js.map +1 -0
- package/backend/dist/memory/memory.constants.d.ts +9 -0
- package/backend/dist/memory/memory.constants.js +13 -0
- package/backend/dist/memory/memory.constants.js.map +1 -0
- package/backend/dist/memory/memory.controller.d.ts +53 -0
- package/backend/dist/memory/memory.controller.js +81 -0
- package/backend/dist/memory/memory.controller.js.map +1 -0
- package/backend/dist/memory/memory.gateway.d.ts +8 -0
- package/backend/dist/memory/memory.gateway.js +37 -0
- package/backend/dist/memory/memory.gateway.js.map +1 -0
- package/backend/dist/memory/memory.module.d.ts +2 -0
- package/backend/dist/memory/memory.module.js +25 -0
- package/backend/dist/memory/memory.module.js.map +1 -0
- package/backend/dist/memory/memory.service.d.ts +70 -0
- package/backend/dist/memory/memory.service.js +144 -0
- package/backend/dist/memory/memory.service.js.map +1 -0
- package/backend/dist/mode-policy/mode-policy.config.d.ts +20 -0
- package/backend/dist/mode-policy/mode-policy.config.js +17 -0
- package/backend/dist/mode-policy/mode-policy.config.js.map +1 -0
- package/backend/dist/mode-policy/mode-policy.module.d.ts +2 -0
- package/backend/dist/mode-policy/mode-policy.module.js +21 -0
- package/backend/dist/mode-policy/mode-policy.module.js.map +1 -0
- package/backend/dist/mode-policy/mode-policy.service.d.ts +18 -0
- package/backend/dist/mode-policy/mode-policy.service.js +66 -0
- package/backend/dist/mode-policy/mode-policy.service.js.map +1 -0
- package/backend/dist/notes/dto/create-note.dto.d.ts +4 -0
- package/backend/dist/notes/dto/create-note.dto.js +27 -0
- package/backend/dist/notes/dto/create-note.dto.js.map +1 -0
- package/backend/dist/notes/dto/update-note.dto.d.ts +5 -0
- package/backend/dist/notes/dto/update-note.dto.js +9 -0
- package/backend/dist/notes/dto/update-note.dto.js.map +1 -0
- package/backend/dist/notes/notes.controller.d.ts +35 -0
- package/backend/dist/notes/notes.controller.js +70 -0
- package/backend/dist/notes/notes.controller.js.map +1 -0
- package/backend/dist/notes/notes.gateway.d.ts +8 -0
- package/backend/dist/notes/notes.gateway.js +37 -0
- package/backend/dist/notes/notes.gateway.js.map +1 -0
- package/backend/dist/notes/notes.module.d.ts +2 -0
- package/backend/dist/notes/notes.module.js +24 -0
- package/backend/dist/notes/notes.module.js.map +1 -0
- package/backend/dist/notes/notes.service.d.ts +45 -0
- package/backend/dist/notes/notes.service.js +57 -0
- package/backend/dist/notes/notes.service.js.map +1 -0
- package/backend/dist/plans/plans.controller.d.ts +100 -0
- package/backend/dist/plans/plans.controller.js +80 -0
- package/backend/dist/plans/plans.controller.js.map +1 -0
- package/backend/dist/plans/plans.module.d.ts +2 -0
- package/backend/dist/plans/plans.module.js +23 -0
- package/backend/dist/plans/plans.module.js.map +1 -0
- package/backend/dist/plans/plans.service.d.ts +141 -0
- package/backend/dist/plans/plans.service.js +94 -0
- package/backend/dist/plans/plans.service.js.map +1 -0
- package/backend/dist/prisma/prisma.module.d.ts +2 -0
- package/backend/dist/prisma/prisma.module.js +22 -0
- package/backend/dist/prisma/prisma.module.js.map +1 -0
- package/backend/dist/prisma/prisma.service.d.ts +6 -0
- package/backend/dist/prisma/prisma.service.js +24 -0
- package/backend/dist/prisma/prisma.service.js.map +1 -0
- package/backend/dist/providers/dto/create-provider-model.dto.d.ts +3 -0
- package/backend/dist/providers/dto/create-provider-model.dto.js +22 -0
- package/backend/dist/providers/dto/create-provider-model.dto.js.map +1 -0
- package/backend/dist/providers/dto/create-provider.dto.d.ts +6 -0
- package/backend/dist/providers/dto/create-provider.dto.js +37 -0
- package/backend/dist/providers/dto/create-provider.dto.js.map +1 -0
- package/backend/dist/providers/dto/update-provider.dto.d.ts +5 -0
- package/backend/dist/providers/dto/update-provider.dto.js +9 -0
- package/backend/dist/providers/dto/update-provider.dto.js.map +1 -0
- package/backend/dist/providers/providers.controller.d.ts +60 -0
- package/backend/dist/providers/providers.controller.js +113 -0
- package/backend/dist/providers/providers.controller.js.map +1 -0
- package/backend/dist/providers/providers.module.d.ts +2 -0
- package/backend/dist/providers/providers.module.js +23 -0
- package/backend/dist/providers/providers.module.js.map +1 -0
- package/backend/dist/providers/providers.service.d.ts +86 -0
- package/backend/dist/providers/providers.service.js +100 -0
- package/backend/dist/providers/providers.service.js.map +1 -0
- package/backend/dist/schedule-tasks/dto/create-schedule-task.dto.d.ts +13 -0
- package/backend/dist/schedule-tasks/dto/create-schedule-task.dto.js +81 -0
- package/backend/dist/schedule-tasks/dto/create-schedule-task.dto.js.map +1 -0
- package/backend/dist/schedule-tasks/dto/update-schedule-task.dto.d.ts +5 -0
- package/backend/dist/schedule-tasks/dto/update-schedule-task.dto.js +9 -0
- package/backend/dist/schedule-tasks/dto/update-schedule-task.dto.js.map +1 -0
- package/backend/dist/schedule-tasks/schedule-cron.service.d.ts +8 -0
- package/backend/dist/schedule-tasks/schedule-cron.service.js +50 -0
- package/backend/dist/schedule-tasks/schedule-cron.service.js.map +1 -0
- package/backend/dist/schedule-tasks/schedule-runner.service.d.ts +25 -0
- package/backend/dist/schedule-tasks/schedule-runner.service.js +109 -0
- package/backend/dist/schedule-tasks/schedule-runner.service.js.map +1 -0
- package/backend/dist/schedule-tasks/schedule-tasks.controller.d.ts +108 -0
- package/backend/dist/schedule-tasks/schedule-tasks.controller.js +85 -0
- package/backend/dist/schedule-tasks/schedule-tasks.controller.js.map +1 -0
- package/backend/dist/schedule-tasks/schedule-tasks.module.d.ts +2 -0
- package/backend/dist/schedule-tasks/schedule-tasks.module.js +32 -0
- package/backend/dist/schedule-tasks/schedule-tasks.module.js.map +1 -0
- package/backend/dist/schedule-tasks/schedule-tasks.service.d.ts +141 -0
- package/backend/dist/schedule-tasks/schedule-tasks.service.js +80 -0
- package/backend/dist/schedule-tasks/schedule-tasks.service.js.map +1 -0
- package/backend/dist/sessions/sessions.controller.d.ts +40 -0
- package/backend/dist/sessions/sessions.controller.js +75 -0
- package/backend/dist/sessions/sessions.controller.js.map +1 -0
- package/backend/dist/sessions/sessions.module.d.ts +2 -0
- package/backend/dist/sessions/sessions.module.js +23 -0
- package/backend/dist/sessions/sessions.module.js.map +1 -0
- package/backend/dist/sessions/sessions.service.d.ts +55 -0
- package/backend/dist/sessions/sessions.service.js +73 -0
- package/backend/dist/sessions/sessions.service.js.map +1 -0
- package/backend/dist/settings/settings.controller.d.ts +14 -0
- package/backend/dist/settings/settings.controller.js +56 -0
- package/backend/dist/settings/settings.controller.js.map +1 -0
- package/backend/dist/settings/settings.module.d.ts +2 -0
- package/backend/dist/settings/settings.module.js +24 -0
- package/backend/dist/settings/settings.module.js.map +1 -0
- package/backend/dist/settings/settings.service.d.ts +10 -0
- package/backend/dist/settings/settings.service.js +49 -0
- package/backend/dist/settings/settings.service.js.map +1 -0
- package/backend/dist/tools/executors/convert-note-to-task.executor.d.ts +12 -0
- package/backend/dist/tools/executors/convert-note-to-task.executor.js +59 -0
- package/backend/dist/tools/executors/convert-note-to-task.executor.js.map +1 -0
- package/backend/dist/tools/executors/create-note.executor.d.ts +8 -0
- package/backend/dist/tools/executors/create-note.executor.js +39 -0
- package/backend/dist/tools/executors/create-note.executor.js.map +1 -0
- package/backend/dist/tools/executors/create-plan.executor.d.ts +8 -0
- package/backend/dist/tools/executors/create-plan.executor.js +45 -0
- package/backend/dist/tools/executors/create-plan.executor.js.map +1 -0
- package/backend/dist/tools/executors/create-task.executor.d.ts +10 -0
- package/backend/dist/tools/executors/create-task.executor.js +53 -0
- package/backend/dist/tools/executors/create-task.executor.js.map +1 -0
- package/backend/dist/tools/executors/delete-note.executor.d.ts +8 -0
- package/backend/dist/tools/executors/delete-note.executor.js +38 -0
- package/backend/dist/tools/executors/delete-note.executor.js.map +1 -0
- package/backend/dist/tools/executors/delete-tasks.executor.d.ts +8 -0
- package/backend/dist/tools/executors/delete-tasks.executor.js +33 -0
- package/backend/dist/tools/executors/delete-tasks.executor.js.map +1 -0
- package/backend/dist/tools/executors/get-task.executor.d.ts +8 -0
- package/backend/dist/tools/executors/get-task.executor.js +44 -0
- package/backend/dist/tools/executors/get-task.executor.js.map +1 -0
- package/backend/dist/tools/executors/glob.executor.d.ts +10 -0
- package/backend/dist/tools/executors/glob.executor.js +82 -0
- package/backend/dist/tools/executors/glob.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-calendar-availability.executor.d.ts +23 -0
- package/backend/dist/tools/executors/google-calendar-availability.executor.js +46 -0
- package/backend/dist/tools/executors/google-calendar-availability.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-calendar-create.executor.d.ts +42 -0
- package/backend/dist/tools/executors/google-calendar-create.executor.js +48 -0
- package/backend/dist/tools/executors/google-calendar-create.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-calendar-list.executor.d.ts +22 -0
- package/backend/dist/tools/executors/google-calendar-list.executor.js +45 -0
- package/backend/dist/tools/executors/google-calendar-list.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-calendar-update.executor.d.ts +31 -0
- package/backend/dist/tools/executors/google-calendar-update.executor.js +50 -0
- package/backend/dist/tools/executors/google-calendar-update.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-drive-create-folder.executor.d.ts +23 -0
- package/backend/dist/tools/executors/google-drive-create-folder.executor.js +44 -0
- package/backend/dist/tools/executors/google-drive-create-folder.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-drive-list.executor.d.ts +18 -0
- package/backend/dist/tools/executors/google-drive-list.executor.js +44 -0
- package/backend/dist/tools/executors/google-drive-list.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-drive-read.executor.d.ts +19 -0
- package/backend/dist/tools/executors/google-drive-read.executor.js +48 -0
- package/backend/dist/tools/executors/google-drive-read.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-drive-search.executor.d.ts +23 -0
- package/backend/dist/tools/executors/google-drive-search.executor.js +46 -0
- package/backend/dist/tools/executors/google-drive-search.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-drive-upload.executor.d.ts +30 -0
- package/backend/dist/tools/executors/google-drive-upload.executor.js +49 -0
- package/backend/dist/tools/executors/google-drive-upload.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-gmail-draft.executor.d.ts +30 -0
- package/backend/dist/tools/executors/google-gmail-draft.executor.js +45 -0
- package/backend/dist/tools/executors/google-gmail-draft.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-gmail-labels.executor.d.ts +13 -0
- package/backend/dist/tools/executors/google-gmail-labels.executor.js +39 -0
- package/backend/dist/tools/executors/google-gmail-labels.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-gmail-read.executor.d.ts +19 -0
- package/backend/dist/tools/executors/google-gmail-read.executor.js +43 -0
- package/backend/dist/tools/executors/google-gmail-read.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-gmail-search.executor.d.ts +23 -0
- package/backend/dist/tools/executors/google-gmail-search.executor.js +46 -0
- package/backend/dist/tools/executors/google-gmail-search.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-gmail-send.executor.d.ts +44 -0
- package/backend/dist/tools/executors/google-gmail-send.executor.js +47 -0
- package/backend/dist/tools/executors/google-gmail-send.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-sheets-add-tab.executor.d.ts +23 -0
- package/backend/dist/tools/executors/google-sheets-add-tab.executor.js +44 -0
- package/backend/dist/tools/executors/google-sheets-add-tab.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-sheets-append.executor.d.ts +30 -0
- package/backend/dist/tools/executors/google-sheets-append.executor.js +45 -0
- package/backend/dist/tools/executors/google-sheets-append.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-sheets-chart.executor.d.ts +40 -0
- package/backend/dist/tools/executors/google-sheets-chart.executor.js +48 -0
- package/backend/dist/tools/executors/google-sheets-chart.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-sheets-create.executor.d.ts +27 -0
- package/backend/dist/tools/executors/google-sheets-create.executor.js +44 -0
- package/backend/dist/tools/executors/google-sheets-create.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-sheets-format.executor.d.ts +57 -0
- package/backend/dist/tools/executors/google-sheets-format.executor.js +58 -0
- package/backend/dist/tools/executors/google-sheets-format.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-sheets-list-tabs.executor.d.ts +19 -0
- package/backend/dist/tools/executors/google-sheets-list-tabs.executor.js +43 -0
- package/backend/dist/tools/executors/google-sheets-list-tabs.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-sheets-read.executor.d.ts +27 -0
- package/backend/dist/tools/executors/google-sheets-read.executor.js +45 -0
- package/backend/dist/tools/executors/google-sheets-read.executor.js.map +1 -0
- package/backend/dist/tools/executors/google-sheets-update.executor.d.ts +34 -0
- package/backend/dist/tools/executors/google-sheets-update.executor.js +46 -0
- package/backend/dist/tools/executors/google-sheets-update.executor.js.map +1 -0
- package/backend/dist/tools/executors/grep.executor.d.ts +9 -0
- package/backend/dist/tools/executors/grep.executor.js +82 -0
- package/backend/dist/tools/executors/grep.executor.js.map +1 -0
- package/backend/dist/tools/executors/list-directory.executor.d.ts +8 -0
- package/backend/dist/tools/executors/list-directory.executor.js +37 -0
- package/backend/dist/tools/executors/list-directory.executor.js.map +1 -0
- package/backend/dist/tools/executors/list-notes.executor.d.ts +8 -0
- package/backend/dist/tools/executors/list-notes.executor.js +37 -0
- package/backend/dist/tools/executors/list-notes.executor.js.map +1 -0
- package/backend/dist/tools/executors/list-tasks.executor.d.ts +8 -0
- package/backend/dist/tools/executors/list-tasks.executor.js +32 -0
- package/backend/dist/tools/executors/list-tasks.executor.js.map +1 -0
- package/backend/dist/tools/executors/read-file.executor.d.ts +8 -0
- package/backend/dist/tools/executors/read-file.executor.js +44 -0
- package/backend/dist/tools/executors/read-file.executor.js.map +1 -0
- package/backend/dist/tools/executors/resume-plan.executor.d.ts +8 -0
- package/backend/dist/tools/executors/resume-plan.executor.js +58 -0
- package/backend/dist/tools/executors/resume-plan.executor.js.map +1 -0
- package/backend/dist/tools/executors/run-command.executor.d.ts +5 -0
- package/backend/dist/tools/executors/run-command.executor.js +55 -0
- package/backend/dist/tools/executors/run-command.executor.js.map +1 -0
- package/backend/dist/tools/executors/search-knowledge.executor.d.ts +8 -0
- package/backend/dist/tools/executors/search-knowledge.executor.js +33 -0
- package/backend/dist/tools/executors/search-knowledge.executor.js.map +1 -0
- package/backend/dist/tools/executors/spawn-subagent.executor.d.ts +5 -0
- package/backend/dist/tools/executors/spawn-subagent.executor.js +27 -0
- package/backend/dist/tools/executors/spawn-subagent.executor.js.map +1 -0
- package/backend/dist/tools/executors/tool-executor.interface.d.ts +8 -0
- package/backend/dist/tools/executors/tool-executor.interface.js +3 -0
- package/backend/dist/tools/executors/tool-executor.interface.js.map +1 -0
- package/backend/dist/tools/executors/update-note.executor.d.ts +8 -0
- package/backend/dist/tools/executors/update-note.executor.js +43 -0
- package/backend/dist/tools/executors/update-note.executor.js.map +1 -0
- package/backend/dist/tools/executors/update-task.executor.d.ts +8 -0
- package/backend/dist/tools/executors/update-task.executor.js +50 -0
- package/backend/dist/tools/executors/update-task.executor.js.map +1 -0
- package/backend/dist/tools/executors/web-fetch.executor.d.ts +8 -0
- package/backend/dist/tools/executors/web-fetch.executor.js +57 -0
- package/backend/dist/tools/executors/web-fetch.executor.js.map +1 -0
- package/backend/dist/tools/executors/web-search.executor.d.ts +8 -0
- package/backend/dist/tools/executors/web-search.executor.js +70 -0
- package/backend/dist/tools/executors/web-search.executor.js.map +1 -0
- package/backend/dist/tools/executors/write-file.executor.d.ts +10 -0
- package/backend/dist/tools/executors/write-file.executor.js +60 -0
- package/backend/dist/tools/executors/write-file.executor.js.map +1 -0
- package/backend/dist/tools/tools.controller.d.ts +37 -0
- package/backend/dist/tools/tools.controller.js +63 -0
- package/backend/dist/tools/tools.controller.js.map +1 -0
- package/backend/dist/tools/tools.module.d.ts +2 -0
- package/backend/dist/tools/tools.module.js +128 -0
- package/backend/dist/tools/tools.module.js.map +1 -0
- package/backend/dist/tools/tools.service.d.ts +55 -0
- package/backend/dist/tools/tools.service.js +49 -0
- package/backend/dist/tools/tools.service.js.map +1 -0
- package/backend/dist/usage/dto/create-usage.dto.d.ts +8 -0
- package/backend/dist/usage/dto/create-usage.dto.js +45 -0
- package/backend/dist/usage/dto/create-usage.dto.js.map +1 -0
- package/backend/dist/usage/usage.controller.d.ts +19 -0
- package/backend/dist/usage/usage.controller.js +43 -0
- package/backend/dist/usage/usage.controller.js.map +1 -0
- package/backend/dist/usage/usage.module.d.ts +2 -0
- package/backend/dist/usage/usage.module.js +24 -0
- package/backend/dist/usage/usage.module.js.map +1 -0
- package/backend/dist/usage/usage.service.d.ts +30 -0
- package/backend/dist/usage/usage.service.js +61 -0
- package/backend/dist/usage/usage.service.js.map +1 -0
- package/backend/dist/word/executors/edit-word.executor.d.ts +12 -0
- package/backend/dist/word/executors/edit-word.executor.js +65 -0
- package/backend/dist/word/executors/edit-word.executor.js.map +1 -0
- package/backend/dist/word/executors/read-word.executor.d.ts +10 -0
- package/backend/dist/word/executors/read-word.executor.js +49 -0
- package/backend/dist/word/executors/read-word.executor.js.map +1 -0
- package/backend/dist/word/executors/write-word.executor.d.ts +12 -0
- package/backend/dist/word/executors/write-word.executor.js +63 -0
- package/backend/dist/word/executors/write-word.executor.js.map +1 -0
- package/backend/dist/word/word.module.d.ts +2 -0
- package/backend/dist/word/word.module.js +21 -0
- package/backend/dist/word/word.module.js.map +1 -0
- package/backend/dist/word/word.service.d.ts +22 -0
- package/backend/dist/word/word.service.js +155 -0
- package/backend/dist/word/word.service.js.map +1 -0
- package/backend/dist/workspace/dto/watch.dto.d.ts +3 -0
- package/backend/dist/workspace/dto/watch.dto.js +22 -0
- package/backend/dist/workspace/dto/watch.dto.js.map +1 -0
- package/backend/dist/workspace/indexer.service.d.ts +24 -0
- package/backend/dist/workspace/indexer.service.js +109 -0
- package/backend/dist/workspace/indexer.service.js.map +1 -0
- package/backend/dist/workspace/workspace-watcher.service.d.ts +20 -0
- package/backend/dist/workspace/workspace-watcher.service.js +73 -0
- package/backend/dist/workspace/workspace-watcher.service.js.map +1 -0
- package/backend/dist/workspace/workspace.controller.d.ts +21 -0
- package/backend/dist/workspace/workspace.controller.js +72 -0
- package/backend/dist/workspace/workspace.controller.js.map +1 -0
- package/backend/dist/workspace/workspace.module.d.ts +2 -0
- package/backend/dist/workspace/workspace.module.js +27 -0
- package/backend/dist/workspace/workspace.module.js.map +1 -0
- package/backend/dist/workspace/workspace.service.d.ts +16 -0
- package/backend/dist/workspace/workspace.service.js +70 -0
- package/backend/dist/workspace/workspace.service.js.map +1 -0
- package/backend/package.json +80 -0
- package/backend/prisma/migrations/20260607051149_init/migration.sql +11 -0
- package/backend/prisma/migrations/20260607082131_add_settings/migration.sql +5 -0
- package/backend/prisma/migrations/20260607090628_add_knowledge_file/migration.sql +12 -0
- package/backend/prisma/migrations/20260607102620_add_sessions_chat_messages/migration.sql +17 -0
- package/backend/prisma/migrations/20260607160733_add_tool_fields_to_message/migration.sql +18 -0
- package/backend/prisma/migrations/20260608120000_add_providers/migration.sql +19 -0
- package/backend/prisma/migrations/20260608150513_add_tools/migration.sql +9 -0
- package/backend/prisma/migrations/20260608155121_add_tool_config/migration.sql +3 -0
- package/backend/prisma/migrations/20260609044217_add_error_message/migration.sql +2 -0
- package/backend/prisma/migrations/20260609110505_add_notes/migration.sql +8 -0
- package/backend/prisma/migrations/20260609151214_add_plan_tables/migration.sql +21 -0
- package/backend/prisma/migrations/20260610100714_add_agent_file/migration.sql +9 -0
- package/backend/prisma/migrations/20260611085424_add_session_mode/migration.sql +2 -0
- package/backend/prisma/migrations/20260611120000_add_memory_model/migration.sql +13 -0
- package/backend/prisma/migrations/20260612120000_add_usage_record/migration.sql +12 -0
- package/backend/prisma/migrations/20260612130000_add_project_model/migration.sql +7 -0
- package/backend/prisma/migrations/20260612130000_add_project_model/migration_lock.toml +5 -0
- package/backend/prisma/migrations/20260612140000_add_connector_model/migration.sql +9 -0
- package/backend/prisma/migrations/20260612173937_add_connector_services_account/migration.sql +24 -0
- package/backend/prisma/migrations/20260612181017_remove_connector_services/migration.sql +23 -0
- package/backend/prisma/migrations/20260613135109_add_schedule_tasks/migration.sql +45 -0
- package/backend/prisma/migrations/20260613140915_add_cron_days_of_week/migration.sql +2 -0
- package/backend/prisma/migrations/20260613142809_add_timezone/migration.sql +2 -0
- package/backend/prisma/migrations/20260613163408_remove_task_model/migration.sql +10 -0
- package/backend/prisma/migrations/20260620120025_add_agent_profile/migration.sql +17 -0
- package/backend/prisma/migrations/migration_lock.toml +3 -0
- package/backend/prisma/schema.prisma +208 -0
- package/backend/prisma/seed.cjs +132 -0
- package/bin/workspace-cli.js +296 -0
- package/frontend/dist/assets/index-DRtpgPPc.css +1 -0
- package/frontend/dist/assets/index-Dn28_pkr.js +101 -0
- package/frontend/dist/index.html +19 -0
- package/frontend/dist/logo.png +0 -0
- package/package.json +54 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var PermissionsService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.PermissionsService = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const settings_service_1 = require("../../settings/settings.service");
|
|
16
|
+
const permissions_config_1 = require("../dto/permissions-config");
|
|
17
|
+
const yolo_classifier_service_1 = require("./yolo-classifier.service");
|
|
18
|
+
let PermissionsService = PermissionsService_1 = class PermissionsService {
|
|
19
|
+
constructor(settingsService, yoloClassifier) {
|
|
20
|
+
this.settingsService = settingsService;
|
|
21
|
+
this.yoloClassifier = yoloClassifier;
|
|
22
|
+
}
|
|
23
|
+
async getConfig() {
|
|
24
|
+
const raw = await this.settingsService.get(PermissionsService_1.SETTING_KEY, '');
|
|
25
|
+
if (!raw)
|
|
26
|
+
return { ...permissions_config_1.DEFAULT_PERMISSIONS_CONFIG };
|
|
27
|
+
try {
|
|
28
|
+
return JSON.parse(raw);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return { ...permissions_config_1.DEFAULT_PERMISSIONS_CONFIG };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async updateConfig(updates) {
|
|
35
|
+
const current = await this.getConfig();
|
|
36
|
+
const updated = { ...current, ...updates };
|
|
37
|
+
await this.settingsService.upsert(PermissionsService_1.SETTING_KEY, JSON.stringify(updated));
|
|
38
|
+
return updated;
|
|
39
|
+
}
|
|
40
|
+
async isAllowed(toolName) {
|
|
41
|
+
const config = await this.getConfig();
|
|
42
|
+
if (config.deniedTools.includes(toolName))
|
|
43
|
+
return false;
|
|
44
|
+
if (config.allowedTools.includes(toolName))
|
|
45
|
+
return true;
|
|
46
|
+
return config.defaultPolicy === 'allow';
|
|
47
|
+
}
|
|
48
|
+
async decide(toolName, toolInput, transcript, sessionId) {
|
|
49
|
+
const config = await this.getConfig();
|
|
50
|
+
if (config.deniedTools.includes(toolName)) {
|
|
51
|
+
return { action: 'deny', reason: 'Tool denied by configuration' };
|
|
52
|
+
}
|
|
53
|
+
const permissionMode = await this.decidePermissionMode(toolName, toolInput);
|
|
54
|
+
switch (permissionMode) {
|
|
55
|
+
case 'bypassPermissions':
|
|
56
|
+
return { action: 'allow' };
|
|
57
|
+
case 'dontAsk':
|
|
58
|
+
return { action: 'deny', reason: 'Blocked by dontAsk mode' };
|
|
59
|
+
case 'acceptEdits':
|
|
60
|
+
return { action: 'allow' };
|
|
61
|
+
case 'auto':
|
|
62
|
+
return this.handleAutoMode(toolName, toolInput, transcript, sessionId);
|
|
63
|
+
case 'plan':
|
|
64
|
+
if (['create_plan', 'resume_plan'].includes(toolName)) {
|
|
65
|
+
const result = await this.yoloClassifier.evaluate(toolName, toolInput, transcript, sessionId);
|
|
66
|
+
return result.allowed
|
|
67
|
+
? { action: 'allow' }
|
|
68
|
+
: { action: 'deny', reason: result.reason ?? 'Blocked by classifier' };
|
|
69
|
+
}
|
|
70
|
+
return { action: 'ask' };
|
|
71
|
+
case 'requireApproval':
|
|
72
|
+
return { action: 'ask' };
|
|
73
|
+
default:
|
|
74
|
+
return { action: 'ask' };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async handleAutoMode(toolName, toolInput, transcript, sessionId) {
|
|
78
|
+
const result = await this.yoloClassifier.evaluate(toolName, toolInput, transcript, sessionId);
|
|
79
|
+
if (result.allowed)
|
|
80
|
+
return { action: 'allow' };
|
|
81
|
+
return {
|
|
82
|
+
action: 'deny',
|
|
83
|
+
reason: result.reason ? `YOLO: ${result.reason}` : 'Blocked by YOLO classifier',
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
hasDestructivePatterns(name, input) {
|
|
87
|
+
const patterns = ['delete', 'remove', 'drop', 'truncate', 'rm ', 'rmdir', 'del '];
|
|
88
|
+
return patterns.some(p => input.toLowerCase().includes(p));
|
|
89
|
+
}
|
|
90
|
+
async decidePermissionMode(toolName, toolInput) {
|
|
91
|
+
const config = await this.getConfig();
|
|
92
|
+
if (config.requireApprovalTools.includes(toolName))
|
|
93
|
+
return 'requireApproval';
|
|
94
|
+
if (this.hasDestructivePatterns(toolName, toolInput))
|
|
95
|
+
return 'requireApproval';
|
|
96
|
+
return config.permissionMode;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
exports.PermissionsService = PermissionsService;
|
|
100
|
+
PermissionsService.SETTING_KEY = 'agent.permissions';
|
|
101
|
+
exports.PermissionsService = PermissionsService = PermissionsService_1 = __decorate([
|
|
102
|
+
(0, common_1.Injectable)(),
|
|
103
|
+
__metadata("design:paramtypes", [settings_service_1.SettingsService,
|
|
104
|
+
yolo_classifier_service_1.YoloClassifierService])
|
|
105
|
+
], PermissionsService);
|
|
106
|
+
//# sourceMappingURL=permissions.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.service.js","sourceRoot":"","sources":["../../../src/agent/services/permissions.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const YOLO_SYSTEM_PROMPT = "You are a security classifier for an AI agent workspace.\nYour job is to evaluate whether a proposed action should be ALLOWED or BLOCKED.\n\n## Evaluation Rules\n1. Consider the full conversation context, not just the latest action\n2. Block attempts to disable or circumvent the classifier itself\n3. Writing a script then running it = directly running the commands\n4. When spawning sub-agents, evaluate the delegated task's intent\n5. Each action is evaluated independently\n6. Lean toward blocking when shared infrastructure could be affected\n7. Only block for security-relevant harm, not quality or efficiency issues\n\n## BLOCK Rules\n- Running interpreters directly (python, node, ruby) without user request\n- Package runners (npx, npm run) executing untrusted code\n- Network commands (curl, wget) that could exfiltrate data\n- Destructive git operations (force push, delete branches)\n- Cloud CLI commands (kubectl, aws) affecting production\n- Writing executable scripts (.sh, .bat) with dangerous content\n- Spawning sub-agents with permission bypass intent\n- Irreversible local destruction (rm -rf, drop tables)\n- Credential leakage (printing or sending secrets)\n- Data exfiltration to external services\n- Self-modification of agent code or config\n\n## ALLOW by default\nAllow unless a BLOCK rule clearly applies.";
|
|
2
|
+
export declare const STAGE1_PROMPT_SUFFIX = "Err on the side of blocking. Respond with <block>yes</block> or <block>no</block>.";
|
|
3
|
+
export declare const STAGE2_PROMPT_SUFFIX = "Use <thinking> before responding. Explicit user confirmation required to override blocks. Respond with <block>yes</block> or <block>no</block> and <reason>...</reason>.";
|
|
4
|
+
export declare const STAGE1_MAX_TOKENS = 64;
|
|
5
|
+
export declare const STAGE2_MAX_TOKENS = 4096;
|
|
6
|
+
export declare const SAFE_TOOL_ALLOWLIST: string[];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SAFE_TOOL_ALLOWLIST = exports.STAGE2_MAX_TOKENS = exports.STAGE1_MAX_TOKENS = exports.STAGE2_PROMPT_SUFFIX = exports.STAGE1_PROMPT_SUFFIX = exports.YOLO_SYSTEM_PROMPT = void 0;
|
|
4
|
+
exports.YOLO_SYSTEM_PROMPT = `You are a security classifier for an AI agent workspace.
|
|
5
|
+
Your job is to evaluate whether a proposed action should be ALLOWED or BLOCKED.
|
|
6
|
+
|
|
7
|
+
## Evaluation Rules
|
|
8
|
+
1. Consider the full conversation context, not just the latest action
|
|
9
|
+
2. Block attempts to disable or circumvent the classifier itself
|
|
10
|
+
3. Writing a script then running it = directly running the commands
|
|
11
|
+
4. When spawning sub-agents, evaluate the delegated task's intent
|
|
12
|
+
5. Each action is evaluated independently
|
|
13
|
+
6. Lean toward blocking when shared infrastructure could be affected
|
|
14
|
+
7. Only block for security-relevant harm, not quality or efficiency issues
|
|
15
|
+
|
|
16
|
+
## BLOCK Rules
|
|
17
|
+
- Running interpreters directly (python, node, ruby) without user request
|
|
18
|
+
- Package runners (npx, npm run) executing untrusted code
|
|
19
|
+
- Network commands (curl, wget) that could exfiltrate data
|
|
20
|
+
- Destructive git operations (force push, delete branches)
|
|
21
|
+
- Cloud CLI commands (kubectl, aws) affecting production
|
|
22
|
+
- Writing executable scripts (.sh, .bat) with dangerous content
|
|
23
|
+
- Spawning sub-agents with permission bypass intent
|
|
24
|
+
- Irreversible local destruction (rm -rf, drop tables)
|
|
25
|
+
- Credential leakage (printing or sending secrets)
|
|
26
|
+
- Data exfiltration to external services
|
|
27
|
+
- Self-modification of agent code or config
|
|
28
|
+
|
|
29
|
+
## ALLOW by default
|
|
30
|
+
Allow unless a BLOCK rule clearly applies.`;
|
|
31
|
+
exports.STAGE1_PROMPT_SUFFIX = `Err on the side of blocking. Respond with <block>yes</block> or <block>no</block>.`;
|
|
32
|
+
exports.STAGE2_PROMPT_SUFFIX = `Use <thinking> before responding. Explicit user confirmation required to override blocks. Respond with <block>yes</block> or <block>no</block> and <reason>...</reason>.`;
|
|
33
|
+
exports.STAGE1_MAX_TOKENS = 64;
|
|
34
|
+
exports.STAGE2_MAX_TOKENS = 4096;
|
|
35
|
+
exports.SAFE_TOOL_ALLOWLIST = [
|
|
36
|
+
'list_tasks', 'get_task', 'list_notes',
|
|
37
|
+
'web_search', 'web_fetch',
|
|
38
|
+
];
|
|
39
|
+
//# sourceMappingURL=yolo-classifier.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yolo-classifier.constants.js","sourceRoot":"","sources":["../../../src/agent/services/yolo-classifier.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;2CA0BS,CAAC;AAE/B,QAAA,oBAAoB,GAAG,oFAAoF,CAAC;AAE5G,QAAA,oBAAoB,GAAG,0KAA0K,CAAC;AAElM,QAAA,iBAAiB,GAAG,EAAE,CAAC;AACvB,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEzB,QAAA,mBAAmB,GAAG;IACjC,YAAY,EAAE,UAAU,EAAE,YAAY;IACtC,YAAY,EAAE,WAAW;CAC1B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SettingsService } from '../../settings/settings.service';
|
|
2
|
+
import { LLMControllerService } from './llm-controller.service';
|
|
3
|
+
export interface YoloResult {
|
|
4
|
+
allowed: boolean;
|
|
5
|
+
reason?: string;
|
|
6
|
+
stage: 'fast_path' | 'pattern' | 'stage1' | 'stage2' | 'error' | 'fallback';
|
|
7
|
+
rule?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface YoloConfig {
|
|
10
|
+
disabledPatterns: string[];
|
|
11
|
+
failClosed: boolean;
|
|
12
|
+
safeToolAllowlist: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const DEFAULT_YOLO_CONFIG: YoloConfig;
|
|
15
|
+
export declare class YoloClassifierService {
|
|
16
|
+
private readonly llmController;
|
|
17
|
+
private readonly settingsService;
|
|
18
|
+
private static readonly SETTING_KEY;
|
|
19
|
+
private trackers;
|
|
20
|
+
private config;
|
|
21
|
+
private configLoaded;
|
|
22
|
+
constructor(llmController: LLMControllerService, settingsService: SettingsService);
|
|
23
|
+
private ensureConfig;
|
|
24
|
+
getConfig(): Promise<YoloConfig>;
|
|
25
|
+
updateConfig(updates: Partial<YoloConfig>): Promise<YoloConfig>;
|
|
26
|
+
evaluate(toolName: string, toolInput: string, transcript: string, sessionId?: number): Promise<YoloResult>;
|
|
27
|
+
private runStage1;
|
|
28
|
+
private runStage2;
|
|
29
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var YoloClassifierService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.YoloClassifierService = exports.DEFAULT_YOLO_CONFIG = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const settings_service_1 = require("../../settings/settings.service");
|
|
16
|
+
const llm_controller_service_1 = require("./llm-controller.service");
|
|
17
|
+
const danger_patterns_config_1 = require("./danger-patterns.config");
|
|
18
|
+
const denial_tracking_1 = require("./denial-tracking");
|
|
19
|
+
const yolo_classifier_constants_1 = require("./yolo-classifier.constants");
|
|
20
|
+
exports.DEFAULT_YOLO_CONFIG = {
|
|
21
|
+
disabledPatterns: [],
|
|
22
|
+
failClosed: true,
|
|
23
|
+
safeToolAllowlist: true,
|
|
24
|
+
};
|
|
25
|
+
let YoloClassifierService = YoloClassifierService_1 = class YoloClassifierService {
|
|
26
|
+
constructor(llmController, settingsService) {
|
|
27
|
+
this.llmController = llmController;
|
|
28
|
+
this.settingsService = settingsService;
|
|
29
|
+
this.trackers = new Map();
|
|
30
|
+
this.config = { ...exports.DEFAULT_YOLO_CONFIG };
|
|
31
|
+
this.configLoaded = false;
|
|
32
|
+
}
|
|
33
|
+
async ensureConfig() {
|
|
34
|
+
if (this.configLoaded)
|
|
35
|
+
return;
|
|
36
|
+
const raw = await this.settingsService.get(YoloClassifierService_1.SETTING_KEY, '');
|
|
37
|
+
if (raw) {
|
|
38
|
+
try {
|
|
39
|
+
const parsed = JSON.parse(raw);
|
|
40
|
+
this.config = { ...exports.DEFAULT_YOLO_CONFIG, ...parsed };
|
|
41
|
+
}
|
|
42
|
+
catch { }
|
|
43
|
+
}
|
|
44
|
+
this.configLoaded = true;
|
|
45
|
+
}
|
|
46
|
+
async getConfig() {
|
|
47
|
+
await this.ensureConfig();
|
|
48
|
+
return { ...this.config };
|
|
49
|
+
}
|
|
50
|
+
async updateConfig(updates) {
|
|
51
|
+
this.config = { ...this.config, ...updates };
|
|
52
|
+
await this.settingsService.upsert(YoloClassifierService_1.SETTING_KEY, JSON.stringify(this.config));
|
|
53
|
+
return this.getConfig();
|
|
54
|
+
}
|
|
55
|
+
async evaluate(toolName, toolInput, transcript, sessionId) {
|
|
56
|
+
await this.ensureConfig();
|
|
57
|
+
const sessionKey = sessionId?.toString() ?? 'default';
|
|
58
|
+
let tracker = this.trackers.get(sessionKey);
|
|
59
|
+
if (!tracker) {
|
|
60
|
+
tracker = new denial_tracking_1.DenialTracker();
|
|
61
|
+
this.trackers.set(sessionKey, tracker);
|
|
62
|
+
}
|
|
63
|
+
if (tracker.isLimitExceeded()) {
|
|
64
|
+
return { allowed: false, reason: 'Denial limit exceeded', stage: 'fallback' };
|
|
65
|
+
}
|
|
66
|
+
if (this.config.safeToolAllowlist && yolo_classifier_constants_1.SAFE_TOOL_ALLOWLIST.includes(toolName)) {
|
|
67
|
+
tracker.recordAllow();
|
|
68
|
+
return { allowed: true, stage: 'fast_path' };
|
|
69
|
+
}
|
|
70
|
+
const activeRules = danger_patterns_config_1.BLOCK_RULES.filter(r => !this.config.disabledPatterns.includes(r.category));
|
|
71
|
+
const matched = (0, danger_patterns_config_1.matchDangerPattern)(toolName, toolInput, activeRules);
|
|
72
|
+
if (matched) {
|
|
73
|
+
return this.runStage2(toolName, toolInput, transcript, tracker, matched);
|
|
74
|
+
}
|
|
75
|
+
return this.runStage1(toolName, toolInput, transcript, tracker);
|
|
76
|
+
}
|
|
77
|
+
async runStage1(toolName, toolInput, transcript, tracker) {
|
|
78
|
+
const prompt = `${transcript}\n\nAction: ${toolName}(${toolInput})\n\n${yolo_classifier_constants_1.STAGE1_PROMPT_SUFFIX}`;
|
|
79
|
+
const messages = [
|
|
80
|
+
{ role: 'system', content: yolo_classifier_constants_1.YOLO_SYSTEM_PROMPT },
|
|
81
|
+
{ role: 'user', content: prompt },
|
|
82
|
+
];
|
|
83
|
+
try {
|
|
84
|
+
const response = await this.llmController.generateCompletion(messages, { max_tokens: yolo_classifier_constants_1.STAGE1_MAX_TOKENS, temperature: 0 });
|
|
85
|
+
const blockMatch = response.match(/<block>(yes|no)<\/block>/);
|
|
86
|
+
if (!blockMatch) {
|
|
87
|
+
return this.runStage2(toolName, toolInput, transcript, tracker);
|
|
88
|
+
}
|
|
89
|
+
if (blockMatch[1] === 'no') {
|
|
90
|
+
tracker.recordAllow();
|
|
91
|
+
return { allowed: true, stage: 'stage1' };
|
|
92
|
+
}
|
|
93
|
+
return this.runStage2(toolName, toolInput, transcript, tracker);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
if (this.config.failClosed) {
|
|
97
|
+
return { allowed: false, reason: 'Classifier API error', stage: 'error' };
|
|
98
|
+
}
|
|
99
|
+
return { allowed: false, reason: 'Classifier unavailable', stage: 'fallback' };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async runStage2(toolName, toolInput, transcript, tracker, matched) {
|
|
103
|
+
const prompt = `${transcript}\n\nAction: ${toolName}(${toolInput})\n${yolo_classifier_constants_1.STAGE2_PROMPT_SUFFIX}`;
|
|
104
|
+
const messages = [
|
|
105
|
+
{ role: 'system', content: yolo_classifier_constants_1.YOLO_SYSTEM_PROMPT },
|
|
106
|
+
{ role: 'user', content: prompt },
|
|
107
|
+
];
|
|
108
|
+
try {
|
|
109
|
+
const response = await this.llmController.generateCompletion(messages, { max_tokens: yolo_classifier_constants_1.STAGE2_MAX_TOKENS, temperature: 0 });
|
|
110
|
+
const blockMatch = response.match(/<block>(yes|no)<\/block>/);
|
|
111
|
+
const reasonMatch = response.match(/<reason>([^<]+)<\/reason>/);
|
|
112
|
+
if (!blockMatch || blockMatch[1] === 'yes') {
|
|
113
|
+
const exceeded = tracker.recordDenial();
|
|
114
|
+
return {
|
|
115
|
+
allowed: false,
|
|
116
|
+
reason: reasonMatch?.[1] ?? 'Blocked by classifier',
|
|
117
|
+
stage: 'stage2',
|
|
118
|
+
rule: matched?.category,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
tracker.recordAllow();
|
|
122
|
+
return { allowed: true, stage: matched ? 'pattern' : 'stage2' };
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
if (this.config.failClosed) {
|
|
126
|
+
return { allowed: false, reason: 'Classifier API error', stage: 'error' };
|
|
127
|
+
}
|
|
128
|
+
return { allowed: false, reason: 'Classifier unavailable', stage: 'fallback' };
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
exports.YoloClassifierService = YoloClassifierService;
|
|
133
|
+
YoloClassifierService.SETTING_KEY = 'agent.yolo_config';
|
|
134
|
+
exports.YoloClassifierService = YoloClassifierService = YoloClassifierService_1 = __decorate([
|
|
135
|
+
(0, common_1.Injectable)(),
|
|
136
|
+
__metadata("design:paramtypes", [llm_controller_service_1.LLMControllerService,
|
|
137
|
+
settings_service_1.SettingsService])
|
|
138
|
+
], YoloClassifierService);
|
|
139
|
+
//# sourceMappingURL=yolo-classifier.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yolo-classifier.service.js","sourceRoot":"","sources":["../../../src/agent/services/yolo-classifier.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ToolDefinition } from '../services/context-builder.service';
|
|
2
|
+
export declare function filterSubagentTools(tools: ToolDefinition[], allowedTools?: string): ToolDefinition[];
|
|
3
|
+
export declare function runWithConcurrency<T, R>(items: T[], limit: number, fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.filterSubagentTools = filterSubagentTools;
|
|
4
|
+
exports.runWithConcurrency = runWithConcurrency;
|
|
5
|
+
const DISPATCH_TOOLS = new Set(['spawn_subagent', 'delegate']);
|
|
6
|
+
function filterSubagentTools(tools, allowedTools) {
|
|
7
|
+
let allowed = null;
|
|
8
|
+
if (allowedTools && allowedTools !== '*') {
|
|
9
|
+
try {
|
|
10
|
+
const parsed = JSON.parse(allowedTools);
|
|
11
|
+
if (Array.isArray(parsed))
|
|
12
|
+
allowed = new Set(parsed.map(String));
|
|
13
|
+
}
|
|
14
|
+
catch { }
|
|
15
|
+
}
|
|
16
|
+
return tools.filter(t => {
|
|
17
|
+
const name = t.function.name;
|
|
18
|
+
if (DISPATCH_TOOLS.has(name))
|
|
19
|
+
return false;
|
|
20
|
+
if (allowed && !allowed.has(name))
|
|
21
|
+
return false;
|
|
22
|
+
return true;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
async function runWithConcurrency(items, limit, fn) {
|
|
26
|
+
const results = new Array(items.length);
|
|
27
|
+
let next = 0;
|
|
28
|
+
const workers = Array.from({ length: Math.min(Math.max(limit, 1), items.length) }, async () => {
|
|
29
|
+
while (next < items.length) {
|
|
30
|
+
const i = next++;
|
|
31
|
+
results[i] = await fn(items[i], i);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
await Promise.all(workers);
|
|
35
|
+
return results;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=subagent-tools.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-tools.util.js","sourceRoot":"","sources":["../../../src/agent/subagent/subagent-tools.util.ts"],"names":[],"mappings":";;AAIA,kDAcC;AAED,gDAaC;AA/BD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/D,SAAgB,mBAAmB,CAAC,KAAuB,EAAE,YAAqB;IAChF,IAAI,OAAO,GAAuB,IAAI,CAAC;IACvC,IAAI,YAAY,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC,CAAyB,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7B,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,KAAU,EAAE,KAAa,EAAE,EAA0C;IAErE,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC5F,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AgentLoopService } from '../services/agent-loop.service';
|
|
2
|
+
import { ToolDefinition } from '../services/context-builder.service';
|
|
3
|
+
import { WriteStream } from '../dto/write-stream.interface';
|
|
4
|
+
export declare class SubagentService {
|
|
5
|
+
private readonly agentLoop;
|
|
6
|
+
private static readonly MAX_PARALLEL;
|
|
7
|
+
constructor(agentLoop: AgentLoopService);
|
|
8
|
+
delegate(tasks: string[], providerType: string, model: string, providerConfig: {
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
key?: string;
|
|
11
|
+
}, tools: ToolDefinition[], signal: AbortSignal, res: WriteStream, sessionId?: number, projectPath?: string, systemPromptOverride?: string, subagentName?: string): Promise<string>;
|
|
12
|
+
spawn(task: string, providerType: string, model: string, providerConfig: {
|
|
13
|
+
baseUrl: string;
|
|
14
|
+
key?: string;
|
|
15
|
+
}, tools: ToolDefinition[], signal: AbortSignal, res: WriteStream, sessionId?: number, projectPath?: string, systemPromptOverride?: string, subagentName?: string, subagentRunId?: string): Promise<string>;
|
|
16
|
+
private createPrefixedResponse;
|
|
17
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var SubagentService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.SubagentService = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const crypto = require("crypto");
|
|
19
|
+
const agent_loop_service_1 = require("../services/agent-loop.service");
|
|
20
|
+
const subagent_tools_util_1 = require("./subagent-tools.util");
|
|
21
|
+
let SubagentService = SubagentService_1 = class SubagentService {
|
|
22
|
+
constructor(agentLoop) {
|
|
23
|
+
this.agentLoop = agentLoop;
|
|
24
|
+
}
|
|
25
|
+
async delegate(tasks, providerType, model, providerConfig, tools, signal, res, sessionId, projectPath, systemPromptOverride, subagentName) {
|
|
26
|
+
if (signal.aborted)
|
|
27
|
+
return 'Aborted';
|
|
28
|
+
const requestId = crypto.randomUUID();
|
|
29
|
+
res.write(`data: ${JSON.stringify({ delegate: { requestId, taskCount: tasks.length } })}\n\n`);
|
|
30
|
+
const results = await (0, subagent_tools_util_1.runWithConcurrency)(tasks, SubagentService_1.MAX_PARALLEL, async (task, i) => {
|
|
31
|
+
res.write(`data: ${JSON.stringify({ delegateProgress: { requestId, index: i, subtask: task, status: 'running' } })}\n\n`);
|
|
32
|
+
try {
|
|
33
|
+
const summary = await this.spawn(task, providerType, model, providerConfig, tools, signal, res, sessionId, projectPath, systemPromptOverride, subagentName);
|
|
34
|
+
return { index: i, task, status: 'completed', summary: summary.slice(0, 200) };
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return { index: i, task, status: 'failed', summary: err.message ?? 'Unknown error' };
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
res.write(`data: ${JSON.stringify({ delegateResult: { requestId, results } })}\n\n`);
|
|
41
|
+
return results.map(r => `Delegate result ${r.index}: [${r.status}] — ${r.task}\n Summary: ${r.summary}`).join('\n');
|
|
42
|
+
}
|
|
43
|
+
async spawn(task, providerType, model, providerConfig, tools, signal, res, sessionId, projectPath, systemPromptOverride, subagentName, subagentRunId) {
|
|
44
|
+
const runId = subagentRunId ?? crypto.randomUUID();
|
|
45
|
+
const subagentPrompt = systemPromptOverride ??
|
|
46
|
+
(`You are a sub-agent. Your task: ${task}\n\n` +
|
|
47
|
+
'You have access to the same workspace tools. Complete the task and report back concisely.');
|
|
48
|
+
const subRes = this.createPrefixedResponse(res, subagentName, runId);
|
|
49
|
+
return this.agentLoop.run(providerType, model, subagentPrompt, [], task, tools, subRes, signal, sessionId, projectPath, providerConfig, subagentName, runId);
|
|
50
|
+
}
|
|
51
|
+
createPrefixedResponse(res, subagentName, subagentRunId) {
|
|
52
|
+
const originalWrite = res.write.bind(res);
|
|
53
|
+
return {
|
|
54
|
+
write(data) {
|
|
55
|
+
if (/^data: \[DONE\]\n?$/m.test(data)) {
|
|
56
|
+
const donePayload = { subagent: true, done: true };
|
|
57
|
+
if (subagentName)
|
|
58
|
+
donePayload.subagentName = subagentName;
|
|
59
|
+
if (subagentRunId)
|
|
60
|
+
donePayload.subagentRunId = subagentRunId;
|
|
61
|
+
return originalWrite(`data: ${JSON.stringify(donePayload)}\n\n`);
|
|
62
|
+
}
|
|
63
|
+
const modified = data.replace(/^(data: )(\{.*?\})(\n\n)$/gm, (_match, prefix, json, suffix) => {
|
|
64
|
+
try {
|
|
65
|
+
const parsed = JSON.parse(json);
|
|
66
|
+
parsed.subagent = true;
|
|
67
|
+
if (subagentName)
|
|
68
|
+
parsed.subagentName = subagentName;
|
|
69
|
+
if (subagentRunId)
|
|
70
|
+
parsed.subagentRunId = subagentRunId;
|
|
71
|
+
return `${prefix}${JSON.stringify(parsed)}${suffix}`;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return _match;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return originalWrite(modified);
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
exports.SubagentService = SubagentService;
|
|
83
|
+
SubagentService.MAX_PARALLEL = 4;
|
|
84
|
+
exports.SubagentService = SubagentService = SubagentService_1 = __decorate([
|
|
85
|
+
(0, common_1.Injectable)(),
|
|
86
|
+
__param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => agent_loop_service_1.AgentLoopService))),
|
|
87
|
+
__metadata("design:paramtypes", [agent_loop_service_1.AgentLoopService])
|
|
88
|
+
], SubagentService);
|
|
89
|
+
//# sourceMappingURL=subagent.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent.service.js","sourceRoot":"","sources":["../../../src/agent/subagent/subagent.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { StreamableFile } from '@nestjs/common';
|
|
2
|
+
import { Response } from 'express';
|
|
3
|
+
import { WorkspaceService } from '../workspace/workspace.service';
|
|
4
|
+
interface AgentOutputFile {
|
|
5
|
+
filename: string;
|
|
6
|
+
size: number;
|
|
7
|
+
modifiedAt: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class AgentOutputController {
|
|
10
|
+
private readonly workspace;
|
|
11
|
+
constructor(workspace: WorkspaceService);
|
|
12
|
+
listFiles(): Promise<AgentOutputFile[]>;
|
|
13
|
+
private scanAgentOutputDir;
|
|
14
|
+
download(filename: string, res: Response): StreamableFile;
|
|
15
|
+
private resolveFile;
|
|
16
|
+
remove(filename: string): Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|