@barissozen/csns 0.6.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 (200) hide show
  1. package/.env.example +8 -0
  2. package/LICENSE +21 -0
  3. package/README.md +364 -0
  4. package/dist/agent/agent-runner.d.ts +48 -0
  5. package/dist/agent/agent-runner.d.ts.map +1 -0
  6. package/dist/agent/agent-runner.js +180 -0
  7. package/dist/agent/agent-runner.js.map +1 -0
  8. package/dist/agent/architect.d.ts +34 -0
  9. package/dist/agent/architect.d.ts.map +1 -0
  10. package/dist/agent/architect.js +156 -0
  11. package/dist/agent/architect.js.map +1 -0
  12. package/dist/agent/codebase-reader.d.ts +35 -0
  13. package/dist/agent/codebase-reader.d.ts.map +1 -0
  14. package/dist/agent/codebase-reader.js +305 -0
  15. package/dist/agent/codebase-reader.js.map +1 -0
  16. package/dist/agent/context-builder.d.ts +39 -0
  17. package/dist/agent/context-builder.d.ts.map +1 -0
  18. package/dist/agent/context-builder.js +163 -0
  19. package/dist/agent/context-builder.js.map +1 -0
  20. package/dist/agent/index.d.ts +14 -0
  21. package/dist/agent/index.d.ts.map +1 -0
  22. package/dist/agent/index.js +12 -0
  23. package/dist/agent/index.js.map +1 -0
  24. package/dist/agent/output-parser.d.ts +27 -0
  25. package/dist/agent/output-parser.d.ts.map +1 -0
  26. package/dist/agent/output-parser.js +154 -0
  27. package/dist/agent/output-parser.js.map +1 -0
  28. package/dist/agent/process-spawner.d.ts +56 -0
  29. package/dist/agent/process-spawner.d.ts.map +1 -0
  30. package/dist/agent/process-spawner.js +153 -0
  31. package/dist/agent/process-spawner.js.map +1 -0
  32. package/dist/agent/tracer/index.d.ts +8 -0
  33. package/dist/agent/tracer/index.d.ts.map +1 -0
  34. package/dist/agent/tracer/index.js +6 -0
  35. package/dist/agent/tracer/index.js.map +1 -0
  36. package/dist/agent/tracer/reverse-engineer.d.ts +113 -0
  37. package/dist/agent/tracer/reverse-engineer.d.ts.map +1 -0
  38. package/dist/agent/tracer/reverse-engineer.js +695 -0
  39. package/dist/agent/tracer/reverse-engineer.js.map +1 -0
  40. package/dist/agent/tracer/runtime-tracer.d.ts +61 -0
  41. package/dist/agent/tracer/runtime-tracer.d.ts.map +1 -0
  42. package/dist/agent/tracer/runtime-tracer.js +484 -0
  43. package/dist/agent/tracer/runtime-tracer.js.map +1 -0
  44. package/dist/agent/tracer/semantic-analyzer.d.ts +24 -0
  45. package/dist/agent/tracer/semantic-analyzer.d.ts.map +1 -0
  46. package/dist/agent/tracer/semantic-analyzer.js +132 -0
  47. package/dist/agent/tracer/semantic-analyzer.js.map +1 -0
  48. package/dist/agent/tracer/static-analyzer.d.ts +44 -0
  49. package/dist/agent/tracer/static-analyzer.d.ts.map +1 -0
  50. package/dist/agent/tracer/static-analyzer.js +453 -0
  51. package/dist/agent/tracer/static-analyzer.js.map +1 -0
  52. package/dist/agent/tracer/tracer-agent.d.ts +61 -0
  53. package/dist/agent/tracer/tracer-agent.d.ts.map +1 -0
  54. package/dist/agent/tracer/tracer-agent.js +252 -0
  55. package/dist/agent/tracer/tracer-agent.js.map +1 -0
  56. package/dist/bin/csns.d.ts +24 -0
  57. package/dist/bin/csns.d.ts.map +1 -0
  58. package/dist/bin/csns.js +389 -0
  59. package/dist/bin/csns.js.map +1 -0
  60. package/dist/bin/pc.d.ts +13 -0
  61. package/dist/bin/pc.d.ts.map +1 -0
  62. package/dist/bin/pc.js +212 -0
  63. package/dist/bin/pc.js.map +1 -0
  64. package/dist/brief/brief-collector.d.ts +42 -0
  65. package/dist/brief/brief-collector.d.ts.map +1 -0
  66. package/dist/brief/brief-collector.js +228 -0
  67. package/dist/brief/brief-collector.js.map +1 -0
  68. package/dist/brief/index.d.ts +3 -0
  69. package/dist/brief/index.d.ts.map +1 -0
  70. package/dist/brief/index.js +3 -0
  71. package/dist/brief/index.js.map +1 -0
  72. package/dist/brief/smart-brief.d.ts +52 -0
  73. package/dist/brief/smart-brief.d.ts.map +1 -0
  74. package/dist/brief/smart-brief.js +440 -0
  75. package/dist/brief/smart-brief.js.map +1 -0
  76. package/dist/calculator/calculator.d.ts +7 -0
  77. package/dist/calculator/calculator.d.ts.map +1 -0
  78. package/dist/calculator/calculator.js +18 -0
  79. package/dist/calculator/calculator.js.map +1 -0
  80. package/dist/calculator/index.d.ts +2 -0
  81. package/dist/calculator/index.d.ts.map +1 -0
  82. package/dist/calculator/index.js +2 -0
  83. package/dist/calculator/index.js.map +1 -0
  84. package/dist/i18n/en.d.ts +6 -0
  85. package/dist/i18n/en.d.ts.map +1 -0
  86. package/dist/i18n/en.js +136 -0
  87. package/dist/i18n/en.js.map +1 -0
  88. package/dist/i18n/index.d.ts +31 -0
  89. package/dist/i18n/index.d.ts.map +1 -0
  90. package/dist/i18n/index.js +44 -0
  91. package/dist/i18n/index.js.map +1 -0
  92. package/dist/i18n/tr.d.ts +6 -0
  93. package/dist/i18n/tr.d.ts.map +1 -0
  94. package/dist/i18n/tr.js +136 -0
  95. package/dist/i18n/tr.js.map +1 -0
  96. package/dist/i18n/types.d.ts +86 -0
  97. package/dist/i18n/types.d.ts.map +1 -0
  98. package/dist/i18n/types.js +9 -0
  99. package/dist/i18n/types.js.map +1 -0
  100. package/dist/index.d.ts +7 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +72 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/llm/anthropic-provider.d.ts +18 -0
  105. package/dist/llm/anthropic-provider.d.ts.map +1 -0
  106. package/dist/llm/anthropic-provider.js +55 -0
  107. package/dist/llm/anthropic-provider.js.map +1 -0
  108. package/dist/llm/factory.d.ts +21 -0
  109. package/dist/llm/factory.d.ts.map +1 -0
  110. package/dist/llm/factory.js +59 -0
  111. package/dist/llm/factory.js.map +1 -0
  112. package/dist/llm/index.d.ts +7 -0
  113. package/dist/llm/index.d.ts.map +1 -0
  114. package/dist/llm/index.js +5 -0
  115. package/dist/llm/index.js.map +1 -0
  116. package/dist/llm/ollama-provider.d.ts +20 -0
  117. package/dist/llm/ollama-provider.d.ts.map +1 -0
  118. package/dist/llm/ollama-provider.js +62 -0
  119. package/dist/llm/ollama-provider.js.map +1 -0
  120. package/dist/llm/openai-provider.d.ts +20 -0
  121. package/dist/llm/openai-provider.d.ts.map +1 -0
  122. package/dist/llm/openai-provider.js +65 -0
  123. package/dist/llm/openai-provider.js.map +1 -0
  124. package/dist/llm/resolve.d.ts +10 -0
  125. package/dist/llm/resolve.d.ts.map +1 -0
  126. package/dist/llm/resolve.js +21 -0
  127. package/dist/llm/resolve.js.map +1 -0
  128. package/dist/llm/types.d.ts +45 -0
  129. package/dist/llm/types.d.ts.map +1 -0
  130. package/dist/llm/types.js +11 -0
  131. package/dist/llm/types.js.map +1 -0
  132. package/dist/memory/index.d.ts +2 -0
  133. package/dist/memory/index.d.ts.map +1 -0
  134. package/dist/memory/index.js +2 -0
  135. package/dist/memory/index.js.map +1 -0
  136. package/dist/memory/memory-layer.d.ts +54 -0
  137. package/dist/memory/memory-layer.d.ts.map +1 -0
  138. package/dist/memory/memory-layer.js +297 -0
  139. package/dist/memory/memory-layer.js.map +1 -0
  140. package/dist/orchestrator/dependency-graph.d.ts +39 -0
  141. package/dist/orchestrator/dependency-graph.d.ts.map +1 -0
  142. package/dist/orchestrator/dependency-graph.js +134 -0
  143. package/dist/orchestrator/dependency-graph.js.map +1 -0
  144. package/dist/orchestrator/escalator.d.ts +42 -0
  145. package/dist/orchestrator/escalator.d.ts.map +1 -0
  146. package/dist/orchestrator/escalator.js +163 -0
  147. package/dist/orchestrator/escalator.js.map +1 -0
  148. package/dist/orchestrator/evaluator.d.ts +34 -0
  149. package/dist/orchestrator/evaluator.d.ts.map +1 -0
  150. package/dist/orchestrator/evaluator.js +335 -0
  151. package/dist/orchestrator/evaluator.js.map +1 -0
  152. package/dist/orchestrator/index.d.ts +9 -0
  153. package/dist/orchestrator/index.d.ts.map +1 -0
  154. package/dist/orchestrator/index.js +9 -0
  155. package/dist/orchestrator/index.js.map +1 -0
  156. package/dist/orchestrator/integration-evaluator.d.ts +59 -0
  157. package/dist/orchestrator/integration-evaluator.d.ts.map +1 -0
  158. package/dist/orchestrator/integration-evaluator.js +405 -0
  159. package/dist/orchestrator/integration-evaluator.js.map +1 -0
  160. package/dist/orchestrator/milestone-manager.d.ts +28 -0
  161. package/dist/orchestrator/milestone-manager.d.ts.map +1 -0
  162. package/dist/orchestrator/milestone-manager.js +208 -0
  163. package/dist/orchestrator/milestone-manager.js.map +1 -0
  164. package/dist/orchestrator/orchestrator.d.ts +35 -0
  165. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  166. package/dist/orchestrator/orchestrator.js +338 -0
  167. package/dist/orchestrator/orchestrator.js.map +1 -0
  168. package/dist/orchestrator/planner.d.ts +15 -0
  169. package/dist/orchestrator/planner.d.ts.map +1 -0
  170. package/dist/orchestrator/planner.js +87 -0
  171. package/dist/orchestrator/planner.js.map +1 -0
  172. package/dist/orchestrator/recovery.d.ts +45 -0
  173. package/dist/orchestrator/recovery.d.ts.map +1 -0
  174. package/dist/orchestrator/recovery.js +98 -0
  175. package/dist/orchestrator/recovery.js.map +1 -0
  176. package/dist/run-calculator-test.d.ts +11 -0
  177. package/dist/run-calculator-test.d.ts.map +1 -0
  178. package/dist/run-calculator-test.js +212 -0
  179. package/dist/run-calculator-test.js.map +1 -0
  180. package/dist/run-real-task.d.ts +14 -0
  181. package/dist/run-real-task.d.ts.map +1 -0
  182. package/dist/run-real-task.js +185 -0
  183. package/dist/run-real-task.js.map +1 -0
  184. package/dist/run-todo-test.d.ts +6 -0
  185. package/dist/run-todo-test.d.ts.map +1 -0
  186. package/dist/run-todo-test.js +149 -0
  187. package/dist/run-todo-test.js.map +1 -0
  188. package/dist/todo/index.d.ts +2 -0
  189. package/dist/todo/index.d.ts.map +1 -0
  190. package/dist/todo/index.js +2 -0
  191. package/dist/todo/index.js.map +1 -0
  192. package/dist/todo/server.d.ts +2 -0
  193. package/dist/todo/server.d.ts.map +1 -0
  194. package/dist/todo/server.js +32 -0
  195. package/dist/todo/server.js.map +1 -0
  196. package/dist/types/index.d.ts +412 -0
  197. package/dist/types/index.d.ts.map +1 -0
  198. package/dist/types/index.js +5 -0
  199. package/dist/types/index.js.map +1 -0
  200. package/package.json +100 -0
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Anthropic Provider — Claude API Adapter
3
+ *
4
+ * @anthropic-ai/sdk'yı LLMProvider interface'ine sarar.
5
+ */
6
+ import Anthropic from '@anthropic-ai/sdk';
7
+ const DEFAULT_MODEL = 'claude-sonnet-4-20250514';
8
+ export class AnthropicProvider {
9
+ name = 'anthropic';
10
+ client;
11
+ defaultModel;
12
+ constructor(apiKey, model) {
13
+ this.client = new Anthropic({ apiKey });
14
+ this.defaultModel = model ?? DEFAULT_MODEL;
15
+ }
16
+ async chat(messages, options) {
17
+ const systemPrompt = options?.system
18
+ ?? messages.find(m => m.role === 'system')?.content;
19
+ const chatMessages = messages
20
+ .filter(m => m.role !== 'system')
21
+ .map(m => ({ role: m.role, content: m.content }));
22
+ const response = await this.client.messages.create({
23
+ model: options?.model ?? this.defaultModel,
24
+ max_tokens: options?.maxTokens ?? 4096,
25
+ ...(systemPrompt ? { system: systemPrompt } : {}),
26
+ ...(options?.temperature != null ? { temperature: options.temperature } : {}),
27
+ messages: chatMessages,
28
+ });
29
+ const text = response.content
30
+ .filter((block) => block.type === 'text')
31
+ .map(block => block.text)
32
+ .join('');
33
+ return {
34
+ text,
35
+ tokensUsed: (response.usage?.input_tokens ?? 0) + (response.usage?.output_tokens ?? 0),
36
+ model: response.model,
37
+ finishReason: response.stop_reason ?? undefined,
38
+ };
39
+ }
40
+ async healthCheck() {
41
+ try {
42
+ const response = await this.client.messages.create({
43
+ model: this.defaultModel,
44
+ max_tokens: 10,
45
+ messages: [{ role: 'user', content: 'ping' }],
46
+ });
47
+ return { ok: true, detail: `Anthropic OK (model: ${response.model})` };
48
+ }
49
+ catch (error) {
50
+ const msg = error instanceof Error ? error.message : 'Unknown error';
51
+ return { ok: false, detail: `Anthropic error: ${msg}` };
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=anthropic-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../src/llm/anthropic-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * LLM Provider Factory — Config'den doğru provider'ı oluştur
3
+ */
4
+ import type { LLMProvider, LLMProviderType } from './types.js';
5
+ export interface LLMConfig {
6
+ provider: LLMProviderType;
7
+ apiKey?: string;
8
+ model?: string;
9
+ baseUrl?: string;
10
+ }
11
+ /**
12
+ * Config'den LLM provider oluştur.
13
+ *
14
+ * Otomatik tespit: env variable'lara bakarak provider seç
15
+ * ANTHROPIC_API_KEY → anthropic
16
+ * OPENAI_API_KEY → openai
17
+ * OLLAMA_HOST → ollama
18
+ * LLM_PROVIDER → override
19
+ */
20
+ export declare function createProvider(config?: Partial<LLMConfig>): LLMProvider;
21
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/llm/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK/D,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,CA2BvE"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * LLM Provider Factory — Config'den doğru provider'ı oluştur
3
+ */
4
+ import { AnthropicProvider } from './anthropic-provider.js';
5
+ import { OpenAIProvider } from './openai-provider.js';
6
+ import { OllamaProvider } from './ollama-provider.js';
7
+ /**
8
+ * Config'den LLM provider oluştur.
9
+ *
10
+ * Otomatik tespit: env variable'lara bakarak provider seç
11
+ * ANTHROPIC_API_KEY → anthropic
12
+ * OPENAI_API_KEY → openai
13
+ * OLLAMA_HOST → ollama
14
+ * LLM_PROVIDER → override
15
+ */
16
+ export function createProvider(config) {
17
+ const provider = config?.provider ?? detectProvider();
18
+ switch (provider) {
19
+ case 'anthropic': {
20
+ const key = config?.apiKey ?? process.env['ANTHROPIC_API_KEY'];
21
+ if (!key)
22
+ throw new Error('ANTHROPIC_API_KEY is required for Anthropic provider');
23
+ return new AnthropicProvider(key, config?.model);
24
+ }
25
+ case 'openai': {
26
+ const key = config?.apiKey ?? process.env['OPENAI_API_KEY'];
27
+ if (!key)
28
+ throw new Error('OPENAI_API_KEY is required for OpenAI provider');
29
+ return new OpenAIProvider(key, config?.model, config?.baseUrl);
30
+ }
31
+ case 'ollama': {
32
+ const baseUrl = config?.baseUrl ?? process.env['OLLAMA_HOST'];
33
+ return new OllamaProvider(config?.model, baseUrl);
34
+ }
35
+ case 'custom':
36
+ throw new Error('Custom provider requires manual LLMProvider implementation');
37
+ default:
38
+ throw new Error(`Unknown LLM provider: ${provider}`);
39
+ }
40
+ }
41
+ /**
42
+ * Env variable'lardan provider otomatik tespit
43
+ */
44
+ function detectProvider() {
45
+ // Explicit override
46
+ const explicit = process.env['LLM_PROVIDER'];
47
+ if (explicit)
48
+ return explicit;
49
+ // Auto-detect from available API keys
50
+ if (process.env['ANTHROPIC_API_KEY'])
51
+ return 'anthropic';
52
+ if (process.env['OPENAI_API_KEY'])
53
+ return 'openai';
54
+ if (process.env['OLLAMA_HOST'])
55
+ return 'ollama';
56
+ // Default: anthropic (backward compat)
57
+ return 'anthropic';
58
+ }
59
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/llm/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAA2B;IACxD,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,cAAc,EAAE,CAAC;IAEtD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,GAAG,GAAG,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAC/D,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAClF,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC5E,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9D,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,QAAQ;YACX,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAEhF;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAkB,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,oBAAoB;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,QAAQ;QAAE,OAAO,QAA2B,CAAC;IAEjD,sCAAsC;IACtC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAAE,OAAO,WAAW,CAAC;IACzD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEhD,uCAAuC;IACvC,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type { LLMProvider, LLMMessage, LLMResponse, LLMChatOptions, LLMProviderType } from './types.js';
2
+ export { AnthropicProvider } from './anthropic-provider.js';
3
+ export { OpenAIProvider } from './openai-provider.js';
4
+ export { OllamaProvider } from './ollama-provider.js';
5
+ export { createProvider } from './factory.js';
6
+ export type { LLMConfig } from './factory.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { AnthropicProvider } from './anthropic-provider.js';
2
+ export { OpenAIProvider } from './openai-provider.js';
3
+ export { OllamaProvider } from './ollama-provider.js';
4
+ export { createProvider } from './factory.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Ollama Provider — Local LLM Adapter
3
+ *
4
+ * Ollama REST API'yi LLMProvider interface'ine sarar.
5
+ * Dependency yok — sadece fetch kullanır.
6
+ * Default: http://localhost:11434
7
+ */
8
+ import type { LLMProvider, LLMMessage, LLMResponse, LLMChatOptions } from './types.js';
9
+ export declare class OllamaProvider implements LLMProvider {
10
+ readonly name = "ollama";
11
+ private defaultModel;
12
+ private baseUrl;
13
+ constructor(model?: string, baseUrl?: string);
14
+ chat(messages: LLMMessage[], options?: LLMChatOptions): Promise<LLMResponse>;
15
+ healthCheck(): Promise<{
16
+ ok: boolean;
17
+ detail: string;
18
+ }>;
19
+ }
20
+ //# sourceMappingURL=ollama-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama-provider.d.ts","sourceRoot":"","sources":["../../src/llm/ollama-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKvF,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAKtC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAuC5E,WAAW,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAc9D"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Ollama Provider — Local LLM Adapter
3
+ *
4
+ * Ollama REST API'yi LLMProvider interface'ine sarar.
5
+ * Dependency yok — sadece fetch kullanır.
6
+ * Default: http://localhost:11434
7
+ */
8
+ const DEFAULT_MODEL = 'llama3';
9
+ const DEFAULT_BASE_URL = 'http://localhost:11434';
10
+ export class OllamaProvider {
11
+ name = 'ollama';
12
+ defaultModel;
13
+ baseUrl;
14
+ constructor(model, baseUrl) {
15
+ this.defaultModel = model ?? DEFAULT_MODEL;
16
+ this.baseUrl = baseUrl ?? DEFAULT_BASE_URL;
17
+ }
18
+ async chat(messages, options) {
19
+ const model = options?.model ?? this.defaultModel;
20
+ const body = {
21
+ model,
22
+ messages: messages.map(m => ({ role: m.role, content: m.content })),
23
+ stream: false,
24
+ options: {
25
+ ...(options?.temperature != null ? { temperature: options.temperature } : {}),
26
+ ...(options?.maxTokens ? { num_predict: options.maxTokens } : {}),
27
+ },
28
+ };
29
+ const response = await fetch(`${this.baseUrl}/api/chat`, {
30
+ method: 'POST',
31
+ headers: { 'Content-Type': 'application/json' },
32
+ body: JSON.stringify(body),
33
+ });
34
+ if (!response.ok) {
35
+ const errorBody = await response.text();
36
+ throw new Error(`Ollama API error (${response.status}): ${errorBody.slice(0, 500)}`);
37
+ }
38
+ const data = await response.json();
39
+ return {
40
+ text: data.message.content,
41
+ tokensUsed: (data.eval_count ?? 0) + (data.prompt_eval_count ?? 0),
42
+ model: data.model,
43
+ finishReason: 'stop',
44
+ };
45
+ }
46
+ async healthCheck() {
47
+ try {
48
+ const response = await fetch(`${this.baseUrl}/api/tags`);
49
+ if (response.ok) {
50
+ const data = await response.json();
51
+ const models = data.models?.map(m => m.name).join(', ') ?? 'unknown';
52
+ return { ok: true, detail: `Ollama OK (models: ${models})` };
53
+ }
54
+ return { ok: false, detail: `Ollama HTTP ${response.status}` };
55
+ }
56
+ catch (error) {
57
+ const msg = error instanceof Error ? error.message : 'Unknown error';
58
+ return { ok: false, detail: `Ollama error: ${msg}` };
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=ollama-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama-provider.js","sourceRoot":"","sources":["../../src/llm/ollama-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * OpenAI Provider — GPT / o-series API Adapter
3
+ *
4
+ * OpenAI chat completions API'yi LLMProvider interface'ine sarar.
5
+ * Dependency: openai paketi (opsiyonel peer dep).
6
+ */
7
+ import type { LLMProvider, LLMMessage, LLMResponse, LLMChatOptions } from './types.js';
8
+ export declare class OpenAIProvider implements LLMProvider {
9
+ readonly name = "openai";
10
+ private apiKey;
11
+ private defaultModel;
12
+ private baseUrl;
13
+ constructor(apiKey: string, model?: string, baseUrl?: string);
14
+ chat(messages: LLMMessage[], options?: LLMChatOptions): Promise<LLMResponse>;
15
+ healthCheck(): Promise<{
16
+ ok: boolean;
17
+ detail: string;
18
+ }>;
19
+ }
20
+ //# sourceMappingURL=openai-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../src/llm/openai-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKvF,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAMtD,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAyC5E,WAAW,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAe9D"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * OpenAI Provider — GPT / o-series API Adapter
3
+ *
4
+ * OpenAI chat completions API'yi LLMProvider interface'ine sarar.
5
+ * Dependency: openai paketi (opsiyonel peer dep).
6
+ */
7
+ const DEFAULT_MODEL = 'gpt-4o';
8
+ const DEFAULT_BASE_URL = 'https://api.openai.com/v1';
9
+ export class OpenAIProvider {
10
+ name = 'openai';
11
+ apiKey;
12
+ defaultModel;
13
+ baseUrl;
14
+ constructor(apiKey, model, baseUrl) {
15
+ this.apiKey = apiKey;
16
+ this.defaultModel = model ?? DEFAULT_MODEL;
17
+ this.baseUrl = baseUrl ?? DEFAULT_BASE_URL;
18
+ }
19
+ async chat(messages, options) {
20
+ const model = options?.model ?? this.defaultModel;
21
+ const maxTokens = options?.maxTokens ?? 4096;
22
+ const body = {
23
+ model,
24
+ max_tokens: maxTokens,
25
+ ...(options?.temperature != null ? { temperature: options.temperature } : {}),
26
+ messages: messages.map(m => ({ role: m.role, content: m.content })),
27
+ };
28
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
29
+ method: 'POST',
30
+ headers: {
31
+ 'Content-Type': 'application/json',
32
+ 'Authorization': `Bearer ${this.apiKey}`,
33
+ },
34
+ body: JSON.stringify(body),
35
+ });
36
+ if (!response.ok) {
37
+ const errorBody = await response.text();
38
+ throw new Error(`OpenAI API error (${response.status}): ${errorBody.slice(0, 500)}`);
39
+ }
40
+ const data = await response.json();
41
+ const choice = data.choices[0];
42
+ return {
43
+ text: choice?.message.content ?? '',
44
+ tokensUsed: data.usage?.total_tokens,
45
+ model: data.model,
46
+ finishReason: choice?.finish_reason,
47
+ };
48
+ }
49
+ async healthCheck() {
50
+ try {
51
+ const response = await fetch(`${this.baseUrl}/models`, {
52
+ headers: { 'Authorization': `Bearer ${this.apiKey}` },
53
+ });
54
+ if (response.ok) {
55
+ return { ok: true, detail: `OpenAI OK (base: ${this.baseUrl})` };
56
+ }
57
+ return { ok: false, detail: `OpenAI HTTP ${response.status}` };
58
+ }
59
+ catch (error) {
60
+ const msg = error instanceof Error ? error.message : 'Unknown error';
61
+ return { ok: false, detail: `OpenAI error: ${msg}` };
62
+ }
63
+ }
64
+ }
65
+ //# sourceMappingURL=openai-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../src/llm/openai-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Config → LLMProvider resolver
3
+ *
4
+ * OrchestratorConfig'den doğru LLMProvider'ı oluşturur.
5
+ * Backward compat: claudeApiKey varsa anthropic provider olur.
6
+ */
7
+ import type { LLMProvider } from '../llm/types.js';
8
+ import type { OrchestratorConfig } from '../types/index.js';
9
+ export declare function resolveProvider(config: OrchestratorConfig): LLMProvider | null;
10
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/llm/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,WAAW,GAAG,IAAI,CAa9E"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Config → LLMProvider resolver
3
+ *
4
+ * OrchestratorConfig'den doğru LLMProvider'ı oluşturur.
5
+ * Backward compat: claudeApiKey varsa anthropic provider olur.
6
+ */
7
+ import { createProvider } from '../llm/factory.js';
8
+ export function resolveProvider(config) {
9
+ const apiKey = config.llmApiKey ?? config.claudeApiKey;
10
+ const model = config.llmModel ?? config.model;
11
+ const provider = config.llmProvider ?? (config.claudeApiKey ? 'anthropic' : undefined);
12
+ if (!provider && !apiKey)
13
+ return null;
14
+ return createProvider({
15
+ provider: provider ?? 'anthropic',
16
+ apiKey: apiKey,
17
+ model,
18
+ baseUrl: config.llmBaseUrl,
19
+ });
20
+ }
21
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/llm/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEvF,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEtC,OAAO,cAAc,CAAC;QACpB,QAAQ,EAAE,QAAQ,IAAI,WAAW;QACjC,MAAM,EAAE,MAAM;QACd,KAAK;QACL,OAAO,EAAE,MAAM,CAAC,UAAU;KAC3B,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * LLM Provider — Model-Agnostic Chat Interface
3
+ *
4
+ * Anthropic, OpenAI, Ollama ve diğer LLM provider'ları
5
+ * tek bir interface arkasında soyutlar.
6
+ *
7
+ * Orchestrator/Evaluator/Planner artık doğrudan Anthropic SDK'ya
8
+ * bağlı değil — bu interface üzerinden konuşur.
9
+ */
10
+ export interface LLMMessage {
11
+ role: 'user' | 'assistant' | 'system';
12
+ content: string;
13
+ }
14
+ export interface LLMResponse {
15
+ text: string;
16
+ tokensUsed?: number;
17
+ model?: string;
18
+ finishReason?: string;
19
+ }
20
+ export interface LLMChatOptions {
21
+ model?: string;
22
+ maxTokens?: number;
23
+ system?: string;
24
+ temperature?: number;
25
+ }
26
+ /**
27
+ * Tüm LLM provider'ların implemente etmesi gereken interface.
28
+ */
29
+ export interface LLMProvider {
30
+ /** Provider adı: 'anthropic' | 'openai' | 'ollama' | ... */
31
+ readonly name: string;
32
+ /**
33
+ * Chat completion — mesaj listesine yanıt üret
34
+ */
35
+ chat(messages: LLMMessage[], options?: LLMChatOptions): Promise<LLMResponse>;
36
+ /**
37
+ * Provider erişilebilir mi? (API key geçerli mi, server ayakta mı)
38
+ */
39
+ healthCheck(): Promise<{
40
+ ok: boolean;
41
+ detail: string;
42
+ }>;
43
+ }
44
+ export type LLMProviderType = 'anthropic' | 'openai' | 'ollama' | 'custom';
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7E;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * LLM Provider — Model-Agnostic Chat Interface
3
+ *
4
+ * Anthropic, OpenAI, Ollama ve diğer LLM provider'ları
5
+ * tek bir interface arkasında soyutlar.
6
+ *
7
+ * Orchestrator/Evaluator/Planner artık doğrudan Anthropic SDK'ya
8
+ * bağlı değil — bu interface üzerinden konuşur.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,2 @@
1
+ export { MemoryLayer } from './memory-layer.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MemoryLayer } from './memory-layer.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Memory Layer — Dört Dosyanın Guardianı
3
+ *
4
+ * MISSION.md: salt okunur (sadece validasyon)
5
+ * ARCHITECTURE.md: okunur, değişiklik önerisi üretir
6
+ * DECISIONS.md: append-only log
7
+ * STATE.md: her task sonrası güncellenir
8
+ */
9
+ import type { MemoryFiles, MemorySnapshot, Decision, StateData } from '../types/index.js';
10
+ export declare class MemoryLayer {
11
+ private paths;
12
+ constructor(projectRoot: string);
13
+ snapshot(): Promise<MemorySnapshot>;
14
+ /**
15
+ * Optimize edilmiş snapshot — context window'u korumak için
16
+ * DECISIONS.md ve STATE.md otomatik sıkıştırılır.
17
+ *
18
+ * @param recentDecisionCount Tam gösterilecek son karar sayısı (default: 10)
19
+ * @param maxCompletedTasks Tam gösterilecek max tamamlanan task (default: 5)
20
+ */
21
+ optimizedSnapshot(recentDecisionCount?: number, maxCompletedTasks?: number): Promise<MemorySnapshot>;
22
+ readAll(): Promise<MemoryFiles>;
23
+ readMission(): Promise<string>;
24
+ readArchitecture(): Promise<string>;
25
+ readDecisions(): Promise<string>;
26
+ readState(): Promise<string>;
27
+ appendDecision(decision: Decision): Promise<void>;
28
+ updateState(state: StateData): Promise<void>;
29
+ parseState(): Promise<StateData>;
30
+ validateMissionIntegrity(): Promise<boolean>;
31
+ getDecisionCount(): Promise<number>;
32
+ getNextDecisionId(): Promise<string>;
33
+ /**
34
+ * DECISIONS.md özetleme:
35
+ * - Son N karar tam gösterilir
36
+ * - Eskiler tek satır özete indirilir
37
+ *
38
+ * Örnek: "D001-D006: dosya tabanlı hafıza, TypeScript stack, Claude API kararları"
39
+ */
40
+ summarizeDecisions(raw: string, recentCount?: number): string;
41
+ /**
42
+ * STATE.md sıkıştırma:
43
+ * - Completed tasks 5'ten fazlaysa özete indir
44
+ * - Active tasks ve blocked tam kalır
45
+ */
46
+ compressState(raw: string, maxCompleted?: number): string;
47
+ private readFile;
48
+ private computeHash;
49
+ private renderState;
50
+ private parseStateContent;
51
+ private parseTaskLines;
52
+ private parseBlockedLines;
53
+ }
54
+ //# sourceMappingURL=memory-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-layer.d.ts","sourceRoot":"","sources":["../../src/memory/memory-layer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,SAAS,EAIV,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAoC;gBAErC,WAAW,EAAE,MAAM;IAWzB,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAUzC;;;;;;OAMG;IACG,iBAAiB,CACrB,mBAAmB,SAAK,EACxB,iBAAiB,SAAI,GACpB,OAAO,CAAC,cAAc,CAAC;IAmBpB,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;IAY/B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAM5B,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjD,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAOhC,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;IAU5C,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMnC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAO1C;;;;;;OAMG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,MAAM;IA6CzD;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,SAAI,GAAG,MAAM;YA8CtC,QAAQ;IAQtB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,iBAAiB;CAc1B"}