@agentlang/agentmanager 0.0.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/README.md +122 -0
- package/apps/agentcraft/README.md +237 -0
- package/apps/agentcraft/src/agentcraft-core.module.ts +40 -0
- package/apps/agentcraft/src/app.module.ts +28 -0
- package/apps/agentcraft/src/architect/architect.controller.ts +69 -0
- package/apps/agentcraft/src/architect/architect.module.ts +11 -0
- package/apps/agentcraft/src/architect/architect.service.ts +193 -0
- package/apps/agentcraft/src/architect/architect.store.ts +63 -0
- package/apps/agentcraft/src/architect/dto/ingest-signal.dto.ts +20 -0
- package/apps/agentcraft/src/architect/interfaces/architect.interfaces.ts +20 -0
- package/apps/agentcraft/src/autonomous/autonomous.controller.ts +92 -0
- package/apps/agentcraft/src/autonomous/autonomous.module.ts +9 -0
- package/apps/agentcraft/src/autonomous/autonomous.service.ts +160 -0
- package/apps/agentcraft/src/autonomous/dto/run-autonomous.dto.ts +16 -0
- package/apps/agentcraft/src/autonomous/dto/watch-kb.dto.ts +16 -0
- package/apps/agentcraft/src/config/configuration.ts +74 -0
- package/apps/agentcraft/src/health/health.controller.ts +22 -0
- package/apps/agentcraft/src/health/health.module.ts +9 -0
- package/apps/agentcraft/src/main.ts +53 -0
- package/apps/agentcraft/src/resolver/dto/create-resolver.dto.ts +14 -0
- package/apps/agentcraft/src/resolver/dto/install-registry.dto.ts +10 -0
- package/apps/agentcraft/src/resolver/dto/search-registry-query.dto.ts +10 -0
- package/apps/agentcraft/src/resolver/dto/submit-action.dto.ts +4 -0
- package/apps/agentcraft/src/resolver/resolver-session.store.ts +39 -0
- package/apps/agentcraft/src/resolver/resolver.controller.ts +86 -0
- package/apps/agentcraft/src/resolver/resolver.module.ts +10 -0
- package/apps/agentcraft/src/resolver/resolver.service.ts +128 -0
- package/apps/agentcraft/src/sessions/dto/create-session.dto.ts +12 -0
- package/apps/agentcraft/src/sessions/dto/submit-action.dto.ts +1 -0
- package/apps/agentcraft/src/sessions/dto/submit-idea.dto.ts +8 -0
- package/apps/agentcraft/src/sessions/session.store.ts +39 -0
- package/apps/agentcraft/src/sessions/sessions.controller.ts +87 -0
- package/apps/agentcraft/src/sessions/sessions.module.ts +10 -0
- package/apps/agentcraft/src/sessions/sessions.service.ts +277 -0
- package/apps/agentcraft/tsconfig.app.json +8 -0
- package/apps/agentmanager/README.md +141 -0
- package/apps/agentmanager/src/agentmanager-core.module.ts +45 -0
- package/apps/agentmanager/src/app.module.ts +26 -0
- package/apps/agentmanager/src/config/configuration.ts +63 -0
- package/apps/agentmanager/src/deployments/deployments.controller.ts +21 -0
- package/apps/agentmanager/src/deployments/deployments.module.ts +10 -0
- package/apps/agentmanager/src/deployments/deployments.service.ts +166 -0
- package/apps/agentmanager/src/deployments/errors/deployment.errors.ts +13 -0
- package/apps/agentmanager/src/deployments/interfaces/deployment.interfaces.ts +25 -0
- package/apps/agentmanager/src/discovery/discovery.controller.ts +14 -0
- package/apps/agentmanager/src/discovery/discovery.module.ts +36 -0
- package/apps/agentmanager/src/discovery/discovery.service.ts +174 -0
- package/apps/agentmanager/src/discovery/dto/discover.dto.ts +8 -0
- package/apps/agentmanager/src/discovery/interfaces/discovery.interfaces.ts +22 -0
- package/apps/agentmanager/src/discovery/llm/anthropic-llm.service.ts +67 -0
- package/apps/agentmanager/src/discovery/llm/llm-provider.interface.ts +17 -0
- package/apps/agentmanager/src/discovery/llm/llm.errors.ts +7 -0
- package/apps/agentmanager/src/discovery/llm/openai-llm.service.ts +67 -0
- package/apps/agentmanager/src/employee-code/dto/put-config.dto.ts +8 -0
- package/apps/agentmanager/src/employee-code/dto/put-module.dto.ts +8 -0
- package/apps/agentmanager/src/employee-code/dto/put-package.dto.ts +13 -0
- package/apps/agentmanager/src/employee-code/employee-code.controller.ts +114 -0
- package/apps/agentmanager/src/employee-code/employee-code.module.ts +10 -0
- package/apps/agentmanager/src/employee-code/employee-code.service.ts +55 -0
- package/apps/agentmanager/src/employees/dto/register-employee.dto.ts +9 -0
- package/apps/agentmanager/src/employees/employees.controller.ts +53 -0
- package/apps/agentmanager/src/employees/employees.module.ts +10 -0
- package/apps/agentmanager/src/employees/employees.service.ts +29 -0
- package/apps/agentmanager/src/health/health.controller.ts +22 -0
- package/apps/agentmanager/src/health/health.module.ts +9 -0
- package/apps/agentmanager/src/inbox/dto/list-messages-query.dto.ts +12 -0
- package/apps/agentmanager/src/inbox/dto/push-message.dto.ts +55 -0
- package/apps/agentmanager/src/inbox/dto/respond-message.dto.ts +9 -0
- package/apps/agentmanager/src/inbox/inbox.controller.ts +87 -0
- package/apps/agentmanager/src/inbox/inbox.module.ts +10 -0
- package/apps/agentmanager/src/inbox/inbox.service.ts +209 -0
- package/apps/agentmanager/src/main.ts +53 -0
- package/apps/agentmanager/src/projects/dto/create-project.dto.ts +10 -0
- package/apps/agentmanager/src/projects/projects.controller.ts +47 -0
- package/apps/agentmanager/src/projects/projects.module.ts +10 -0
- package/apps/agentmanager/src/projects/projects.service.ts +24 -0
- package/apps/agentmanager/tsconfig.app.json +8 -0
- package/apps/fabric/Dockerfile +22 -0
- package/apps/fabric/docker-compose.yml +14 -0
- package/apps/fabric/ecosystem.config.cjs +17 -0
- package/apps/fabric/src/ai-agent/ai-agent.module.ts +43 -0
- package/apps/fabric/src/ai-agent/ai-agent.service.ts +374 -0
- package/apps/fabric/src/ai-agent/probe-investigation.types.ts +24 -0
- package/apps/fabric/src/app.module.ts +40 -0
- package/apps/fabric/src/auth/current-user.decorator.ts +11 -0
- package/apps/fabric/src/auth/request-user.ts +4 -0
- package/apps/fabric/src/config/configuration.ts +266 -0
- package/apps/fabric/src/database/entities/deployment-event.entity.ts +33 -0
- package/apps/fabric/src/database/entities/environment.entity.ts +25 -0
- package/apps/fabric/src/database/entities/index.ts +25 -0
- package/apps/fabric/src/database/entities/project.entity.ts +25 -0
- package/apps/fabric/src/database/entities/runtime.entity.ts +55 -0
- package/apps/fabric/src/database/entities/user-config.entity.ts +22 -0
- package/apps/fabric/src/database/entities/version.entity.ts +22 -0
- package/apps/fabric/src/database/migrations-data-source.ts +27 -0
- package/apps/fabric/src/deployment-events/deployment-events.controller.ts +27 -0
- package/apps/fabric/src/deployment-events/deployment-events.module.ts +11 -0
- package/apps/fabric/src/deployment-events/deployment-events.service.ts +58 -0
- package/apps/fabric/src/deployment-events/deployment-events.store.ts +162 -0
- package/apps/fabric/src/deployment-events/deployment-events.types.ts +24 -0
- package/apps/fabric/src/employees/dto/deploy.dto.ts +71 -0
- package/apps/fabric/src/employees/employees.controller.ts +217 -0
- package/apps/fabric/src/employees/employees.module.ts +32 -0
- package/apps/fabric/src/employees/employees.service.ts +1333 -0
- package/apps/fabric/src/employees/employees.types.ts +69 -0
- package/apps/fabric/src/employees/errors/employee-deployment.errors.ts +80 -0
- package/apps/fabric/src/employees/runtime.store.ts +304 -0
- package/apps/fabric/src/environments/dto/environment.dto.ts +26 -0
- package/apps/fabric/src/environments/environments.controller.ts +48 -0
- package/apps/fabric/src/environments/environments.module.ts +11 -0
- package/apps/fabric/src/environments/environments.service.ts +92 -0
- package/apps/fabric/src/environments/environments.store.ts +146 -0
- package/apps/fabric/src/environments/environments.types.ts +11 -0
- package/apps/fabric/src/environments/errors/environment.errors.ts +14 -0
- package/apps/fabric/src/fabric-core.module.ts +48 -0
- package/apps/fabric/src/health/health.controller.ts +19 -0
- package/apps/fabric/src/health/health.module.ts +12 -0
- package/apps/fabric/src/health/provider-health.indicator.ts +33 -0
- package/apps/fabric/src/healthcheck/healthcheck.module.ts +24 -0
- package/apps/fabric/src/healthcheck/healthcheck.service.ts +494 -0
- package/apps/fabric/src/logs/logs.module.ts +10 -0
- package/apps/fabric/src/logs/logs.service.ts +149 -0
- package/apps/fabric/src/main.ts +57 -0
- package/apps/fabric/src/notifications/notifications.module.ts +23 -0
- package/apps/fabric/src/notifications/notifications.service.ts +141 -0
- package/apps/fabric/src/project-source/errors/project-source.errors.ts +8 -0
- package/apps/fabric/src/project-source/project-source.module.ts +8 -0
- package/apps/fabric/src/project-source/project-source.service.ts +75 -0
- package/apps/fabric/src/project-source/project-source.types.ts +5 -0
- package/apps/fabric/src/projects/dto/project.dto.ts +25 -0
- package/apps/fabric/src/projects/errors/project.errors.ts +17 -0
- package/apps/fabric/src/projects/projects-data.service.ts +60 -0
- package/apps/fabric/src/projects/projects.controller.ts +92 -0
- package/apps/fabric/src/projects/projects.module.ts +20 -0
- package/apps/fabric/src/projects/projects.service.ts +323 -0
- package/apps/fabric/src/projects/projects.store.ts +142 -0
- package/apps/fabric/src/projects/projects.types.ts +9 -0
- package/apps/fabric/src/providers/docker-provider.ts +141 -0
- package/apps/fabric/src/providers/eks-provider.ts +279 -0
- package/apps/fabric/src/providers/pm2-provider.ts +205 -0
- package/apps/fabric/src/providers/port-allocator.ts +57 -0
- package/apps/fabric/src/providers/provider-factory.ts +32 -0
- package/apps/fabric/src/providers/provider.interface.ts +50 -0
- package/apps/fabric/src/providers/providers.module.ts +26 -0
- package/apps/fabric/src/provisioners/cognito-provisioner.service.ts +168 -0
- package/apps/fabric/src/provisioners/postgres-provisioner.service.ts +124 -0
- package/apps/fabric/src/provisioners/provisioners.module.ts +40 -0
- package/apps/fabric/src/user-config/user-config.module.ts +9 -0
- package/apps/fabric/src/user-config/user-config.service.ts +54 -0
- package/apps/fabric/src/user-config/user-config.store.ts +120 -0
- package/apps/fabric/src/user-config/user-config.types.ts +11 -0
- package/apps/fabric/src/versions/versions.controller.ts +24 -0
- package/apps/fabric/src/versions/versions.module.ts +11 -0
- package/apps/fabric/src/versions/versions.service.ts +65 -0
- package/apps/fabric/src/versions/versions.store.ts +160 -0
- package/apps/fabric/src/versions/versions.types.ts +12 -0
- package/apps/fabric/src/watcher/deployment-watcher.module.ts +22 -0
- package/apps/fabric/src/watcher/deployment-watcher.service.ts +92 -0
- package/apps/fabric/src/watcher/pod-probe.service.ts +231 -0
- package/apps/fabric/tsconfig.app.json +8 -0
- package/apps/integrations/prisma/.integrations/integrations.sqlite +0 -0
- package/apps/integrations/prisma/prisma.config.ts +8 -0
- package/apps/integrations/prisma/prisma.sqlite.config.ts +8 -0
- package/apps/integrations/prisma/schema.postgres.prisma +27 -0
- package/apps/integrations/prisma/schema.sqlite.prisma +27 -0
- package/apps/integrations/scripts/prepare-db.cjs +92 -0
- package/apps/integrations/src/api/auth-flow.controller.ts +39 -0
- package/apps/integrations/src/api/connections.controller.ts +26 -0
- package/apps/integrations/src/api/health.controller.ts +34 -0
- package/apps/integrations/src/api/providers.controller.ts +60 -0
- package/apps/integrations/src/api/tenant-config.controller.ts +62 -0
- package/apps/integrations/src/app.module.ts +38 -0
- package/apps/integrations/src/config/configuration.ts +134 -0
- package/apps/integrations/src/generated/prisma-postgres/browser.ts +24 -0
- package/apps/integrations/src/generated/prisma-postgres/client.ts +46 -0
- package/apps/integrations/src/generated/prisma-postgres/commonInputTypes.ts +297 -0
- package/apps/integrations/src/generated/prisma-postgres/enums.ts +15 -0
- package/apps/integrations/src/generated/prisma-postgres/internal/class.ts +204 -0
- package/apps/integrations/src/generated/prisma-postgres/internal/prismaNamespace.ts +794 -0
- package/apps/integrations/src/generated/prisma-postgres/internal/prismaNamespaceBrowser.ts +126 -0
- package/apps/integrations/src/generated/prisma-postgres/models/IntegrationEntity.ts +1273 -0
- package/apps/integrations/src/generated/prisma-postgres/models.ts +12 -0
- package/apps/integrations/src/generated/prisma-sqlite/browser.ts +24 -0
- package/apps/integrations/src/generated/prisma-sqlite/client.ts +46 -0
- package/apps/integrations/src/generated/prisma-sqlite/commonInputTypes.ts +278 -0
- package/apps/integrations/src/generated/prisma-sqlite/enums.ts +15 -0
- package/apps/integrations/src/generated/prisma-sqlite/internal/class.ts +204 -0
- package/apps/integrations/src/generated/prisma-sqlite/internal/prismaNamespace.ts +770 -0
- package/apps/integrations/src/generated/prisma-sqlite/internal/prismaNamespaceBrowser.ts +123 -0
- package/apps/integrations/src/generated/prisma-sqlite/models/IntegrationEntity.ts +1271 -0
- package/apps/integrations/src/generated/prisma-sqlite/models.ts +12 -0
- package/apps/integrations/src/integrations-core.module.ts +52 -0
- package/apps/integrations/src/main.ts +63 -0
- package/apps/integrations/src/modules/auth-flow/auth-flow.module.ts +21 -0
- package/apps/integrations/src/modules/auth-flow/auth-flow.service.ts +275 -0
- package/apps/integrations/src/modules/auth-flow/dto/auth-flow.dto.ts +36 -0
- package/apps/integrations/src/modules/auth-flow/scheduler.service.ts +73 -0
- package/apps/integrations/src/modules/connections/connections.module.ts +11 -0
- package/apps/integrations/src/modules/connections/connections.service.ts +109 -0
- package/apps/integrations/src/modules/credentials/credentials.module.ts +11 -0
- package/apps/integrations/src/modules/credentials/encryption.service.ts +71 -0
- package/apps/integrations/src/modules/credentials/token-store.service.ts +82 -0
- package/apps/integrations/src/modules/discovery/discovery.module.ts +8 -0
- package/apps/integrations/src/modules/discovery/oidc-discovery.service.ts +114 -0
- package/apps/integrations/src/modules/platform/metadata-store.service.ts +337 -0
- package/apps/integrations/src/modules/platform/platform.module.ts +8 -0
- package/apps/integrations/src/modules/platform/platform.types.ts +10 -0
- package/apps/integrations/src/modules/platform/resilient-fetch.ts +53 -0
- package/apps/integrations/src/modules/providers/base/api-key.provider.ts +43 -0
- package/apps/integrations/src/modules/providers/base/basic-auth.provider.ts +44 -0
- package/apps/integrations/src/modules/providers/base/oauth2.provider.ts +233 -0
- package/apps/integrations/src/modules/providers/base/oidc.provider.ts +87 -0
- package/apps/integrations/src/modules/providers/builtin/google-drive.provider.ts +40 -0
- package/apps/integrations/src/modules/providers/dto/provider.dto.ts +53 -0
- package/apps/integrations/src/modules/providers/provider.factory.ts +68 -0
- package/apps/integrations/src/modules/providers/provider.registry.ts +123 -0
- package/apps/integrations/src/modules/providers/provider.types.ts +185 -0
- package/apps/integrations/src/modules/providers/providers.module.ts +34 -0
- package/apps/integrations/src/modules/tenant-config/dto/tenant-config.dto.ts +28 -0
- package/apps/integrations/src/modules/tenant-config/tenant-config.module.ts +11 -0
- package/apps/integrations/src/modules/tenant-config/tenant-config.service.ts +212 -0
- package/apps/integrations/tsconfig.app.json +8 -0
- package/apps/knowledge/prisma/prisma.config.ts +8 -0
- package/apps/knowledge/prisma/schema.postgres.prisma +29 -0
- package/apps/knowledge/prisma/schema.sqlite.prisma +29 -0
- package/apps/knowledge/scripts/prepare-db.cjs +72 -0
- package/apps/knowledge/src/api/auth.controller.ts +54 -0
- package/apps/knowledge/src/api/connections.controller.ts +99 -0
- package/apps/knowledge/src/api/documents.controller.ts +45 -0
- package/apps/knowledge/src/api/graph.controller.ts +67 -0
- package/apps/knowledge/src/api/health.controller.ts +39 -0
- package/apps/knowledge/src/api/ingestion.controller.ts +45 -0
- package/apps/knowledge/src/api/knowledge-query.controller.ts +27 -0
- package/apps/knowledge/src/api/oauth.controller.ts +38 -0
- package/apps/knowledge/src/api/recommendations.controller.ts +63 -0
- package/apps/knowledge/src/api/scheduler.controller.ts +32 -0
- package/apps/knowledge/src/api/topics.controller.ts +46 -0
- package/apps/knowledge/src/app.module.ts +68 -0
- package/apps/knowledge/src/config/configuration.ts +149 -0
- package/apps/knowledge/src/generated/prisma-postgres/browser.ts +24 -0
- package/apps/knowledge/src/generated/prisma-postgres/client.ts +46 -0
- package/apps/knowledge/src/generated/prisma-postgres/commonInputTypes.ts +297 -0
- package/apps/knowledge/src/generated/prisma-postgres/enums.ts +15 -0
- package/apps/knowledge/src/generated/prisma-postgres/internal/class.ts +204 -0
- package/apps/knowledge/src/generated/prisma-postgres/internal/prismaNamespace.ts +795 -0
- package/apps/knowledge/src/generated/prisma-postgres/internal/prismaNamespaceBrowser.ts +127 -0
- package/apps/knowledge/src/generated/prisma-postgres/models/KnowledgeEntity.ts +1301 -0
- package/apps/knowledge/src/generated/prisma-postgres/models.ts +12 -0
- package/apps/knowledge/src/generated/prisma-sqlite/browser.ts +24 -0
- package/apps/knowledge/src/generated/prisma-sqlite/client.ts +46 -0
- package/apps/knowledge/src/generated/prisma-sqlite/commonInputTypes.ts +278 -0
- package/apps/knowledge/src/generated/prisma-sqlite/enums.ts +15 -0
- package/apps/knowledge/src/generated/prisma-sqlite/internal/class.ts +204 -0
- package/apps/knowledge/src/generated/prisma-sqlite/internal/prismaNamespace.ts +771 -0
- package/apps/knowledge/src/generated/prisma-sqlite/internal/prismaNamespaceBrowser.ts +124 -0
- package/apps/knowledge/src/generated/prisma-sqlite/models/KnowledgeEntity.ts +1299 -0
- package/apps/knowledge/src/generated/prisma-sqlite/models.ts +12 -0
- package/apps/knowledge/src/main.ts +48 -0
- package/apps/knowledge/src/modules/auth/auth.module.ts +8 -0
- package/apps/knowledge/src/modules/auth/auth.service.ts +290 -0
- package/apps/knowledge/src/modules/documents/documents.module.ts +12 -0
- package/apps/knowledge/src/modules/documents/documents.service.ts +179 -0
- package/apps/knowledge/src/modules/documents/dto/document.dto.ts +68 -0
- package/apps/knowledge/src/modules/graph/graph.module.ts +10 -0
- package/apps/knowledge/src/modules/graph/graph.service.ts +223 -0
- package/apps/knowledge/src/modules/ingestion/dto/ingestion.dto.ts +58 -0
- package/apps/knowledge/src/modules/ingestion/ingestion-workflows.service.ts +246 -0
- package/apps/knowledge/src/modules/ingestion/ingestion.module.ts +14 -0
- package/apps/knowledge/src/modules/ingestion/ingestion.service.ts +619 -0
- package/apps/knowledge/src/modules/oauth-bridge/oauth-bridge.module.ts +8 -0
- package/apps/knowledge/src/modules/oauth-bridge/oauth-bridge.service.ts +135 -0
- package/apps/knowledge/src/modules/platform/metadata-store.service.ts +314 -0
- package/apps/knowledge/src/modules/platform/platform.module.ts +9 -0
- package/apps/knowledge/src/modules/platform/platform.types.ts +23 -0
- package/apps/knowledge/src/modules/platform/vector-store.service.ts +235 -0
- package/apps/knowledge/src/modules/recommendations/recommendations.module.ts +10 -0
- package/apps/knowledge/src/modules/recommendations/recommendations.service.ts +121 -0
- package/apps/knowledge/src/modules/storage/storage.module.ts +8 -0
- package/apps/knowledge/src/modules/storage/storage.service.ts +150 -0
- package/apps/knowledge/src/modules/sync/scheduler.service.ts +175 -0
- package/apps/knowledge/src/modules/sync/sync.module.ts +11 -0
- package/apps/knowledge/src/modules/topics/dto/topic.dto.ts +50 -0
- package/apps/knowledge/src/modules/topics/topics.module.ts +10 -0
- package/apps/knowledge/src/modules/topics/topics.service.ts +86 -0
- package/apps/knowledge/tsconfig.app.json +8 -0
- package/apps/monolith/src/app.module.ts +75 -0
- package/apps/monolith/src/config/configuration.ts +93 -0
- package/apps/monolith/src/health/health.controller.ts +22 -0
- package/apps/monolith/src/health/health.module.ts +9 -0
- package/apps/monolith/src/main.ts +56 -0
- package/apps/monolith/tsconfig.app.json +8 -0
- package/libs/agentcraft/src/agentcraft.module.d.ts +12 -0
- package/libs/agentcraft/src/agentcraft.module.js +142 -0
- package/libs/agentcraft/src/agentcraft.module.js.map +1 -0
- package/libs/agentcraft/src/agentcraft.module.ts +161 -0
- package/libs/agentcraft/src/constants.d.ts +2 -0
- package/libs/agentcraft/src/constants.js +6 -0
- package/libs/agentcraft/src/constants.js.map +1 -0
- package/libs/agentcraft/src/constants.ts +2 -0
- package/libs/agentcraft/src/dto/submit-action.dto.ts +20 -0
- package/libs/agentcraft/src/errors/domain.error.d.ts +8 -0
- package/libs/agentcraft/src/errors/domain.error.js +27 -0
- package/libs/agentcraft/src/errors/domain.error.js.map +1 -0
- package/libs/agentcraft/src/errors/domain.error.ts +14 -0
- package/libs/agentcraft/src/errors/llm.errors.d.ts +10 -0
- package/libs/agentcraft/src/errors/llm.errors.js +26 -0
- package/libs/agentcraft/src/errors/llm.errors.js.map +1 -0
- package/libs/agentcraft/src/errors/llm.errors.ts +19 -0
- package/libs/agentcraft/src/index.d.ts +64 -0
- package/libs/agentcraft/src/index.js +195 -0
- package/libs/agentcraft/src/index.js.map +1 -0
- package/libs/agentcraft/src/index.ts +171 -0
- package/libs/agentcraft/src/instructions/step6-data-model.ts +181 -0
- package/libs/agentcraft/src/instructions/step7-workflows.ts +544 -0
- package/libs/agentcraft/src/instructions/step8-agents.ts +114 -0
- package/libs/agentcraft/src/interfaces/llm-provider.interface.d.ts +16 -0
- package/libs/agentcraft/src/interfaces/llm-provider.interface.js +3 -0
- package/libs/agentcraft/src/interfaces/llm-provider.interface.js.map +1 -0
- package/libs/agentcraft/src/interfaces/llm-provider.interface.ts +18 -0
- package/libs/agentcraft/src/prompts/assembly.prompt.ts +104 -0
- package/libs/agentcraft/src/prompts/codegen.prompt.ts +162 -0
- package/libs/agentcraft/src/prompts/decomposition.prompt.ts +32 -0
- package/libs/agentcraft/src/prompts/examples-provider.ts +63 -0
- package/libs/agentcraft/src/prompts/planning.prompt.ts +52 -0
- package/libs/agentcraft/src/prompts/resolver.prompt.ts +364 -0
- package/libs/agentcraft/src/prompts/semantics-guide.ts +134 -0
- package/libs/agentcraft/src/services/anthropic-craft-llm.service.ts +186 -0
- package/libs/agentcraft/src/services/anthropic-llm.service.d.ts +9 -0
- package/libs/agentcraft/src/services/anthropic-llm.service.js +90 -0
- package/libs/agentcraft/src/services/anthropic-llm.service.js.map +1 -0
- package/libs/agentcraft/src/services/anthropic-llm.service.ts +61 -0
- package/libs/agentcraft/src/services/api-adapter.service.d.ts +65 -0
- package/libs/agentcraft/src/services/api-adapter.service.js +167 -0
- package/libs/agentcraft/src/services/api-adapter.service.js.map +1 -0
- package/libs/agentcraft/src/services/api-adapter.service.ts +186 -0
- package/libs/agentcraft/src/services/architect-loop.service.d.ts +16 -0
- package/libs/agentcraft/src/services/architect-loop.service.js +92 -0
- package/libs/agentcraft/src/services/architect-loop.service.js.map +1 -0
- package/libs/agentcraft/src/services/architect-loop.service.ts +407 -0
- package/libs/agentcraft/src/services/autonomous-runner.service.ts +178 -0
- package/libs/agentcraft/src/services/craft-config.service.d.ts +11 -0
- package/libs/agentcraft/src/services/craft-config.service.js +127 -0
- package/libs/agentcraft/src/services/craft-config.service.js.map +1 -0
- package/libs/agentcraft/src/services/craft-config.service.ts +92 -0
- package/libs/agentcraft/src/services/craft-llm-adapter.service.d.ts +12 -0
- package/libs/agentcraft/src/services/craft-llm-adapter.service.js +73 -0
- package/libs/agentcraft/src/services/craft-llm-adapter.service.js.map +1 -0
- package/libs/agentcraft/src/services/craft-llm-adapter.service.ts +52 -0
- package/libs/agentcraft/src/services/decomposer.service.ts +115 -0
- package/libs/agentcraft/src/services/design-generator.service.ts +672 -0
- package/libs/agentcraft/src/services/executor.service.ts +452 -0
- package/libs/agentcraft/src/services/kb-watcher.service.ts +150 -0
- package/libs/agentcraft/src/services/openai-llm.service.d.ts +9 -0
- package/libs/agentcraft/src/services/openai-llm.service.js +91 -0
- package/libs/agentcraft/src/services/openai-llm.service.js.map +1 -0
- package/libs/agentcraft/src/services/openai-llm.service.ts +61 -0
- package/libs/agentcraft/src/services/output-parser.service.d.ts +9 -0
- package/libs/agentcraft/src/services/output-parser.service.js +80 -0
- package/libs/agentcraft/src/services/output-parser.service.js.map +1 -0
- package/libs/agentcraft/src/services/output-parser.service.ts +68 -0
- package/libs/agentcraft/src/services/pipeline-state.service.d.ts +19 -0
- package/libs/agentcraft/src/services/pipeline-state.service.js +134 -0
- package/libs/agentcraft/src/services/pipeline-state.service.js.map +1 -0
- package/libs/agentcraft/src/services/pipeline-state.service.ts +108 -0
- package/libs/agentcraft/src/services/pipeline-steps.service.d.ts +10 -0
- package/libs/agentcraft/src/services/pipeline-steps.service.js +147 -0
- package/libs/agentcraft/src/services/pipeline-steps.service.js.map +1 -0
- package/libs/agentcraft/src/services/pipeline-steps.service.ts +126 -0
- package/libs/agentcraft/src/services/planner.service.ts +189 -0
- package/libs/agentcraft/src/services/readme-generator.service.ts +229 -0
- package/libs/agentcraft/src/services/registry-client.service.d.ts +14 -0
- package/libs/agentcraft/src/services/registry-client.service.js +158 -0
- package/libs/agentcraft/src/services/registry-client.service.js.map +1 -0
- package/libs/agentcraft/src/services/registry-client.service.ts +139 -0
- package/libs/agentcraft/src/services/requirements-generator.service.ts +238 -0
- package/libs/agentcraft/src/services/spec-fetcher.service.d.ts +3 -0
- package/libs/agentcraft/src/services/spec-fetcher.service.js +46 -0
- package/libs/agentcraft/src/services/spec-fetcher.service.js.map +1 -0
- package/libs/agentcraft/src/services/spec-fetcher.service.ts +21 -0
- package/libs/agentcraft/src/services/ui-blueprint-generator.service.ts +387 -0
- package/libs/agentcraft/src/types/architect.types.ts +156 -0
- package/libs/agentcraft/src/types/autonomous.types.ts +71 -0
- package/libs/agentcraft/src/types/llm.types.d.ts +26 -0
- package/libs/agentcraft/src/types/llm.types.js +3 -0
- package/libs/agentcraft/src/types/llm.types.js.map +1 -0
- package/libs/agentcraft/src/types/llm.types.ts +60 -0
- package/libs/agentcraft/src/types/pipeline.types.d.ts +55 -0
- package/libs/agentcraft/src/types/pipeline.types.js +37 -0
- package/libs/agentcraft/src/types/pipeline.types.js.map +1 -0
- package/libs/agentcraft/src/types/pipeline.types.ts +61 -0
- package/libs/agentcraft/src/types/resolver.types.d.ts +27 -0
- package/libs/agentcraft/src/types/resolver.types.js +3 -0
- package/libs/agentcraft/src/types/resolver.types.js.map +1 -0
- package/libs/agentcraft/src/types/resolver.types.ts +22 -0
- package/libs/agentcraft/src/types/signal.types.d.ts +16 -0
- package/libs/agentcraft/src/types/signal.types.js +3 -0
- package/libs/agentcraft/src/types/signal.types.js.map +1 -0
- package/libs/agentcraft/src/types/signal.types.ts +18 -0
- package/libs/agentcraft/src/utils/kb-loader.ts +67 -0
- package/libs/agentcraft/src/utils/output-writer.ts +71 -0
- package/libs/agentcraft/src/utils/spec-fetcher.ts +20 -0
- package/libs/agentcraft/src/utils/spec-trimmer.ts +280 -0
- package/libs/agentcraft/src/utils/text-utils.ts +49 -0
- package/libs/agentcraft/src/utils/validator.ts +231 -0
- package/libs/agentcraft/tsconfig.lib.json +9 -0
- package/libs/auth/src/auth.guard.ts +188 -0
- package/libs/auth/src/auth.module.ts +11 -0
- package/libs/auth/src/index.ts +3 -0
- package/libs/auth/src/public.decorator.ts +5 -0
- package/libs/auth/tsconfig.lib.json +9 -0
- package/libs/common/src/database/data-source.service.ts +75 -0
- package/libs/common/src/database/database-connection.holder.ts +41 -0
- package/libs/common/src/database/database.config.ts +14 -0
- package/libs/common/src/database/database.module.ts +42 -0
- package/libs/common/src/database/embedded-database.service.ts +120 -0
- package/libs/common/src/database/file-store.factory.ts +20 -0
- package/libs/common/src/database/file-store.ts +47 -0
- package/libs/common/src/errors/domain.error.ts +11 -0
- package/libs/common/src/filters/domain-exception.filter.ts +62 -0
- package/libs/common/src/index.ts +15 -0
- package/libs/common/src/interceptors/logging.interceptor.ts +60 -0
- package/libs/common/tsconfig.lib.json +9 -0
- package/libs/project-provider/src/constants.d.ts +7 -0
- package/libs/project-provider/src/constants.js +18 -0
- package/libs/project-provider/src/constants.js.map +1 -0
- package/libs/project-provider/src/constants.ts +7 -0
- package/libs/project-provider/src/errors/domain.error.d.ts +4 -0
- package/libs/project-provider/src/errors/domain.error.js +13 -0
- package/libs/project-provider/src/errors/domain.error.js.map +1 -0
- package/libs/project-provider/src/errors/domain.error.ts +1 -0
- package/libs/project-provider/src/errors/employee-code.errors.d.ts +13 -0
- package/libs/project-provider/src/errors/employee-code.errors.js +42 -0
- package/libs/project-provider/src/errors/employee-code.errors.js.map +1 -0
- package/libs/project-provider/src/errors/employee-code.errors.ts +37 -0
- package/libs/project-provider/src/errors/inbox.errors.d.ts +13 -0
- package/libs/project-provider/src/errors/inbox.errors.js +36 -0
- package/libs/project-provider/src/errors/inbox.errors.js.map +1 -0
- package/libs/project-provider/src/errors/inbox.errors.ts +31 -0
- package/libs/project-provider/src/errors/registry.errors.d.ts +16 -0
- package/libs/project-provider/src/errors/registry.errors.js +46 -0
- package/libs/project-provider/src/errors/registry.errors.js.map +1 -0
- package/libs/project-provider/src/errors/registry.errors.ts +40 -0
- package/libs/project-provider/src/index.d.ts +67 -0
- package/libs/project-provider/src/index.js +220 -0
- package/libs/project-provider/src/index.js.map +1 -0
- package/libs/project-provider/src/index.ts +82 -0
- package/libs/project-provider/src/interfaces/employee-code-provider.interface.d.ts +36 -0
- package/libs/project-provider/src/interfaces/employee-code-provider.interface.js +3 -0
- package/libs/project-provider/src/interfaces/employee-code-provider.interface.js.map +1 -0
- package/libs/project-provider/src/interfaces/employee-code-provider.interface.ts +37 -0
- package/libs/project-provider/src/interfaces/inbox-client.interface.d.ts +3 -0
- package/libs/project-provider/src/interfaces/inbox-client.interface.js +3 -0
- package/libs/project-provider/src/interfaces/inbox-client.interface.js.map +1 -0
- package/libs/project-provider/src/interfaces/inbox-client.interface.ts +3 -0
- package/libs/project-provider/src/interfaces/inbox-handler.interface.ts +10 -0
- package/libs/project-provider/src/interfaces/knowledge-base.interface.d.ts +5 -0
- package/libs/project-provider/src/interfaces/knowledge-base.interface.js +3 -0
- package/libs/project-provider/src/interfaces/knowledge-base.interface.js.map +1 -0
- package/libs/project-provider/src/interfaces/knowledge-base.interface.ts +6 -0
- package/libs/project-provider/src/interfaces/registry-provider.interface.d.ts +24 -0
- package/libs/project-provider/src/interfaces/registry-provider.interface.js +3 -0
- package/libs/project-provider/src/interfaces/registry-provider.interface.js.map +1 -0
- package/libs/project-provider/src/interfaces/registry-provider.interface.ts +36 -0
- package/libs/project-provider/src/project-provider.module.d.ts +10 -0
- package/libs/project-provider/src/project-provider.module.js +137 -0
- package/libs/project-provider/src/project-provider.module.js.map +1 -0
- package/libs/project-provider/src/project-provider.module.ts +119 -0
- package/libs/project-provider/src/services/al-parser.service.d.ts +6 -0
- package/libs/project-provider/src/services/al-parser.service.js +103 -0
- package/libs/project-provider/src/services/al-parser.service.js.map +1 -0
- package/libs/project-provider/src/services/al-parser.service.ts +92 -0
- package/libs/project-provider/src/services/direct-inbox-client.service.ts +24 -0
- package/libs/project-provider/src/services/file-knowledge-base.service.d.ts +8 -0
- package/libs/project-provider/src/services/file-knowledge-base.service.js +158 -0
- package/libs/project-provider/src/services/file-knowledge-base.service.js.map +1 -0
- package/libs/project-provider/src/services/file-knowledge-base.service.ts +81 -0
- package/libs/project-provider/src/services/filesystem-employee-code.service.d.ts +49 -0
- package/libs/project-provider/src/services/filesystem-employee-code.service.js +227 -0
- package/libs/project-provider/src/services/filesystem-employee-code.service.js.map +1 -0
- package/libs/project-provider/src/services/filesystem-employee-code.service.ts +220 -0
- package/libs/project-provider/src/services/filesystem-registry.service.d.ts +34 -0
- package/libs/project-provider/src/services/filesystem-registry.service.js +231 -0
- package/libs/project-provider/src/services/filesystem-registry.service.js.map +1 -0
- package/libs/project-provider/src/services/filesystem-registry.service.ts +271 -0
- package/libs/project-provider/src/services/http-inbox-client.service.d.ts +7 -0
- package/libs/project-provider/src/services/http-inbox-client.service.js +66 -0
- package/libs/project-provider/src/services/http-inbox-client.service.js.map +1 -0
- package/libs/project-provider/src/services/http-inbox-client.service.ts +29 -0
- package/libs/project-provider/src/services/noop-inbox-client.service.d.ts +4 -0
- package/libs/project-provider/src/services/noop-inbox-client.service.js +32 -0
- package/libs/project-provider/src/services/noop-inbox-client.service.js.map +1 -0
- package/libs/project-provider/src/services/noop-inbox-client.service.ts +9 -0
- package/libs/project-provider/src/types/messaging.types.d.ts +49 -0
- package/libs/project-provider/src/types/messaging.types.js +11 -0
- package/libs/project-provider/src/types/messaging.types.js.map +1 -0
- package/libs/project-provider/src/types/messaging.types.ts +59 -0
- package/libs/project-provider/src/types/project.types.d.ts +44 -0
- package/libs/project-provider/src/types/project.types.js +3 -0
- package/libs/project-provider/src/types/project.types.js.map +1 -0
- package/libs/project-provider/src/types/project.types.ts +58 -0
- package/libs/project-provider/tsconfig.lib.json +9 -0
- package/nest-cli.json +114 -0
- package/package.json +206 -0
- package/scripts/agentmanager.mjs +1126 -0
- package/scripts/monolith-daemon-run.mjs +77 -0
- package/scripts/monolith-daemon-run.sh +27 -0
- package/tsconfig.json +35 -0
package/README.md
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# AgentManager Monorepo
|
|
2
|
+
|
|
3
|
+
A NestJS monorepo for building and managing AI Employees written
|
|
4
|
+
in [Agentlang](https://github.com/agentlang-ai/agentlang). It contains multiple applications and shared libraries.
|
|
5
|
+
|
|
6
|
+
## Applications
|
|
7
|
+
|
|
8
|
+
### [AgentManager](apps/agentmanager/)
|
|
9
|
+
|
|
10
|
+
REST API for managing a swarm of AI Employees. Handles employee registration, source code management, deployment tracking, inter-employee messaging (inboxes), and LLM-powered semantic discovery of employees by capability.
|
|
11
|
+
|
|
12
|
+
**Port:** 3001
|
|
13
|
+
|
|
14
|
+
### [AgentCraft](apps/agentcraft/)
|
|
15
|
+
|
|
16
|
+
LLM-powered code generation service that produces complete Agentlang applications from natural-language descriptions. Supports interactive sessions, spec-driven resolver generation, autonomous fire-and-forget runs, and a continuous signal-driven architect loop.
|
|
17
|
+
|
|
18
|
+
**Port:** 3002
|
|
19
|
+
|
|
20
|
+
### [Knowledge](apps/knowledge/)
|
|
21
|
+
|
|
22
|
+
Knowledge management API with document ingestion, graph visualization, and AI recommendations. Features topic management, document lifecycle, vector search (LanceDB), graph queries (Neo4j), and sync connections to external providers.
|
|
23
|
+
|
|
24
|
+
**Port:** 3003
|
|
25
|
+
|
|
26
|
+
### [Fabric](apps/fabric/)
|
|
27
|
+
|
|
28
|
+
Deployment orchestration service with multi-provider support (Docker, EKS, PM2). Manages environments, versions, runtime deployments, and deployment events with database persistence.
|
|
29
|
+
|
|
30
|
+
**Port:** 3004
|
|
31
|
+
|
|
32
|
+
### [Monolith](apps/monolith/)
|
|
33
|
+
|
|
34
|
+
Unified application that combines multiple services into a single deployable unit for local development and testing.
|
|
35
|
+
|
|
36
|
+
**Port:** 3005
|
|
37
|
+
|
|
38
|
+
## Shared Libraries
|
|
39
|
+
|
|
40
|
+
| Library | Path | Description |
|
|
41
|
+
| ----------------------- | ------------------------ | ------------------------------------------------------------------------------------ |
|
|
42
|
+
| `@app/project-provider` | `libs/project-provider/` | Filesystem-backed registry, employee code provider, knowledge base, and inbox client |
|
|
43
|
+
| `@app/agentcraft` | `libs/agentcraft/` | Core generation engine — LLM pipeline, prompts, planner, executor, architect loop |
|
|
44
|
+
| `@app/auth` | `libs/auth/` | Authentication and authorization shared module |
|
|
45
|
+
| `@app/common` | `libs/common/` | Shared database infrastructure, filters, interceptors, and common utilities |
|
|
46
|
+
|
|
47
|
+
## Tech Stack
|
|
48
|
+
|
|
49
|
+
- **NestJS 11** with **Fastify**
|
|
50
|
+
- **TypeScript** compiled with **SWC**
|
|
51
|
+
- **Zod** + `nestjs-zod` for validation
|
|
52
|
+
- **Anthropic Claude** / **OpenAI** for LLM features
|
|
53
|
+
- **Agentlang** runtime (`agentlang` npm package)
|
|
54
|
+
- **Prisma** for database ORM
|
|
55
|
+
- **LanceDB** for vector storage
|
|
56
|
+
- **Neo4j** for graph database
|
|
57
|
+
- **AWS SDK** for S3 and Cognito
|
|
58
|
+
- Filesystem-backed storage (no database required for some apps)
|
|
59
|
+
|
|
60
|
+
## Getting Started
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Install dependencies
|
|
64
|
+
npm install
|
|
65
|
+
|
|
66
|
+
# Start AgentManager (port 3001)
|
|
67
|
+
npm run start:dev
|
|
68
|
+
|
|
69
|
+
# Start AgentCraft (port 3002)
|
|
70
|
+
npm run start:craft:dev
|
|
71
|
+
|
|
72
|
+
# Start Knowledge (port 3003)
|
|
73
|
+
npm run start:knowledge:dev
|
|
74
|
+
|
|
75
|
+
# Build all applications
|
|
76
|
+
npm run build
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Project Structure
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
agentmanager-mono/
|
|
83
|
+
├── apps/
|
|
84
|
+
│ ├── agentmanager/ # Swarm management API
|
|
85
|
+
│ ├── agentcraft/ # LLM code generation service
|
|
86
|
+
│ ├── knowledge/ # Knowledge management with ingestion
|
|
87
|
+
│ ├── fabric/ # Deployment orchestration
|
|
88
|
+
│ └── monolith/ # Unified application
|
|
89
|
+
├── libs/
|
|
90
|
+
│ ├── project-provider/ # Registry, code, inbox providers
|
|
91
|
+
│ ├── agentcraft/ # Generation engine & prompts
|
|
92
|
+
│ ├── auth/ # Authentication module
|
|
93
|
+
│ └── common/ # Shared database & utilities
|
|
94
|
+
├── nest-cli.json # NestJS monorepo configuration
|
|
95
|
+
├── package.json
|
|
96
|
+
└── tsconfig.json
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Scripts
|
|
100
|
+
|
|
101
|
+
| Script | Description |
|
|
102
|
+
| ----------------------------- | ------------------------------------ |
|
|
103
|
+
| `npm run start:dev` | Start AgentManager in watch mode |
|
|
104
|
+
| `npm run start:craft:dev` | Start AgentCraft in watch mode |
|
|
105
|
+
| `npm run start:knowledge:dev` | Start Knowledge app in watch mode |
|
|
106
|
+
| `npm run build` | Build all applications and libraries |
|
|
107
|
+
| `npm run build:knowledge` | Build Knowledge app only |
|
|
108
|
+
| `npm test` | Run unit tests |
|
|
109
|
+
| `npm run test:knowledge` | Run Knowledge app tests |
|
|
110
|
+
| `npm run test:e2e` | Run end-to-end tests |
|
|
111
|
+
| `npm run test:cov` | Run tests with coverage |
|
|
112
|
+
| `npm run lint` | Lint and auto-fix |
|
|
113
|
+
| `npm run lint:check` | Check linting without fixing |
|
|
114
|
+
| `npm run format` | Format with Prettier |
|
|
115
|
+
| `npm run format:check` | Check formatting |
|
|
116
|
+
| `npm run typecheck` | TypeScript type checking |
|
|
117
|
+
|
|
118
|
+
## Development Notes
|
|
119
|
+
|
|
120
|
+
- The `docs/` folder is for local documentation only and is ignored by git
|
|
121
|
+
- Always run `npm run format` before committing
|
|
122
|
+
- The codebase has pre-existing lint errors; focus on not introducing new ones
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# AgentCraft
|
|
2
|
+
|
|
3
|
+
An LLM-powered code generation service that automates the creation of applications written in the [Agentlang](https://github.com/niclaswebb/agentlang) language. AgentCraft takes a natural-language description of what you want and produces complete Agentlang projects — data models, workflows, agents, and all supporting files.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
AgentCraft offers multiple modes of operation:
|
|
8
|
+
|
|
9
|
+
- **Sessions** — Interactive, step-by-step project generation. The LLM proposes ideas and actions; you review and guide the process via SSE-streamed events.
|
|
10
|
+
- **Resolver** — Generate an Agentlang app from an OpenAPI/external spec URL. Supports browsing and installing from the Agentlang registry.
|
|
11
|
+
- **Autonomous** — Fire-and-forget generation. Supply a message, project name, and knowledge base path; AgentCraft runs a full pipeline and produces the output directory.
|
|
12
|
+
- **Architect** — A continuous signal-processing loop. Ingest signals (requirements changes, bug reports, etc.) for a project, and the Architect autonomously plans and generates code in response.
|
|
13
|
+
|
|
14
|
+
## Architecture
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
apps/agentcraft/src/
|
|
18
|
+
├── config/ # App configuration (env vars)
|
|
19
|
+
├── common/ # Shared exception filters
|
|
20
|
+
├── sessions/ # Interactive project-generation sessions
|
|
21
|
+
├── resolver/ # Spec-driven generation + registry integration
|
|
22
|
+
├── autonomous/ # Fire-and-forget full pipeline runs
|
|
23
|
+
├── architect/ # Signal-driven continuous generation loop
|
|
24
|
+
└── main.ts # Fastify bootstrap (port 3002)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Shared Libraries
|
|
28
|
+
|
|
29
|
+
- **`@app/agentcraft`** — Core generation engine containing the LLM pipeline, prompts, and services:
|
|
30
|
+
- **Pipeline**: planning, decomposition, codegen, assembly phases
|
|
31
|
+
- **Prompts**: system prompts for each generation phase, Agentlang semantics guide, example provider
|
|
32
|
+
- **Services**: planner, decomposer, design/requirements/UI-blueprint generators, executor, output parser/writer
|
|
33
|
+
- **Architect loop**: signal queue with debouncing, phase retries, and sub-app generation
|
|
34
|
+
- **Autonomous runner**: end-to-end pipeline orchestration with knowledge-base loading
|
|
35
|
+
- **LLM adapters**: Anthropic Claude and OpenAI support
|
|
36
|
+
- **`@app/project-provider`** — Filesystem-backed registry, employee code provider, knowledge base, and inbox client
|
|
37
|
+
|
|
38
|
+
## API Endpoints
|
|
39
|
+
|
|
40
|
+
All routes are prefixed with `/api`. CORS is enabled.
|
|
41
|
+
|
|
42
|
+
### Sessions (Interactive Generation)
|
|
43
|
+
|
|
44
|
+
| Method | Path | Description |
|
|
45
|
+
|--------|------|-------------|
|
|
46
|
+
| POST | `/api/projects` | Create a new generation session |
|
|
47
|
+
| GET | `/api/projects/:id/status` | Get session status |
|
|
48
|
+
| GET | `/api/projects/:id/output` | Get generated output |
|
|
49
|
+
| GET | `/api/projects/:id/steps` | Get pipeline steps |
|
|
50
|
+
| POST | `/api/projects/:id/idea` | Submit an idea for the LLM to work with |
|
|
51
|
+
| POST | `/api/projects/:id/action` | Submit an action decision |
|
|
52
|
+
| GET | `/api/projects/:id/files` | List generated files |
|
|
53
|
+
| GET | `/api/projects/:id/files/*` | Get a specific generated file |
|
|
54
|
+
| SSE | `/api/projects/:id/stream` | Real-time event stream |
|
|
55
|
+
|
|
56
|
+
### Resolver (Spec-Driven Generation)
|
|
57
|
+
|
|
58
|
+
| Method | Path | Description |
|
|
59
|
+
|--------|------|-------------|
|
|
60
|
+
| POST | `/api/resolvers` | Create a resolver session from a spec URL |
|
|
61
|
+
| GET | `/api/resolvers/:id/status` | Get resolver status |
|
|
62
|
+
| GET | `/api/resolvers/:id/output` | Get generated output |
|
|
63
|
+
| POST | `/api/resolvers/:id/action` | Submit an action decision |
|
|
64
|
+
| GET | `/api/resolvers/registry/search?q=...` | Search the Agentlang registry |
|
|
65
|
+
| POST | `/api/resolvers/registry/install` | Install a project from the registry |
|
|
66
|
+
| SSE | `/api/resolvers/:id/stream` | Real-time event stream |
|
|
67
|
+
|
|
68
|
+
### Autonomous (Fire-and-Forget)
|
|
69
|
+
|
|
70
|
+
| Method | Path | Description |
|
|
71
|
+
|--------|------|-------------|
|
|
72
|
+
| POST | `/api/autonomous` | Start an autonomous generation run |
|
|
73
|
+
| GET | `/api/autonomous/:runId/status` | Poll run status |
|
|
74
|
+
| POST | `/api/autonomous/watch` | Start watching a KB directory for changes |
|
|
75
|
+
| GET | `/api/autonomous/watch` | Get current watch status |
|
|
76
|
+
| DELETE | `/api/autonomous/watch` | Stop watching |
|
|
77
|
+
|
|
78
|
+
### Architect (Signal-Driven Loop)
|
|
79
|
+
|
|
80
|
+
| Method | Path | Description |
|
|
81
|
+
|--------|------|-------------|
|
|
82
|
+
| POST | `/api/projects/:projectId/architect` | Ingest a signal (requirement, bug, etc.) |
|
|
83
|
+
| GET | `/api/projects/:projectId/architect/status` | Get architect loop status |
|
|
84
|
+
| GET | `/api/projects/:projectId/architect/history` | Get processed signal history |
|
|
85
|
+
| SSE | `/api/projects/:projectId/architect/stream` | Real-time event stream |
|
|
86
|
+
|
|
87
|
+
## Configuration
|
|
88
|
+
|
|
89
|
+
All configuration is via environment variables:
|
|
90
|
+
|
|
91
|
+
| Variable | Default | Description |
|
|
92
|
+
|----------|---------|-------------|
|
|
93
|
+
| `CRAFT_PORT` | `3002` | Server port |
|
|
94
|
+
| `CRAFT_OUTPUT_DIR` | `.` | Base directory for generated project output |
|
|
95
|
+
| `REGISTRY_PATH` | `./registry` | Path to the Agentlang registry |
|
|
96
|
+
| `INBOXES_PATH` | `./inboxes` | Path for inbox message storage |
|
|
97
|
+
|
|
98
|
+
### LLM Configuration
|
|
99
|
+
|
|
100
|
+
| Variable | Default | Description |
|
|
101
|
+
|----------|---------|-------------|
|
|
102
|
+
| `CRAFT_PROVIDER` | `anthropic` | LLM provider (`anthropic` or `openai`) |
|
|
103
|
+
| `CRAFT_MODEL` | `claude-sonnet-4-6` / `gpt-4o` | Model to use |
|
|
104
|
+
| `CRAFT_API_KEY` | — | API key (falls back to `ANTHROPIC_API_KEY` or `OPENAI_API_KEY`) |
|
|
105
|
+
|
|
106
|
+
### Architect Tuning
|
|
107
|
+
|
|
108
|
+
| Variable | Default | Description |
|
|
109
|
+
|----------|---------|-------------|
|
|
110
|
+
| `ARCHITECT_DEBOUNCE_MS` | `5000` | Debounce window before processing queued signals |
|
|
111
|
+
| `ARCHITECT_PHASE_RETRIES` | `2` | Max retries per pipeline phase |
|
|
112
|
+
| `ARCHITECT_SUBAPP_RETRIES` | `2` | Max retries for sub-app generation |
|
|
113
|
+
|
|
114
|
+
## Generation Pipeline
|
|
115
|
+
|
|
116
|
+
AgentCraft uses a multi-phase LLM pipeline to produce Agentlang projects:
|
|
117
|
+
|
|
118
|
+
1. **Planning** — Understand the user's requirements and produce a high-level plan
|
|
119
|
+
2. **Decomposition** — Break the plan into sub-apps / modules
|
|
120
|
+
3. **Design generation** — Produce data models, workflows, and agent definitions
|
|
121
|
+
4. **Code generation** — Generate Agentlang source files (`.al` modules, `package.al`, `config.edn`)
|
|
122
|
+
5. **Assembly** — Combine outputs, validate, and write to the output directory
|
|
123
|
+
|
|
124
|
+
Each phase has dedicated prompts that embed the Agentlang semantics guide and reference examples from the registry.
|
|
125
|
+
|
|
126
|
+
## Tech Stack
|
|
127
|
+
|
|
128
|
+
- **Runtime**: Node.js + NestJS with Fastify
|
|
129
|
+
- **Validation**: Zod via `nestjs-zod`
|
|
130
|
+
- **Build**: SWC (fast TypeScript compilation)
|
|
131
|
+
- **LLM**: Anthropic Claude (primary) / OpenAI (supported)
|
|
132
|
+
- **Streaming**: Server-Sent Events (SSE) for real-time progress
|
|
133
|
+
- **Storage**: Filesystem-backed (no database required)
|
|
134
|
+
|
|
135
|
+
## Getting Started
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# From the monorepo root
|
|
139
|
+
npm install
|
|
140
|
+
|
|
141
|
+
# Set your LLM API key
|
|
142
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
143
|
+
|
|
144
|
+
# Start AgentCraft
|
|
145
|
+
npm run start:craft
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
The server starts on port **3002** by default.
|
|
149
|
+
|
|
150
|
+
## Usage
|
|
151
|
+
|
|
152
|
+
### Triggering an Autonomous Workflow
|
|
153
|
+
|
|
154
|
+
Start a fire-and-forget generation run by POSTing to `/api/autonomous`:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
curl -X POST http://localhost:3002/api/autonomous \
|
|
158
|
+
-H "Content-Type: application/json" \
|
|
159
|
+
-d '{
|
|
160
|
+
"message": "Build a customer support ticketing system with agents that triage, assign, and resolve tickets",
|
|
161
|
+
"userId": "user-1",
|
|
162
|
+
"projectName": "support-desk",
|
|
163
|
+
"kbPath": "/path/to/your/knowledge-base"
|
|
164
|
+
}'
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Response (`202 Accepted`):
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"runId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
|
172
|
+
"projectName": "support-desk",
|
|
173
|
+
"status": "started"
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Poll for progress using the returned `runId`:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
curl http://localhost:3002/api/autonomous/a1b2c3d4-e5f6-7890-abcd-ef1234567890/status
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
#### Optional fields
|
|
184
|
+
|
|
185
|
+
| Field | Description |
|
|
186
|
+
|-------|-------------|
|
|
187
|
+
| `outputDir` | Override the output directory (defaults to `CRAFT_OUTPUT_DIR`) |
|
|
188
|
+
| `provider` | LLM provider override (`anthropic` or `openai`) |
|
|
189
|
+
| `model` | Model override (e.g. `claude-opus-4-6`) |
|
|
190
|
+
| `apiKey` | Per-request API key override |
|
|
191
|
+
| `inboxUrl` | URL for inbox message delivery |
|
|
192
|
+
|
|
193
|
+
### Watching a KB Directory
|
|
194
|
+
|
|
195
|
+
Start watching a root knowledge-base directory. When a subdirectory is added or its files change, AgentCraft automatically triggers an autonomous run for that project:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
curl -X POST http://localhost:3002/api/autonomous/watch \
|
|
199
|
+
-H "Content-Type: application/json" \
|
|
200
|
+
-d '{
|
|
201
|
+
"kbPath": "/path/to/kb-root",
|
|
202
|
+
"userId": "user-1"
|
|
203
|
+
}'
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Response (`202 Accepted`):
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"active": true,
|
|
211
|
+
"kbPath": "/path/to/kb-root",
|
|
212
|
+
"userId": "user-1",
|
|
213
|
+
"message": "Generate an Agentlang app from the knowledge base",
|
|
214
|
+
"pollIntervalMs": 3000,
|
|
215
|
+
"outputDir": ".",
|
|
216
|
+
"triggeredRuns": [],
|
|
217
|
+
"startedAt": "2026-03-13T12:00:00.000Z"
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Now drop a folder (e.g. `my-crm/`) with `.md` or `.txt` files into `/path/to/kb-root` — AgentCraft will detect it and kick off a generation run automatically. Check watch status or triggered runs:
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
# Watch status
|
|
225
|
+
curl http://localhost:3002/api/autonomous/watch
|
|
226
|
+
|
|
227
|
+
# Stop watching
|
|
228
|
+
curl -X DELETE http://localhost:3002/api/autonomous/watch
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
#### Optional fields
|
|
232
|
+
|
|
233
|
+
| Field | Description |
|
|
234
|
+
|-------|-------------|
|
|
235
|
+
| `message` | Custom prompt for generation (default: "Generate an Agentlang app from the knowledge base") |
|
|
236
|
+
| `pollIntervalMs` | How often to poll for changes in ms (default: `3000`, range: 500–60000) |
|
|
237
|
+
| `outputDir` | Override the output directory for generated projects |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Module, DynamicModule } from '@nestjs/common';
|
|
2
|
+
import { RouterModule } from '@nestjs/core';
|
|
3
|
+
import { SessionsModule } from './sessions/sessions.module';
|
|
4
|
+
import { ResolverModule } from './resolver/resolver.module';
|
|
5
|
+
import { AutonomousModule } from './autonomous/autonomous.module';
|
|
6
|
+
import { ArchitectModule } from './architect/architect.module';
|
|
7
|
+
import { HealthModule } from './health/health.module';
|
|
8
|
+
|
|
9
|
+
const AGENTCRAFT_FEATURE_MODULES = [
|
|
10
|
+
SessionsModule,
|
|
11
|
+
ResolverModule,
|
|
12
|
+
AutonomousModule,
|
|
13
|
+
ArchitectModule,
|
|
14
|
+
HealthModule,
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
@Module({})
|
|
18
|
+
export class AgentcraftCoreModule {
|
|
19
|
+
static forRoot(routePrefix?: string): DynamicModule {
|
|
20
|
+
const imports: any[] = [...AGENTCRAFT_FEATURE_MODULES];
|
|
21
|
+
if (routePrefix) {
|
|
22
|
+
imports.unshift(
|
|
23
|
+
RouterModule.register([
|
|
24
|
+
{
|
|
25
|
+
path: routePrefix,
|
|
26
|
+
children: AGENTCRAFT_FEATURE_MODULES.map((module) => ({
|
|
27
|
+
path: '',
|
|
28
|
+
module,
|
|
29
|
+
})),
|
|
30
|
+
},
|
|
31
|
+
]),
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return {
|
|
36
|
+
module: AgentcraftCoreModule,
|
|
37
|
+
imports,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Module } from '@nestjs/common';
|
|
2
|
+
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
|
|
3
|
+
import { ConfigModule } from '@nestjs/config';
|
|
4
|
+
import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler';
|
|
5
|
+
import { ProjectProviderModule } from '@app/project-provider';
|
|
6
|
+
import { AgentcraftModule } from '@app/agentcraft';
|
|
7
|
+
import configuration from './config/configuration';
|
|
8
|
+
import { DomainExceptionFilter, LoggingInterceptor } from '@app/common';
|
|
9
|
+
import { AgentcraftCoreModule } from './agentcraft-core.module';
|
|
10
|
+
|
|
11
|
+
@Module({
|
|
12
|
+
imports: [
|
|
13
|
+
ConfigModule.forRoot({
|
|
14
|
+
isGlobal: true,
|
|
15
|
+
load: [configuration],
|
|
16
|
+
}),
|
|
17
|
+
ThrottlerModule.forRoot([{ ttl: 60_000, limit: 100 }]),
|
|
18
|
+
ProjectProviderModule.forRootAsync(),
|
|
19
|
+
AgentcraftModule.forRootAsync(),
|
|
20
|
+
AgentcraftCoreModule.forRoot(),
|
|
21
|
+
],
|
|
22
|
+
providers: [
|
|
23
|
+
{ provide: APP_FILTER, useClass: DomainExceptionFilter },
|
|
24
|
+
{ provide: APP_GUARD, useClass: ThrottlerGuard },
|
|
25
|
+
{ provide: APP_INTERCEPTOR, useClass: LoggingInterceptor },
|
|
26
|
+
],
|
|
27
|
+
})
|
|
28
|
+
export class AppModule {}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Controller,
|
|
3
|
+
Get,
|
|
4
|
+
Post,
|
|
5
|
+
Param,
|
|
6
|
+
Body,
|
|
7
|
+
Sse,
|
|
8
|
+
HttpCode,
|
|
9
|
+
HttpStatus,
|
|
10
|
+
MessageEvent,
|
|
11
|
+
} from '@nestjs/common';
|
|
12
|
+
import { Observable, merge, from, interval, fromEvent } from 'rxjs';
|
|
13
|
+
import { map } from 'rxjs/operators';
|
|
14
|
+
import { ArchitectService } from './architect.service';
|
|
15
|
+
import { IngestSignalDto } from './dto/ingest-signal.dto';
|
|
16
|
+
import type { SSEEvent } from './interfaces/architect.interfaces';
|
|
17
|
+
|
|
18
|
+
@Controller('projects/:projectId/architect')
|
|
19
|
+
export class ArchitectController {
|
|
20
|
+
constructor(private readonly architectService: ArchitectService) {}
|
|
21
|
+
|
|
22
|
+
@Post()
|
|
23
|
+
@HttpCode(HttpStatus.ACCEPTED)
|
|
24
|
+
async ingestSignal(
|
|
25
|
+
@Param('projectId') projectId: string,
|
|
26
|
+
@Body() dto: IngestSignalDto,
|
|
27
|
+
) {
|
|
28
|
+
const signal = await this.architectService.ingest(projectId, {
|
|
29
|
+
summary: dto.summary,
|
|
30
|
+
kind: dto.kind,
|
|
31
|
+
priority: dto.priority,
|
|
32
|
+
data: dto.data,
|
|
33
|
+
userId: dto.userId,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
id: signal.id,
|
|
38
|
+
summary: signal.summary,
|
|
39
|
+
priority: signal.priority,
|
|
40
|
+
queued: true,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@Get('status')
|
|
45
|
+
getStatus(@Param('projectId') projectId: string) {
|
|
46
|
+
return this.architectService.getStatus(projectId);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@Sse('stream')
|
|
50
|
+
async stream(
|
|
51
|
+
@Param('projectId') projectId: string,
|
|
52
|
+
): Promise<Observable<MessageEvent>> {
|
|
53
|
+
const { buffer, emitter } =
|
|
54
|
+
await this.architectService.getStream(projectId);
|
|
55
|
+
|
|
56
|
+
return merge(
|
|
57
|
+
from(buffer).pipe(map((e) => ({ data: JSON.stringify(e) }))),
|
|
58
|
+
fromEvent<SSEEvent>(emitter, 'event').pipe(
|
|
59
|
+
map((e) => ({ data: JSON.stringify(e) })),
|
|
60
|
+
),
|
|
61
|
+
interval(15_000).pipe(map(() => ({ data: '' }))),
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@Get('history')
|
|
66
|
+
getHistory(@Param('projectId') projectId: string) {
|
|
67
|
+
return this.architectService.getHistory(projectId);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Module } from '@nestjs/common';
|
|
2
|
+
import { ArchitectController } from './architect.controller';
|
|
3
|
+
import { ArchitectService } from './architect.service';
|
|
4
|
+
import { ArchitectStore } from './architect.store';
|
|
5
|
+
|
|
6
|
+
@Module({
|
|
7
|
+
controllers: [ArchitectController],
|
|
8
|
+
providers: [ArchitectService, ArchitectStore],
|
|
9
|
+
exports: [ArchitectService],
|
|
10
|
+
})
|
|
11
|
+
export class ArchitectModule {}
|