@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
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
LlmRequest,
|
|
3
|
+
LlmResponse,
|
|
4
|
+
ChatRequest,
|
|
5
|
+
ChatResponse,
|
|
6
|
+
} from '../types/llm.types';
|
|
7
|
+
|
|
8
|
+
export interface LlmProvider {
|
|
9
|
+
complete(request: LlmRequest): Promise<LlmResponse>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface CraftLlmProvider {
|
|
13
|
+
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
14
|
+
chatStream(
|
|
15
|
+
request: ChatRequest,
|
|
16
|
+
onChunk: (text: string) => void,
|
|
17
|
+
): Promise<ChatResponse>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { kebabToPascalCase, pascalToKebabCase } from '../utils/text-utils';
|
|
2
|
+
|
|
3
|
+
export function buildAssemblySystemPrompt(
|
|
4
|
+
projectName: string,
|
|
5
|
+
baseAppDirName?: string,
|
|
6
|
+
): string {
|
|
7
|
+
const appName = kebabToPascalCase(projectName);
|
|
8
|
+
|
|
9
|
+
return `You are an Agentlang developer assembling the final application package.
|
|
10
|
+
|
|
11
|
+
## Task
|
|
12
|
+
|
|
13
|
+
Take the complete agentlang module code provided and produce a deployable application package consisting of four files:
|
|
14
|
+
|
|
15
|
+
1. **src/core.al** — the complete agentlang module (all entities, relationships, events, workflows, and agents merged into a single module named \`${appName}.core\`)
|
|
16
|
+
2. **config.al** — LLM configuration for the agents defined in the module
|
|
17
|
+
3. **package.json** — npm package manifest for the application
|
|
18
|
+
4. **README.md** — project overview with setup instructions and API usage examples
|
|
19
|
+
|
|
20
|
+
## Module Naming
|
|
21
|
+
|
|
22
|
+
The module in src/core.al MUST be declared as: \`module ${appName}.core\`
|
|
23
|
+
|
|
24
|
+
## Output Format
|
|
25
|
+
|
|
26
|
+
Output exactly four files (or more if resolver files are included), each preceded by a file header line:
|
|
27
|
+
|
|
28
|
+
--- FILE: src/core.al ---
|
|
29
|
+
|
|
30
|
+
<the complete agentlang module>
|
|
31
|
+
|
|
32
|
+
--- FILE: config.al ---
|
|
33
|
+
|
|
34
|
+
<LLM configuration>
|
|
35
|
+
|
|
36
|
+
--- FILE: package.json ---
|
|
37
|
+
|
|
38
|
+
<package manifest>
|
|
39
|
+
|
|
40
|
+
--- FILE: README.md ---
|
|
41
|
+
|
|
42
|
+
<documentation>
|
|
43
|
+
|
|
44
|
+
### config.al format
|
|
45
|
+
|
|
46
|
+
config.al is a JSON file (despite the .al extension). Generate a complete application configuration with service, store, and LLM settings:
|
|
47
|
+
|
|
48
|
+
\`\`\`json
|
|
49
|
+
{
|
|
50
|
+
"agentlang": {
|
|
51
|
+
"service": {
|
|
52
|
+
"port": "#js parseInt(process.env.SERVICE_PORT || '8080')"
|
|
53
|
+
},
|
|
54
|
+
"store": {
|
|
55
|
+
"type": "sqlite",
|
|
56
|
+
"dbname": "${projectName.toLowerCase().replace(/[^a-z0-9]/g, '_')}.db"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"agentlang.ai": [
|
|
60
|
+
{
|
|
61
|
+
"agentlang.ai/LLM": {
|
|
62
|
+
"name": "<llm_name_referenced_by_agents>",
|
|
63
|
+
"service": "anthropic",
|
|
64
|
+
"config": {
|
|
65
|
+
"model": "claude-sonnet-4-5",
|
|
66
|
+
"maxTokens": 21333,
|
|
67
|
+
"enableThinking": false,
|
|
68
|
+
"temperature": 0.7,
|
|
69
|
+
"budgetTokens": 8192,
|
|
70
|
+
"enablePromptCaching": true,
|
|
71
|
+
"stream": false,
|
|
72
|
+
"enableExtendedOutput": true
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
\`\`\`
|
|
79
|
+
|
|
80
|
+
Rules:
|
|
81
|
+
- **Always include \`agentlang.service\`** with a configurable port (default 8080 via env var)
|
|
82
|
+
- **Always include \`agentlang.store\`** with \`"type": "sqlite"\` and a \`"dbname"\` derived from the app name
|
|
83
|
+
- Include one LLM entry for each unique \`llm\` name referenced by agents in the module
|
|
84
|
+
- If agents don't specify an llm, include a default entry
|
|
85
|
+
|
|
86
|
+
### package.json format
|
|
87
|
+
|
|
88
|
+
\`\`\`json
|
|
89
|
+
{
|
|
90
|
+
"name": "${pascalToKebabCase(appName)}",
|
|
91
|
+
"version": "0.1.0",
|
|
92
|
+
"dependencies": {
|
|
93
|
+
"agentlang": "*"${baseAppDirName ? `,\n "${baseAppDirName}": "*"` : ''}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
\`\`\`
|
|
97
|
+
|
|
98
|
+
Rules:
|
|
99
|
+
- The \`name\` field must be kebab-case (e.g. "lead-router")
|
|
100
|
+
- Always include \`"agentlang": "*"\` as a dependency
|
|
101
|
+
- Do NOT include \`@anthropic-ai/sdk\` — it is provided by the agentlang runtime${baseAppDirName ? `\n- Always include \`"${baseAppDirName}": "*"\` — this app depends on the baseline data model` : ''}
|
|
102
|
+
|
|
103
|
+
If resolver files are provided in the context, include them as additional --- FILE: <path> --- sections.`;
|
|
104
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { PlanStepKind } from '../types/autonomous.types';
|
|
2
|
+
import { getBuiltInExamplesSection } from './examples-provider';
|
|
3
|
+
import { step6DataModelInstructions } from '../instructions/step6-data-model';
|
|
4
|
+
import { step7WorkflowsInstructions } from '../instructions/step7-workflows';
|
|
5
|
+
import { step8AgentsInstructions } from '../instructions/step8-agents';
|
|
6
|
+
import {
|
|
7
|
+
kebabToPascalCase,
|
|
8
|
+
extractModuleName,
|
|
9
|
+
extractEntityNames,
|
|
10
|
+
} from '../utils/text-utils';
|
|
11
|
+
|
|
12
|
+
function extractSyntaxReference(
|
|
13
|
+
instructions: string,
|
|
14
|
+
fromHeading: string,
|
|
15
|
+
): string {
|
|
16
|
+
const idx = instructions.indexOf(fromHeading);
|
|
17
|
+
if (idx === -1) return '';
|
|
18
|
+
return instructions
|
|
19
|
+
.slice(idx)
|
|
20
|
+
.replace(/<file>\??[^<]*<\/file>/g, '')
|
|
21
|
+
.trim();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const DATA_MODEL_SYNTAX = extractSyntaxReference(
|
|
25
|
+
step6DataModelInstructions,
|
|
26
|
+
'## Agentlang Data Model Syntax',
|
|
27
|
+
);
|
|
28
|
+
const WORKFLOW_SYNTAX = extractSyntaxReference(
|
|
29
|
+
step7WorkflowsInstructions,
|
|
30
|
+
'## Agentlang Event Syntax',
|
|
31
|
+
);
|
|
32
|
+
const AGENT_SYNTAX = extractSyntaxReference(
|
|
33
|
+
step8AgentsInstructions,
|
|
34
|
+
'## Agentlang Agent Syntax',
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const SYNTAX_MAP: Record<string, string> = {
|
|
38
|
+
'data-model': DATA_MODEL_SYNTAX,
|
|
39
|
+
workflows: WORKFLOW_SYNTAX,
|
|
40
|
+
agents: AGENT_SYNTAX,
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export function buildCodeGenSystemPrompt(
|
|
44
|
+
kind: PlanStepKind,
|
|
45
|
+
stepDescription: string,
|
|
46
|
+
previousCode: string,
|
|
47
|
+
kbContent: string,
|
|
48
|
+
projectName: string,
|
|
49
|
+
resolverContext?: string,
|
|
50
|
+
baselineDataModel?: string,
|
|
51
|
+
): string {
|
|
52
|
+
const syntaxRef = SYNTAX_MAP[kind] ?? '';
|
|
53
|
+
const examples = getBuiltInExamplesSection();
|
|
54
|
+
const appName = kebabToPascalCase(projectName);
|
|
55
|
+
const moduleName = `${appName}.core`;
|
|
56
|
+
|
|
57
|
+
const parts: string[] = [
|
|
58
|
+
`You are an Agentlang developer generating ${kind} code for an application.`,
|
|
59
|
+
'',
|
|
60
|
+
`## Module Naming`,
|
|
61
|
+
'',
|
|
62
|
+
`Your module MUST be declared as: \`module ${moduleName}\``,
|
|
63
|
+
`The convention is \`module <AppName>.<file_name>\` where the file is src/core.al. Do NOT use "DataModel", "Core", or any other suffix — the module name must match the filename (core).`,
|
|
64
|
+
'',
|
|
65
|
+
'## Task',
|
|
66
|
+
'',
|
|
67
|
+
stepDescription,
|
|
68
|
+
'',
|
|
69
|
+
'## Application Specification (from Knowledge Base)',
|
|
70
|
+
'',
|
|
71
|
+
kbContent,
|
|
72
|
+
'',
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
if (baselineDataModel) {
|
|
76
|
+
const baselineModuleName = extractModuleName(baselineDataModel);
|
|
77
|
+
const baselineEntityNames = extractEntityNames(baselineDataModel);
|
|
78
|
+
const entityList =
|
|
79
|
+
baselineEntityNames.length > 0
|
|
80
|
+
? baselineEntityNames.join(', ')
|
|
81
|
+
: '(see code below)';
|
|
82
|
+
|
|
83
|
+
const qualifiedExamples =
|
|
84
|
+
baselineModuleName && baselineEntityNames.length > 0
|
|
85
|
+
? baselineEntityNames
|
|
86
|
+
.map((e) => `\`${baselineModuleName}/${e}\``)
|
|
87
|
+
.join(', ')
|
|
88
|
+
: 'e.g. `BaselineModule/EntityName`';
|
|
89
|
+
|
|
90
|
+
parts.push(
|
|
91
|
+
'## Baseline Data Model (Shared Entities) — DO NOT COPY',
|
|
92
|
+
'',
|
|
93
|
+
`A separate baseline module provides these shared entities: ${entityList}`,
|
|
94
|
+
'',
|
|
95
|
+
`**CRITICAL RULES:**`,
|
|
96
|
+
`- Do NOT redefine, copy, or re-declare ANY of these entities: ${entityList}`,
|
|
97
|
+
`- Do NOT use the baseline module name (\`${baselineModuleName ?? 'baseline module'}\`) as your module name — your module MUST have its own unique name`,
|
|
98
|
+
`- Reference baseline entities using fully-qualified names: ${qualifiedExamples}`,
|
|
99
|
+
`- Use \`@ref()\` with fully-qualified names for relationships, e.g. \`leadId @ref(${baselineModuleName ?? 'Baseline'}/${baselineEntityNames[0] ?? 'Entity'})\``,
|
|
100
|
+
`- You MAY define your own local entities specific to this sub-app`,
|
|
101
|
+
'',
|
|
102
|
+
'Baseline code (for reference only — do NOT include any of this in your output):',
|
|
103
|
+
'',
|
|
104
|
+
'```agentlang',
|
|
105
|
+
baselineDataModel,
|
|
106
|
+
'```',
|
|
107
|
+
'',
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (previousCode) {
|
|
112
|
+
parts.push(
|
|
113
|
+
'## Previously Generated Code',
|
|
114
|
+
'',
|
|
115
|
+
'The following code has already been generated and validated. Build on it — do NOT redefine entities, events, workflows, or agents that already exist below.',
|
|
116
|
+
'',
|
|
117
|
+
'```agentlang',
|
|
118
|
+
previousCode,
|
|
119
|
+
'```',
|
|
120
|
+
'',
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (resolverContext) {
|
|
125
|
+
parts.push(
|
|
126
|
+
'## Resolver Context',
|
|
127
|
+
'',
|
|
128
|
+
resolverContext,
|
|
129
|
+
'',
|
|
130
|
+
'If resolver metadata is shown above:',
|
|
131
|
+
'- Do NOT redefine resolver entities (they exist in the resolver module)',
|
|
132
|
+
'- Do NOT write `resolver` blocks',
|
|
133
|
+
'- You MAY reference resolver entities using fully-qualified names (e.g. `Resolvers.Petstore/Pet`)',
|
|
134
|
+
'',
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (syntaxRef) {
|
|
139
|
+
parts.push(syntaxRef, '');
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (examples) {
|
|
143
|
+
parts.push(examples, '');
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
parts.push(
|
|
147
|
+
'## CRITICAL: Output Requirements',
|
|
148
|
+
'',
|
|
149
|
+
'Your response must contain ONLY valid agentlang code. Do not include any explanatory text, markdown formatting, or code fences.',
|
|
150
|
+
'The entire response must be parseable agentlang code starting with `module`.',
|
|
151
|
+
'',
|
|
152
|
+
'Your output is validated by the agentlang parser. If validation fails, you will receive the parse errors and must correct the code.',
|
|
153
|
+
'',
|
|
154
|
+
kind === 'data-model'
|
|
155
|
+
? baselineDataModel
|
|
156
|
+
? 'Output ONLY your own module declaration and your own LOCAL entity and relationship definitions. Do NOT include any entity from the baseline — those already exist in a separate file.'
|
|
157
|
+
: 'Output the complete module with all entity and relationship definitions.'
|
|
158
|
+
: 'Output ONLY the module declaration line and the new definitions. Do NOT repeat entities, relationships, events, workflows, or agents from the previously generated code — those will be merged automatically.',
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
return parts.join('\n');
|
|
162
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const DECOMPOSITION_SYSTEM_PROMPT = `You are an application architect. Given a knowledge base describing an application, decompose it into:
|
|
2
|
+
|
|
3
|
+
1. A **baseline data model** — the shared entity definitions used across the entire application (entities, attributes, relationships only — no workflows, no agents, no business logic)
|
|
4
|
+
2. A list of **sub-apps** — independent functional areas that each become a complete application with their own workflows and agents
|
|
5
|
+
|
|
6
|
+
## Rules
|
|
7
|
+
|
|
8
|
+
- The baseline data model should contain ALL entities that are shared across sub-apps or that represent core domain concepts. Be comprehensive — it is better to include too many entities than too few.
|
|
9
|
+
- Each sub-app should be a coherent functional area (e.g. "adoption-management", "inventory-tracking", "reporting").
|
|
10
|
+
- Sub-apps will each get a copy of the baseline data model and should reference those entities rather than redefining them. Each sub-app may also define its own local entities specific to its domain.
|
|
11
|
+
- Use PascalCase for sub-app names (e.g. "AdoptionManager", "InventoryTracker"). Choose concise, descriptive names — do NOT prefix with the project name.
|
|
12
|
+
- The sub-app description should be detailed enough that a developer can build the sub-app from it — include the specific workflows, agents, and business rules relevant to that sub-app.
|
|
13
|
+
- Aim for 2-5 sub-apps. Don't over-decompose — each sub-app should have meaningful functionality.
|
|
14
|
+
|
|
15
|
+
## Output format
|
|
16
|
+
|
|
17
|
+
Respond with ONLY a JSON object (no markdown fences, no explanatory text):
|
|
18
|
+
|
|
19
|
+
{
|
|
20
|
+
"projectName": "pet-store",
|
|
21
|
+
"baselineDescription": "Generate entity definitions for the entire pet-store application: Pet (id, name, species, breed, age, status with values available/adopted/pending), Owner (id, name, email, phone, address), Adoption (id, petId referencing Pet, ownerId referencing Owner, applicationDate, status with values pending/approved/rejected, notes), ...",
|
|
22
|
+
"subApps": [
|
|
23
|
+
{
|
|
24
|
+
"name": "AdoptionManager",
|
|
25
|
+
"description": "Handles the pet adoption workflow. Adopters browse available pets and submit adoption applications. Staff review applications, check eligibility, and approve or reject them. When approved, the pet status changes to adopted and is linked to the owner. Includes: adoption application workflow, eligibility checking, approval/rejection process, adoption history tracking."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "InventoryTracker",
|
|
29
|
+
"description": "Manages the pet store inventory and supplies. Track food, medicine, toys, and other supplies. Generate low-stock alerts. Record purchases and usage. Includes: inventory CRUD, stock level monitoring, reorder alerts, purchase recording."
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}`;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
|
|
4
|
+
// docs/examples/ is two levels up from dist/prompts/ (or src/prompts/)
|
|
5
|
+
const EXAMPLES_DIR = path.resolve(__dirname, '..', '..', 'docs', 'examples');
|
|
6
|
+
|
|
7
|
+
export interface BuiltInExample {
|
|
8
|
+
filename: string;
|
|
9
|
+
title: string;
|
|
10
|
+
content: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let cachedExamples: BuiltInExample[] | null = null;
|
|
14
|
+
|
|
15
|
+
function loadExamples(): BuiltInExample[] {
|
|
16
|
+
if (cachedExamples) return cachedExamples;
|
|
17
|
+
|
|
18
|
+
cachedExamples = [];
|
|
19
|
+
let files: string[];
|
|
20
|
+
try {
|
|
21
|
+
files = fs.readdirSync(EXAMPLES_DIR);
|
|
22
|
+
} catch {
|
|
23
|
+
return cachedExamples;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
for (const file of files) {
|
|
27
|
+
if (!file.endsWith('.al')) continue;
|
|
28
|
+
const filePath = path.join(EXAMPLES_DIR, file);
|
|
29
|
+
try {
|
|
30
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
31
|
+
// Extract title from first comment line: "// Blog Application — ..."
|
|
32
|
+
const firstLine = content.split('\n')[0] ?? '';
|
|
33
|
+
const title = firstLine.replace(/^\/\/\s*/, '').trim() || file;
|
|
34
|
+
cachedExamples.push({ filename: file, title, content });
|
|
35
|
+
} catch {
|
|
36
|
+
// Skip unreadable files
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return cachedExamples;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Returns a formatted reference section containing all built-in Agentlang
|
|
45
|
+
* example applications. Intended to be appended to system prompts for
|
|
46
|
+
* code generation steps (6-9).
|
|
47
|
+
*/
|
|
48
|
+
export function getBuiltInExamplesSection(): string {
|
|
49
|
+
const examples = loadExamples();
|
|
50
|
+
if (examples.length === 0) return '';
|
|
51
|
+
|
|
52
|
+
const sections = examples.map(
|
|
53
|
+
(ex) => `### ${ex.title}\n\n\`\`\`agentlang\n${ex.content}\`\`\``,
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
return `
|
|
57
|
+
|
|
58
|
+
## Reference: Built-in Agentlang Examples
|
|
59
|
+
|
|
60
|
+
The following are complete, working Agentlang applications. Study these carefully and follow their patterns when generating code. These examples demonstrate correct syntax for entities, relationships, workflows, events, agents, queries, and more.
|
|
61
|
+
|
|
62
|
+
${sections.join('\n\n')}`;
|
|
63
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export const PLANNING_SYSTEM_PROMPT = `You are an Agentlang application architect. Given a knowledge base describing an application, produce a step-by-step generation plan as a JSON object.
|
|
2
|
+
|
|
3
|
+
## Available step kinds
|
|
4
|
+
|
|
5
|
+
- "data-model": Generate entity definitions with attributes, relationships, and type annotations
|
|
6
|
+
- "workflows": Generate event and workflow definitions for custom business logic
|
|
7
|
+
- "agents": Generate AI agent definitions with tools for natural-language interaction
|
|
8
|
+
- "resolver": Generate or reference a resolver for external API integration
|
|
9
|
+
- "assembly": Combine all generated code into the final deployable application files
|
|
10
|
+
|
|
11
|
+
## Rules
|
|
12
|
+
|
|
13
|
+
1. "data-model" should be the first code-generation step
|
|
14
|
+
2. "workflows" depends on "data-model"
|
|
15
|
+
3. "agents" depends on "workflows" (or "data-model" if there are no custom workflows)
|
|
16
|
+
4. "assembly" is always the LAST step and depends on all other steps
|
|
17
|
+
5. Only include "resolver" steps if the KB explicitly describes how to generate or use a resolver (e.g. an API spec URL, endpoint descriptions, or an existing resolver repo). If the KB has no resolver information, do NOT add resolver steps — even if you think one might be useful.
|
|
18
|
+
6. For resolver steps with action "generate", include specSource (URL or file path to the API spec) and a description. For action "use-existing", include existingResolverRepo.
|
|
19
|
+
7. Each step gets a unique id: "step-1", "step-2", etc.
|
|
20
|
+
8. dependsOn lists the ids of prerequisite steps
|
|
21
|
+
9. The description for each step should be specific and detailed — describe exactly what entities, workflows, or agents to generate based on the KB content
|
|
22
|
+
|
|
23
|
+
## Output format
|
|
24
|
+
|
|
25
|
+
Respond with ONLY a JSON object (no markdown fences, no explanatory text):
|
|
26
|
+
|
|
27
|
+
{
|
|
28
|
+
"projectName": "AppName",
|
|
29
|
+
"summary": "One-paragraph overview of the application",
|
|
30
|
+
"steps": [
|
|
31
|
+
{
|
|
32
|
+
"id": "step-1",
|
|
33
|
+
"kind": "data-model",
|
|
34
|
+
"title": "Define core entities",
|
|
35
|
+
"description": "Detailed instructions...",
|
|
36
|
+
"dependsOn": []
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "step-2",
|
|
40
|
+
"kind": "resolver",
|
|
41
|
+
"title": "Generate Petstore resolver",
|
|
42
|
+
"description": "...",
|
|
43
|
+
"dependsOn": ["step-1"],
|
|
44
|
+
"resolver": {
|
|
45
|
+
"name": "petstore",
|
|
46
|
+
"description": "Petstore API integration",
|
|
47
|
+
"specSource": "https://petstore.swagger.io/v2/swagger.json",
|
|
48
|
+
"action": "generate"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}`;
|