adonis-ai-kit 0.0.0-stage → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/LICENSE +21 -0
  3. package/README.md +397 -2
  4. package/dist/commands/ai_test.d.ts +12 -0
  5. package/dist/commands/ai_test.d.ts.map +1 -0
  6. package/dist/commands/ai_test.js +98 -0
  7. package/dist/commands/ai_test.js.map +1 -0
  8. package/dist/commands/main.d.ts +14 -0
  9. package/dist/commands/main.d.ts.map +1 -0
  10. package/dist/commands/main.js +31 -0
  11. package/dist/commands/main.js.map +1 -0
  12. package/dist/commands/make_agent.d.ts +13 -0
  13. package/dist/commands/make_agent.d.ts.map +1 -0
  14. package/dist/commands/make_agent.js +116 -0
  15. package/dist/commands/make_agent.js.map +1 -0
  16. package/dist/providers/ai_provider.d.ts +23 -0
  17. package/dist/providers/ai_provider.d.ts.map +1 -0
  18. package/dist/providers/ai_provider.js +34 -0
  19. package/dist/providers/ai_provider.js.map +1 -0
  20. package/dist/services/main.d.ts +4 -0
  21. package/dist/services/main.d.ts.map +1 -0
  22. package/dist/services/main.js +7 -0
  23. package/dist/services/main.js.map +1 -0
  24. package/dist/src/acp/acp_agents.d.ts +89 -0
  25. package/dist/src/acp/acp_agents.d.ts.map +1 -0
  26. package/dist/src/acp/acp_agents.js +367 -0
  27. package/dist/src/acp/acp_agents.js.map +1 -0
  28. package/dist/src/acp/index.d.ts +4 -0
  29. package/dist/src/acp/index.d.ts.map +1 -0
  30. package/dist/src/acp/index.js +4 -0
  31. package/dist/src/acp/index.js.map +1 -0
  32. package/dist/src/acp/provider.d.ts +74 -0
  33. package/dist/src/acp/provider.d.ts.map +1 -0
  34. package/dist/src/acp/provider.js +276 -0
  35. package/dist/src/acp/provider.js.map +1 -0
  36. package/dist/src/acp/types.d.ts +128 -0
  37. package/dist/src/acp/types.d.ts.map +1 -0
  38. package/dist/src/acp/types.js +2 -0
  39. package/dist/src/acp/types.js.map +1 -0
  40. package/dist/src/agents/agent_runner.d.ts +60 -0
  41. package/dist/src/agents/agent_runner.d.ts.map +1 -0
  42. package/dist/src/agents/agent_runner.js +134 -0
  43. package/dist/src/agents/agent_runner.js.map +1 -0
  44. package/dist/src/agents/index.d.ts +4 -0
  45. package/dist/src/agents/index.d.ts.map +1 -0
  46. package/dist/src/agents/index.js +4 -0
  47. package/dist/src/agents/index.js.map +1 -0
  48. package/dist/src/agents/loader.d.ts +56 -0
  49. package/dist/src/agents/loader.d.ts.map +1 -0
  50. package/dist/src/agents/loader.js +184 -0
  51. package/dist/src/agents/loader.js.map +1 -0
  52. package/dist/src/agents/manifest.d.ts +61 -0
  53. package/dist/src/agents/manifest.d.ts.map +1 -0
  54. package/dist/src/agents/manifest.js +35 -0
  55. package/dist/src/agents/manifest.js.map +1 -0
  56. package/dist/src/ai_manager.d.ts +140 -0
  57. package/dist/src/ai_manager.d.ts.map +1 -0
  58. package/dist/src/ai_manager.js +814 -0
  59. package/dist/src/ai_manager.js.map +1 -0
  60. package/dist/src/budget/budget_allocator.d.ts +37 -0
  61. package/dist/src/budget/budget_allocator.d.ts.map +1 -0
  62. package/dist/src/budget/budget_allocator.js +98 -0
  63. package/dist/src/budget/budget_allocator.js.map +1 -0
  64. package/dist/src/budget/budget_enforcer.d.ts +70 -0
  65. package/dist/src/budget/budget_enforcer.d.ts.map +1 -0
  66. package/dist/src/budget/budget_enforcer.js +195 -0
  67. package/dist/src/budget/budget_enforcer.js.map +1 -0
  68. package/dist/src/budget/cost_tracker.d.ts +71 -0
  69. package/dist/src/budget/cost_tracker.d.ts.map +1 -0
  70. package/dist/src/budget/cost_tracker.js +199 -0
  71. package/dist/src/budget/cost_tracker.js.map +1 -0
  72. package/dist/src/budget/index.d.ts +6 -0
  73. package/dist/src/budget/index.d.ts.map +1 -0
  74. package/dist/src/budget/index.js +6 -0
  75. package/dist/src/budget/index.js.map +1 -0
  76. package/dist/src/budget/pricing.d.ts +35 -0
  77. package/dist/src/budget/pricing.d.ts.map +1 -0
  78. package/dist/src/budget/pricing.js +129 -0
  79. package/dist/src/budget/pricing.js.map +1 -0
  80. package/dist/src/budget/types.d.ts +86 -0
  81. package/dist/src/budget/types.d.ts.map +1 -0
  82. package/dist/src/budget/types.js +2 -0
  83. package/dist/src/budget/types.js.map +1 -0
  84. package/dist/src/catalog/index.d.ts +3 -0
  85. package/dist/src/catalog/index.d.ts.map +1 -0
  86. package/dist/src/catalog/index.js +3 -0
  87. package/dist/src/catalog/index.js.map +1 -0
  88. package/dist/src/catalog/models_dev.d.ts +87 -0
  89. package/dist/src/catalog/models_dev.d.ts.map +1 -0
  90. package/dist/src/catalog/models_dev.js +38 -0
  91. package/dist/src/catalog/models_dev.js.map +1 -0
  92. package/dist/src/catalog/source.d.ts +67 -0
  93. package/dist/src/catalog/source.d.ts.map +1 -0
  94. package/dist/src/catalog/source.js +678 -0
  95. package/dist/src/catalog/source.js.map +1 -0
  96. package/dist/src/circuit_breaker.d.ts +61 -0
  97. package/dist/src/circuit_breaker.d.ts.map +1 -0
  98. package/dist/src/circuit_breaker.js +217 -0
  99. package/dist/src/circuit_breaker.js.map +1 -0
  100. package/dist/src/define_config.d.ts +11 -0
  101. package/dist/src/define_config.d.ts.map +1 -0
  102. package/dist/src/define_config.js +48 -0
  103. package/dist/src/define_config.js.map +1 -0
  104. package/dist/src/error_classifier.d.ts +50 -0
  105. package/dist/src/error_classifier.d.ts.map +1 -0
  106. package/dist/src/error_classifier.js +206 -0
  107. package/dist/src/error_classifier.js.map +1 -0
  108. package/dist/src/errors.d.ts +52 -0
  109. package/dist/src/errors.d.ts.map +1 -0
  110. package/dist/src/errors.js +70 -0
  111. package/dist/src/errors.js.map +1 -0
  112. package/dist/src/guard/confirmation.d.ts +67 -0
  113. package/dist/src/guard/confirmation.d.ts.map +1 -0
  114. package/dist/src/guard/confirmation.js +180 -0
  115. package/dist/src/guard/confirmation.js.map +1 -0
  116. package/dist/src/guard/errors.d.ts +10 -0
  117. package/dist/src/guard/errors.d.ts.map +1 -0
  118. package/dist/src/guard/errors.js +14 -0
  119. package/dist/src/guard/errors.js.map +1 -0
  120. package/dist/src/guard/guard.d.ts +47 -0
  121. package/dist/src/guard/guard.d.ts.map +1 -0
  122. package/dist/src/guard/guard.js +133 -0
  123. package/dist/src/guard/guard.js.map +1 -0
  124. package/dist/src/guard/index.d.ts +7 -0
  125. package/dist/src/guard/index.d.ts.map +1 -0
  126. package/dist/src/guard/index.js +7 -0
  127. package/dist/src/guard/index.js.map +1 -0
  128. package/dist/src/guard/registry.d.ts +72 -0
  129. package/dist/src/guard/registry.d.ts.map +1 -0
  130. package/dist/src/guard/registry.js +192 -0
  131. package/dist/src/guard/registry.js.map +1 -0
  132. package/dist/src/guard/schema_registry.d.ts +37 -0
  133. package/dist/src/guard/schema_registry.d.ts.map +1 -0
  134. package/dist/src/guard/schema_registry.js +57 -0
  135. package/dist/src/guard/schema_registry.js.map +1 -0
  136. package/dist/src/guard/types.d.ts +63 -0
  137. package/dist/src/guard/types.d.ts.map +1 -0
  138. package/dist/src/guard/types.js +2 -0
  139. package/dist/src/guard/types.js.map +1 -0
  140. package/dist/src/index.d.ts +16 -0
  141. package/dist/src/index.d.ts.map +1 -0
  142. package/dist/src/index.js +14 -0
  143. package/dist/src/index.js.map +1 -0
  144. package/dist/src/logger.d.ts +7 -0
  145. package/dist/src/logger.d.ts.map +1 -0
  146. package/dist/src/logger.js +2 -0
  147. package/dist/src/logger.js.map +1 -0
  148. package/dist/src/models/catalog_resolver.d.ts +24 -0
  149. package/dist/src/models/catalog_resolver.d.ts.map +1 -0
  150. package/dist/src/models/catalog_resolver.js +66 -0
  151. package/dist/src/models/catalog_resolver.js.map +1 -0
  152. package/dist/src/models/index.d.ts +14 -0
  153. package/dist/src/models/index.d.ts.map +1 -0
  154. package/dist/src/models/index.js +8 -0
  155. package/dist/src/models/index.js.map +1 -0
  156. package/dist/src/models/keys.d.ts +9 -0
  157. package/dist/src/models/keys.d.ts.map +1 -0
  158. package/dist/src/models/keys.js +12 -0
  159. package/dist/src/models/keys.js.map +1 -0
  160. package/dist/src/models/language_model_factory.d.ts +44 -0
  161. package/dist/src/models/language_model_factory.d.ts.map +1 -0
  162. package/dist/src/models/language_model_factory.js +193 -0
  163. package/dist/src/models/language_model_factory.js.map +1 -0
  164. package/dist/src/models/model_chain.d.ts +58 -0
  165. package/dist/src/models/model_chain.d.ts.map +1 -0
  166. package/dist/src/models/model_chain.js +144 -0
  167. package/dist/src/models/model_chain.js.map +1 -0
  168. package/dist/src/models/model_ref.d.ts +12 -0
  169. package/dist/src/models/model_ref.d.ts.map +1 -0
  170. package/dist/src/models/model_ref.js +33 -0
  171. package/dist/src/models/model_ref.js.map +1 -0
  172. package/dist/src/models/protocols.d.ts +6 -0
  173. package/dist/src/models/protocols.d.ts.map +1 -0
  174. package/dist/src/models/protocols.js +33 -0
  175. package/dist/src/models/protocols.js.map +1 -0
  176. package/dist/src/models/provider_factories.d.ts +19 -0
  177. package/dist/src/models/provider_factories.d.ts.map +1 -0
  178. package/dist/src/models/provider_factories.js +70 -0
  179. package/dist/src/models/provider_factories.js.map +1 -0
  180. package/dist/src/models/types.d.ts +17 -0
  181. package/dist/src/models/types.d.ts.map +1 -0
  182. package/dist/src/models/types.js +2 -0
  183. package/dist/src/models/types.js.map +1 -0
  184. package/dist/src/response_macro.d.ts +16 -0
  185. package/dist/src/response_macro.d.ts.map +1 -0
  186. package/dist/src/response_macro.js +151 -0
  187. package/dist/src/response_macro.js.map +1 -0
  188. package/dist/src/types.d.ts +340 -0
  189. package/dist/src/types.d.ts.map +1 -0
  190. package/dist/src/types.js +2 -0
  191. package/dist/src/types.js.map +1 -0
  192. package/dist/src/usage.d.ts +13 -0
  193. package/dist/src/usage.d.ts.map +1 -0
  194. package/dist/src/usage.js +61 -0
  195. package/dist/src/usage.js.map +1 -0
  196. package/package.json +208 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../commands/main.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,GAAoD;IAC/D,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;CAChC,CAAA;AAED,IAAI,cAA6C,CAAA;AACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAA;AAEtD,KAAK,UAAU,OAAO;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,cAAc;QAAE,OAAO,cAAc,CAAA;IACzC,MAAM,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAA;IAChC,KAAK,MAAM,OAAO,IAAI,QAAQ;QAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAChF,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC/D,OAAO,cAAc,CAAA;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAA8C;IAC7E,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,WAAW,EAAE,CAAA;IAClD,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAA;AACzD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { BaseCommand } from '@adonisjs/core/ace';
2
+ import type { CommandOptions } from '@adonisjs/core/types/ace';
3
+ export default class MakeAiAgentCommand extends BaseCommand {
4
+ static commandName: string;
5
+ static description: string;
6
+ static options: CommandOptions;
7
+ name: string;
8
+ provider: string;
9
+ model: string;
10
+ maxTokens: number;
11
+ run(): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=make_agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make_agent.d.ts","sourceRoot":"","sources":["../../commands/make_agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAI9D,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,WAAW;IACzD,MAAM,CAAC,WAAW,SAAkB;IACpC,MAAM,CAAC,WAAW,SAAqD;IAEvE,MAAM,CAAC,OAAO,EAAE,cAAc,CAE7B;IAGO,IAAI,EAAE,MAAM,CAAA;IAGZ,QAAQ,EAAE,MAAM,CAAA;IAGhB,KAAK,EAAE,MAAM,CAAA;IAGb,SAAS,EAAE,MAAM,CAAA;IAEnB,GAAG;CAqFV"}
@@ -0,0 +1,116 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { BaseCommand, args, flags } from '@adonisjs/core/ace';
11
+ import fs from 'node:fs/promises';
12
+ import path from 'node:path';
13
+ export default class MakeAiAgentCommand extends BaseCommand {
14
+ static commandName = 'make:ai-agent';
15
+ static description = 'Scaffold a production-grade typed AI Agent class';
16
+ static options = {
17
+ startApp: false,
18
+ };
19
+ async run() {
20
+ const rawName = this.name.replace(/Agent$/i, '');
21
+ const className = rawName.charAt(0).toUpperCase() + rawName.slice(1) + 'Agent';
22
+ const fileName = rawName.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase() + '_agent.ts';
23
+ const targetDir = path.join(this.app.makePath('app/ai/agents'));
24
+ await fs.mkdir(targetDir, { recursive: true });
25
+ const targetFile = path.join(targetDir, fileName);
26
+ const exists = await fs
27
+ .access(targetFile)
28
+ .then(() => true)
29
+ .catch(() => false);
30
+ if (exists) {
31
+ this.ui.logger.error(`Agent file already exists: ${targetFile}`);
32
+ return;
33
+ }
34
+ const template = `import ai from 'adonis-ai-kit/services/main'
35
+ import type { GenerateTextResult, StreamTextResult } from 'adonis-ai-kit/types'
36
+
37
+ export interface ${className}Input {
38
+ prompt: string
39
+ context?: Record<string, unknown>
40
+ }
41
+
42
+ /**
43
+ * ${className}
44
+ * Production-ready AI agent with token budgeting and structured execution.
45
+ */
46
+ export class ${className} {
47
+ public readonly agentName = '${rawName.toLowerCase()}-agent'
48
+ public readonly defaultProvider = ${this.provider ? `'${this.provider}'` : 'undefined'}
49
+ public readonly defaultModel = ${this.model ? `'${this.model}'` : 'undefined'}
50
+ public readonly maxOutputTokens = ${this.maxTokens}
51
+
52
+ /**
53
+ * System prompt establishing role, instructions, and guardrails.
54
+ */
55
+ protected getSystemPrompt(): string {
56
+ return [
57
+ 'You are ${className}, an expert AI assistant.',
58
+ 'Provide concise, accurate, and actionable answers.',
59
+ 'Always follow system security guidelines.',
60
+ ].join('\\n')
61
+ }
62
+
63
+ /**
64
+ * Executes synchronous text generation.
65
+ */
66
+ async run(input: ${className}Input): Promise<GenerateTextResult> {
67
+ return ai.generateText({
68
+ agentName: this.agentName,
69
+ provider: this.defaultProvider,
70
+ model: this.defaultModel,
71
+ maxOutputTokens: this.maxOutputTokens,
72
+ system: this.getSystemPrompt(),
73
+ prompt: input.prompt,
74
+ metadata: input.context,
75
+ })
76
+ }
77
+
78
+ /**
79
+ * Streams response in real time (e.g. for Server-Sent Events or WebSockets).
80
+ */
81
+ async stream(input: ${className}Input): Promise<StreamTextResult> {
82
+ return ai.streamText({
83
+ agentName: this.agentName,
84
+ provider: this.defaultProvider,
85
+ model: this.defaultModel,
86
+ maxOutputTokens: this.maxOutputTokens,
87
+ system: this.getSystemPrompt(),
88
+ prompt: input.prompt,
89
+ metadata: input.context,
90
+ })
91
+ }
92
+ }
93
+
94
+ export default new ${className}()
95
+ `;
96
+ await fs.writeFile(targetFile, template.trim() + '\n', 'utf8');
97
+ this.ui.logger.success(`Created AI Agent: ${targetFile}`);
98
+ }
99
+ }
100
+ __decorate([
101
+ args.string({ description: 'Name of the AI Agent class (e.g. MarketAnalysis, SupportChat, Coder)' }),
102
+ __metadata("design:type", String)
103
+ ], MakeAiAgentCommand.prototype, "name", void 0);
104
+ __decorate([
105
+ flags.string({ description: 'AI provider to use (default: app default)', default: '' }),
106
+ __metadata("design:type", String)
107
+ ], MakeAiAgentCommand.prototype, "provider", void 0);
108
+ __decorate([
109
+ flags.string({ description: 'Model to use (e.g. gpt-4o, claude-3-7-sonnet-latest)', default: '' }),
110
+ __metadata("design:type", String)
111
+ ], MakeAiAgentCommand.prototype, "model", void 0);
112
+ __decorate([
113
+ flags.number({ description: 'Max token budget per request', default: 2048 }),
114
+ __metadata("design:type", Number)
115
+ ], MakeAiAgentCommand.prototype, "maxTokens", void 0);
116
+ //# sourceMappingURL=make_agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make_agent.js","sourceRoot":"","sources":["../../commands/make_agent.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE7D,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,WAAW;IACzD,MAAM,CAAC,WAAW,GAAG,eAAe,CAAA;IACpC,MAAM,CAAC,WAAW,GAAG,kDAAkD,CAAA;IAEvE,MAAM,CAAC,OAAO,GAAmB;QAC/B,QAAQ,EAAE,KAAK;KAChB,CAAA;IAcD,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAChD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;QAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,CAAA;QAE3F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;QAC/D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAEjD,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,MAAM,CAAC,UAAU,CAAC;aAClB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QAErB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAA;YAChE,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG;;;mBAGF,SAAS;;;;;;KAMvB,SAAS;;;eAGC,SAAS;iCACS,OAAO,CAAC,WAAW,EAAE;sCAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,WAAW;mCACrD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW;sCACzC,IAAI,CAAC,SAAS;;;;;;;iBAOnC,SAAS;;;;;;;;;qBASL,SAAS;;;;;;;;;;;;;;;wBAeN,SAAS;;;;;;;;;;;;;qBAaZ,SAAS;CAC7B,CAAA;QAEG,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9D,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAA;IAC3D,CAAC;;AA/FO;IADP,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sEAAsE,EAAE,CAAC;;gDACjF;AAGZ;IADP,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;oDAChE;AAGhB;IADP,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;iDAC9E;AAGb;IADP,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;qDACpD"}
@@ -0,0 +1,23 @@
1
+ import { type ApplicationService } from '@adonisjs/core/types';
2
+ import type { AiManager } from '../src/ai_manager.js';
3
+ declare module '@adonisjs/core/types' {
4
+ interface ContainerBindings {
5
+ ai: AiManager;
6
+ }
7
+ }
8
+ /**
9
+ * AdonisJS 7 Service Provider for the AI subsystem.
10
+ * Registers 'ai' singleton in container and installs HTTP response macros.
11
+ */
12
+ export default class AiProvider {
13
+ protected app: ApplicationService;
14
+ private manager?;
15
+ constructor(app: ApplicationService);
16
+ register(): void;
17
+ boot(): Promise<void>;
18
+ /**
19
+ * Stops ACP agent processes and settles pending confirmations on application shutdown.
20
+ */
21
+ shutdown(): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=ai_provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai_provider.d.ts","sourceRoot":"","sources":["../../providers/ai_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAiB,iBAAiB;QAChC,EAAE,EAAE,SAAS,CAAA;KACd;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAGjB,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAF7C,OAAO,CAAC,OAAO,CAAC,CAAW;gBAEL,GAAG,EAAE,kBAAkB;IAE7C,QAAQ;IAaF,IAAI;IAKV;;OAEG;IACG,QAAQ;CAGf"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * AdonisJS 7 Service Provider for the AI subsystem.
3
+ * Registers 'ai' singleton in container and installs HTTP response macros.
4
+ */
5
+ export default class AiProvider {
6
+ app;
7
+ manager;
8
+ constructor(app) {
9
+ this.app = app;
10
+ }
11
+ register() {
12
+ this.app.container.singleton('ai', async () => {
13
+ const { AiManager } = await import('../src/ai_manager.js');
14
+ const config = this.app.config.get('ai', {
15
+ default: 'openai',
16
+ providers: {},
17
+ });
18
+ const logger = await this.app.container.make('logger');
19
+ this.manager = new AiManager(config, logger);
20
+ return this.manager;
21
+ });
22
+ }
23
+ async boot() {
24
+ const { registerResponseMacro } = await import('../src/response_macro.js');
25
+ registerResponseMacro();
26
+ }
27
+ /**
28
+ * Stops ACP agent processes and settles pending confirmations on application shutdown.
29
+ */
30
+ async shutdown() {
31
+ await this.manager?.shutdown();
32
+ }
33
+ }
34
+ //# sourceMappingURL=ai_provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai_provider.js","sourceRoot":"","sources":["../../providers/ai_provider.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAGP;IAFd,OAAO,CAAY;IAE3B,YAAsB,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAEjD,QAAQ;QACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;YAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAW,IAAI,EAAE;gBACjD,OAAO,EAAE,QAAQ;gBACjB,SAAS,EAAE,EAAE;aACd,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtD,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAA;QAC1E,qBAAqB,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import type { AiManager } from '../src/ai_manager.js';
2
+ declare let ai: AiManager;
3
+ export { ai as default };
4
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../services/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,QAAA,IAAI,EAAE,EAAE,SAAS,CAAA;AAKjB,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import app from '@adonisjs/core/services/app';
2
+ let ai;
3
+ await app.booted(async () => {
4
+ ai = await app.container.make('ai');
5
+ });
6
+ export { ai as default };
7
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../services/main.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAG7C,IAAI,EAAa,CAAA;AACjB,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IAC1B,EAAE,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC,CAAC,CAAA;AAEF,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,CAAA"}
@@ -0,0 +1,89 @@
1
+ import type { Logger } from '../logger.js';
2
+ import type { AcpAgentConfig, AcpAgentRuntimeConfig, AcpMcpServerConfig, AcpProjectMcpConfig, AcpRuntimeOptions } from './types.js';
3
+ /**
4
+ * Registry of the ACP agents this application may start.
5
+ *
6
+ * It starts with the built-in agents, and an application can replace it with the
7
+ * binaries that are actually installed on the operator's machine
8
+ * (`setAcpAgents`) or extend it (`registerAcpAgent`).
9
+ */
10
+ export declare const ACP_AGENTS: Record<string, AcpAgentConfig>;
11
+ /**
12
+ * Registers (or replaces) one ACP agent.
13
+ */
14
+ export declare function registerAcpAgent(agentId: string, config: AcpAgentConfig): void;
15
+ /**
16
+ * Replaces the whole agent registry, e.g. with the binaries of a given deployment.
17
+ */
18
+ export declare function setAcpAgents(agents: Record<string, AcpAgentConfig>): void;
19
+ /**
20
+ * Restores the built-in agent registry.
21
+ */
22
+ export declare function resetAcpAgents(): void;
23
+ /**
24
+ * Get ACP agent configuration by ID.
25
+ */
26
+ export declare function getAcpAgentConfig(agentId: string): AcpAgentConfig | undefined;
27
+ /**
28
+ * List all available ACP agent IDs.
29
+ */
30
+ export declare function listAcpAgentIds(): string[];
31
+ /**
32
+ * Check if an agent ID is a valid ACP agent.
33
+ */
34
+ export declare function isAcpAgent(agentId: string): boolean;
35
+ /**
36
+ * Parse agent arguments from env string.
37
+ * Supports JSON arrays (e.g., '["--flag","--opt","val"]')
38
+ * and falls back to comma-separated values.
39
+ */
40
+ export declare function parseAcpArgs(argsOverride: string | undefined, fallback: string[], logger?: Logger): string[];
41
+ /**
42
+ * Validates an MCP server definition and converts it to the exact shape required by the ACP
43
+ * schema: stdio servers have no `type` and an `env` array; remote servers have `type`
44
+ * 'http' | 'sse' and a `headers` array. Legacy `Record` env/headers and `httpUrl` are accepted.
45
+ * Returns `null` for unusable entries.
46
+ */
47
+ export declare function normalizeMcpServer(input: unknown): AcpMcpServerConfig | null;
48
+ /** Builds the stdio MCP server entry for a project-local MCP server file. */
49
+ export declare function buildProjectMcpServer(config: AcpProjectMcpConfig, logger?: Logger): AcpMcpServerConfig | null;
50
+ /**
51
+ * Build runtime configuration for an ACP agent.
52
+ *
53
+ * The positional form `(agentId, getEnv, envSource, logger)` is kept for compatibility;
54
+ * a function as the second argument selects it.
55
+ */
56
+ export declare function buildAcpRuntimeConfig(agentId: string, options?: AcpRuntimeOptions): AcpAgentRuntimeConfig | null;
57
+ export declare function buildAcpRuntimeConfig(agentId: string, getEnv?: (key: string) => string | undefined, envSource?: Record<string, string | undefined>, logger?: Logger): AcpAgentRuntimeConfig | null;
58
+ /**
59
+ * Create provider entry for models.dev registry.
60
+ */
61
+ export declare function createAcpProviderEntry(agentId: string): {
62
+ id: string;
63
+ name: string;
64
+ env: string[];
65
+ npm: string;
66
+ protocol: string;
67
+ models: Record<string, {
68
+ id: string;
69
+ name: string;
70
+ }>;
71
+ } | null;
72
+ /**
73
+ * Get all ACP provider entries for models catalog.
74
+ */
75
+ export declare function getAllAcpProviderEntries(): ReturnType<typeof createAcpProviderEntry>[];
76
+ /**
77
+ * Environment variable keys used across ACP agents.
78
+ */
79
+ export declare function getAcpEnvVarKeys(): {
80
+ apiKeys: string[];
81
+ agents: Record<string, {
82
+ path: string;
83
+ cwd: string;
84
+ args: string;
85
+ mcpServers: string;
86
+ enableProjectMcp: string;
87
+ }>;
88
+ };
89
+ //# sourceMappingURL=acp_agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp_agents.d.ts","sourceRoot":"","sources":["../../../src/acp/acp_agents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAElB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,YAAY,CAAA;AAyFnB;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAA6B,CAAA;AAEnF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAE9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAGzE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE7E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,EAAE,CAiBV;AAoBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAwB5E;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,GAAG,IAAI,CAY3B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC1B,qBAAqB,GAAG,IAAI,CAAA;AAC/B,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAC5C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC9C,MAAM,CAAC,EAAE,MAAM,GACd,qBAAqB,GAAG,IAAI,CAAA;AAiG/B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IACvD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACrD,GAAG,IAAI,CA0BP;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,UAAU,CAAC,OAAO,sBAAsB,CAAC,EAAE,CAItF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,MAAM,CACZ,MAAM,EACN;QACE,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,gBAAgB,EAAE,MAAM,CAAA;KACzB,CACF,CAAA;CACF,CA4BA"}