opencode-agentic-engine 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +499 -0
  3. package/dist/agents/agent-runtime.d.ts +51 -0
  4. package/dist/agents/agent-runtime.d.ts.map +1 -0
  5. package/dist/agents/coordinator.d.ts +84 -0
  6. package/dist/agents/coordinator.d.ts.map +1 -0
  7. package/dist/agents/orchestrator.d.ts +56 -0
  8. package/dist/agents/orchestrator.d.ts.map +1 -0
  9. package/dist/agents/role-registry.d.ts +71 -0
  10. package/dist/agents/role-registry.d.ts.map +1 -0
  11. package/dist/core/agent-loop.d.ts +39 -0
  12. package/dist/core/agent-loop.d.ts.map +1 -0
  13. package/dist/core/config.d.ts +76 -0
  14. package/dist/core/config.d.ts.map +1 -0
  15. package/dist/core/error-analyzer.d.ts +37 -0
  16. package/dist/core/error-analyzer.d.ts.map +1 -0
  17. package/dist/core/executor.d.ts +73 -0
  18. package/dist/core/executor.d.ts.map +1 -0
  19. package/dist/core/git.d.ts +38 -0
  20. package/dist/core/git.d.ts.map +1 -0
  21. package/dist/core/intent-parser.d.ts +26 -0
  22. package/dist/core/intent-parser.d.ts.map +1 -0
  23. package/dist/core/llm.d.ts +90 -0
  24. package/dist/core/llm.d.ts.map +1 -0
  25. package/dist/core/model-registry.d.ts +65 -0
  26. package/dist/core/model-registry.d.ts.map +1 -0
  27. package/dist/core/navigator.d.ts +28 -0
  28. package/dist/core/navigator.d.ts.map +1 -0
  29. package/dist/core/parallel.d.ts +63 -0
  30. package/dist/core/parallel.d.ts.map +1 -0
  31. package/dist/core/planner.d.ts +19 -0
  32. package/dist/core/planner.d.ts.map +1 -0
  33. package/dist/core/task-classifier.d.ts +24 -0
  34. package/dist/core/task-classifier.d.ts.map +1 -0
  35. package/dist/core/tech-debt-scorer.d.ts +20 -0
  36. package/dist/core/tech-debt-scorer.d.ts.map +1 -0
  37. package/dist/core/verifier.d.ts +43 -0
  38. package/dist/core/verifier.d.ts.map +1 -0
  39. package/dist/drift/checkpoints.d.ts +23 -0
  40. package/dist/drift/checkpoints.d.ts.map +1 -0
  41. package/dist/drift/context-compressor.d.ts +28 -0
  42. package/dist/drift/context-compressor.d.ts.map +1 -0
  43. package/dist/drift/dependency-tracker.d.ts +75 -0
  44. package/dist/drift/dependency-tracker.d.ts.map +1 -0
  45. package/dist/drift/hallucination-guard.d.ts +25 -0
  46. package/dist/drift/hallucination-guard.d.ts.map +1 -0
  47. package/dist/drift/pattern-discovery.d.ts +138 -0
  48. package/dist/drift/pattern-discovery.d.ts.map +1 -0
  49. package/dist/evaluation/live-evaluator.d.ts +71 -0
  50. package/dist/evaluation/live-evaluator.d.ts.map +1 -0
  51. package/dist/evolution/continuous-evolution.d.ts +92 -0
  52. package/dist/evolution/continuous-evolution.d.ts.map +1 -0
  53. package/dist/evolution/self-evolver.d.ts +85 -0
  54. package/dist/evolution/self-evolver.d.ts.map +1 -0
  55. package/dist/index.d.ts +16 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +22069 -0
  58. package/dist/index.js.map +7 -0
  59. package/dist/memory/episodic-store.d.ts +40 -0
  60. package/dist/memory/episodic-store.d.ts.map +1 -0
  61. package/dist/memory/local-embedder.d.ts +17 -0
  62. package/dist/memory/local-embedder.d.ts.map +1 -0
  63. package/dist/memory/persistence.d.ts +17 -0
  64. package/dist/memory/persistence.d.ts.map +1 -0
  65. package/dist/memory/schema-version.d.ts +29 -0
  66. package/dist/memory/schema-version.d.ts.map +1 -0
  67. package/dist/memory/session-store.d.ts +50 -0
  68. package/dist/memory/session-store.d.ts.map +1 -0
  69. package/dist/memory/skill-format.d.ts +51 -0
  70. package/dist/memory/skill-format.d.ts.map +1 -0
  71. package/dist/memory/skill-store.d.ts +30 -0
  72. package/dist/memory/skill-store.d.ts.map +1 -0
  73. package/dist/memory/skill-training.d.ts +37 -0
  74. package/dist/memory/skill-training.d.ts.map +1 -0
  75. package/dist/memory/vector-store.d.ts +67 -0
  76. package/dist/memory/vector-store.d.ts.map +1 -0
  77. package/dist/observability/dashboard.d.ts +34 -0
  78. package/dist/observability/dashboard.d.ts.map +1 -0
  79. package/dist/observability/trace-logger.d.ts +27 -0
  80. package/dist/observability/trace-logger.d.ts.map +1 -0
  81. package/package.json +57 -0
@@ -0,0 +1,56 @@
1
+ import type { SharedMemoryEntry } from "./coordinator.js";
2
+ import type { LLMEngine } from "../core/llm.js";
3
+ export interface PipelineStage {
4
+ role: string;
5
+ description: string;
6
+ validationCriteria?: string[];
7
+ model?: string;
8
+ }
9
+ export interface WorkflowPipeline {
10
+ id: string;
11
+ name: string;
12
+ stages: PipelineStage[];
13
+ createdAt: number;
14
+ }
15
+ export interface CrossValidationResult {
16
+ stage: string;
17
+ targetStage: string;
18
+ issues: Array<{
19
+ severity: "error" | "warning" | "info";
20
+ description: string;
21
+ source: string;
22
+ }>;
23
+ passed: boolean;
24
+ summary: string;
25
+ }
26
+ export declare class Orchestrator {
27
+ private pipelines;
28
+ private activeRuns;
29
+ private llmEngine;
30
+ setLLMEngine(engine: LLMEngine): void;
31
+ definePipeline(pipeline: WorkflowPipeline): void;
32
+ getPipeline(id: string): WorkflowPipeline | undefined;
33
+ listPipelines(): WorkflowPipeline[];
34
+ startRun(runId: string, pipelineId: string): boolean;
35
+ getCurrentStage(runId: string): PipelineStage | null;
36
+ advanceStage(runId: string, output: string, issues: string[]): PipelineStage | null;
37
+ getStageResult(runId: string, role: string): {
38
+ output: string;
39
+ issues: string[];
40
+ validatedBy: string[];
41
+ } | undefined;
42
+ getAllStageResults(runId: string): Map<string, {
43
+ output: string;
44
+ issues: string[];
45
+ validatedBy: string[];
46
+ }>;
47
+ crossValidate(targetRole: string, output: string, allStageResults: Map<string, {
48
+ output: string;
49
+ issues: string[];
50
+ validatedBy: string[];
51
+ }>, sharedMemory: SharedMemoryEntry[]): Promise<CrossValidationResult>;
52
+ buildContextForRole(role: string, runId: string, sharedMemory: SharedMemoryEntry[]): string;
53
+ getSuggestedPipeline(description: string): string;
54
+ getBuiltInPipelines(): WorkflowPipeline[];
55
+ }
56
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;QACtC,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,UAAU,CAId;IACJ,OAAO,CAAC,SAAS,CAAyB;IAE1C,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIrC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIhD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIrD,aAAa,IAAI,gBAAgB,EAAE;IAInC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAWpD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IASpD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI;IAgBnF,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS;IAIpH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAIrG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,EACzF,YAAY,EAAE,iBAAiB,EAAE,GAChC,OAAO,CAAC,qBAAqB,CAAC;IAiEjC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,MAAM;IAkC3F,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IASjD,mBAAmB,IAAI,gBAAgB,EAAE;CA6C1C"}
@@ -0,0 +1,71 @@
1
+ import type { AgentRole } from "./coordinator.js";
2
+ export interface AgentDef {
3
+ role: AgentRole;
4
+ name: string;
5
+ prompt: string;
6
+ tools: string[];
7
+ model?: string;
8
+ }
9
+ export type CustomRole = string;
10
+ export interface CustomAgentDef {
11
+ role: CustomRole;
12
+ name: string;
13
+ prompt: string;
14
+ tools: string[];
15
+ model?: string;
16
+ }
17
+ /** Complexity level for model suggestion */
18
+ export type TaskComplexity = "simple" | "moderate" | "complex";
19
+ export type PromptSource = "auto-evolve" | "agent-self" | "manual" | "initial";
20
+ export interface PromptEntry {
21
+ version: number;
22
+ prompt: string;
23
+ timestamp: string;
24
+ source: PromptSource;
25
+ description?: string;
26
+ }
27
+ export interface PromptState {
28
+ currentVersion: number;
29
+ history: PromptEntry[];
30
+ }
31
+ export declare class RoleRegistry {
32
+ private builtIn;
33
+ private custom;
34
+ private promptHistory;
35
+ private defaultModels;
36
+ constructor(initialPrompts?: Array<{
37
+ role: string;
38
+ history: PromptEntry[];
39
+ }>);
40
+ registerCustom(def: CustomAgentDef): void;
41
+ private addHistoryEntry;
42
+ /**
43
+ * Update the system prompt for a built-in role with version tracking.
44
+ * Returns true if the role was found and updated.
45
+ */
46
+ updatePrompt(role: AgentRole, newPrompt: string, source?: PromptSource, description?: string): boolean;
47
+ /** Get the current prompt for a role (built-in or custom) */
48
+ getPrompt(role: string): string | undefined;
49
+ /** Get prompt version history for a role */
50
+ getPromptHistory(role: string): PromptEntry[];
51
+ /** Get the full prompt state for a role (current version + history) */
52
+ getPromptState(role: string): PromptState | undefined;
53
+ /** Get all prompt states (for persistence) */
54
+ getAllPromptStates(): Array<{
55
+ role: string;
56
+ history: PromptEntry[];
57
+ }>;
58
+ /**
59
+ * Rollback a role's prompt to a specific version.
60
+ * Returns true if the rollback succeeded.
61
+ */
62
+ rollbackPrompt(role: string, version: number): boolean;
63
+ getBuiltIn(role: AgentRole): AgentDef | undefined;
64
+ getCustom(role: CustomRole): CustomAgentDef | undefined;
65
+ getAllBuiltIn(): AgentDef[];
66
+ getAllCustom(): CustomAgentDef[];
67
+ listRoles(): string[];
68
+ suggestModel(role: string, complexity?: TaskComplexity): string;
69
+ setModel(role: AgentRole, model: string): void;
70
+ }
71
+ //# sourceMappingURL=role-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-registry.d.ts","sourceRoot":"","sources":["../../src/agents/role-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAE/B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;AAE9D,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE9E,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,MAAM,CAA6C;IAC3D,OAAO,CAAC,aAAa,CAAsC;IAE3D,OAAO,CAAC,aAAa,CAMpB;gBAEW,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAiX5E,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAOzC,OAAO,CAAC,eAAe;IAYvB;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,YAAuB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAQhH,6DAA6D;IAC7D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,4CAA4C;IAC5C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IAI7C,uEAAuE;IACvE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIrD,8CAA8C;IAC9C,kBAAkB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAIrE;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAoBtD,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;IAIjD,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS;IAIvD,aAAa,IAAI,QAAQ,EAAE;IAI3B,YAAY,IAAI,cAAc,EAAE;IAIhC,SAAS,IAAI,MAAM,EAAE;IAOrB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,cAA2B,GAAG,MAAM;IAgB3E,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAI/C"}
@@ -0,0 +1,39 @@
1
+ import type { Subtask } from "./intent-parser.js";
2
+ import { Executor } from "./executor.js";
3
+ import { Verifier } from "./verifier.js";
4
+ import { ErrorAnalyzer } from "./error-analyzer.js";
5
+ import { DependencyTracker } from "../drift/dependency-tracker.js";
6
+ import { LLMEngine } from "./llm.js";
7
+ export interface AgentLoopConfig {
8
+ maxIterations: number;
9
+ autoRetry: boolean;
10
+ maxRetries: number;
11
+ verifyAfterEach: boolean;
12
+ }
13
+ export interface LoopResult {
14
+ completedSteps: string[];
15
+ failedSteps: string[];
16
+ totalIterations: number;
17
+ success: boolean;
18
+ summary: string;
19
+ }
20
+ export interface LoopObserver {
21
+ onStepStart(stepId: string, iteration: number): void;
22
+ onStepComplete(stepId: string, success: boolean, output: string): void;
23
+ onLoopComplete(result: LoopResult): void;
24
+ }
25
+ export declare class AgentLoop {
26
+ private config;
27
+ private llm;
28
+ private observers;
29
+ constructor(llm: LLMEngine, config?: Partial<AgentLoopConfig>);
30
+ addObserver(observer: LoopObserver): void;
31
+ runLoop(sessionId: string, executor: Executor, verifier: Verifier, errorAnalyzer: ErrorAnalyzer, depTracker: DependencyTracker, projectDir: string, stepExecutor: (step: Subtask) => Promise<{
32
+ success: boolean;
33
+ output: string;
34
+ filesModified: string[];
35
+ error?: string;
36
+ }>, fixExecutor?: (fix: string) => Promise<boolean>): Promise<LoopResult>;
37
+ private attemptRepair;
38
+ }
39
+ //# sourceMappingURL=agent-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/core/agent-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACtE,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;CACzC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,SAAS,CAAqB;gBAE1B,GAAG,EAAE,SAAS,EAAE,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAUjE,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAInC,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EACvH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAC9C,OAAO,CAAC,UAAU,CAAC;YA0FR,aAAa;CA4B5B"}
@@ -0,0 +1,76 @@
1
+ export interface EmbeddingConfig {
2
+ /** Model name, e.g. "text-embedding-3-small", "nomic-embed-text" */
3
+ model: string;
4
+ /** Embedding endpoint — null berarti pakai base URL dari provider utama */
5
+ endpoint: string | null;
6
+ /** API key — null berarti pakai key dari provider utama */
7
+ apiKey: string | null;
8
+ }
9
+ export interface MemoryConfig {
10
+ enabled: boolean;
11
+ /** "lightweight" (TF-IDF, no deps) | "full" (vector embedding) */
12
+ mode: "lightweight" | "full";
13
+ maxEntries: number;
14
+ compressThreshold: number;
15
+ forgetAfterDays: number;
16
+ /** ISO 639-3 language codes for stop word filtering */
17
+ stopWordsLanguages: string[];
18
+ search: {
19
+ keywordWeight: number;
20
+ vectorWeight: number;
21
+ };
22
+ }
23
+ export interface AgentConfig {
24
+ maxDelegationDepth: number;
25
+ autoSkillExtract: boolean;
26
+ defaultRole: string;
27
+ requireSemanticCheck: boolean;
28
+ autoHallucinationCheck: boolean;
29
+ blockOnHallucination: boolean;
30
+ hallucinationThreshold: number;
31
+ hardBlockReliability: number;
32
+ softBlockReliability: number;
33
+ minSampleSize: number;
34
+ }
35
+ export interface StorageConfig {
36
+ traceRetentionDays: number;
37
+ skillMaxCount: number;
38
+ }
39
+ export interface AgenticConfigSchema {
40
+ $schema: string;
41
+ /** Embedding — null = lightweight mode */
42
+ embedding: EmbeddingConfig | null;
43
+ memory: MemoryConfig;
44
+ agent: AgentConfig;
45
+ storage: StorageConfig;
46
+ }
47
+ export declare const DEFAULT_CONFIG: AgenticConfigSchema;
48
+ export declare class ConfigLoader {
49
+ private config;
50
+ private readonly configPath;
51
+ private readonly worktree;
52
+ private watcher;
53
+ private listeners;
54
+ constructor(worktree: string);
55
+ /** Load config from file, auto-create default if missing */
56
+ load(): AgenticConfigSchema;
57
+ /** Save config to file */
58
+ save(config: AgenticConfigSchema): void;
59
+ /** Get current config */
60
+ get(): AgenticConfigSchema;
61
+ /** Update specific keys and persist */
62
+ update(partial: Partial<AgenticConfigSchema>): AgenticConfigSchema;
63
+ /** Watch config file for changes */
64
+ startWatch(): void;
65
+ /** Stop watching and clear all listeners */
66
+ stopWatch(): void;
67
+ /** Listen for config changes. Returns an unsubscribe function. */
68
+ onChange(listener: (config: AgenticConfigSchema) => void): () => void;
69
+ /** Check if full embedding is configured */
70
+ hasEmbedding(): boolean;
71
+ /** Get effective memory mode — auto-switch to "full" if embedding configured */
72
+ effectiveMemoryMode(): "lightweight" | "full";
73
+ /** Deep merge helper (simple version, no array merge) */
74
+ private mergeDeep;
75
+ }
76
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,kEAAkE;IAClE,IAAI,EAAE,aAAa,GAAG,MAAM,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,SAAS,EAAE,eAAe,GAAG,IAAI,CAAA;IACjC,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,aAAa,CAAA;CACvB;AAMD,eAAO,MAAM,cAAc,EAAE,mBA+B5B,CAAA;AAMD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,SAAS,CAAmD;gBAExD,QAAQ,EAAE,MAAM;IAM5B,4DAA4D;IAC5D,IAAI,IAAI,mBAAmB;IAqB3B,0BAA0B;IAC1B,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IASvC,yBAAyB;IACzB,GAAG,IAAI,mBAAmB;IAI1B,uCAAuC;IACvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB;IAMlE,oCAAoC;IACpC,UAAU,IAAI,IAAI;IAgBlB,4CAA4C;IAC5C,SAAS,IAAI,IAAI;IAQjB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,GAAG,MAAM,IAAI;IAQrE,4CAA4C;IAC5C,YAAY,IAAI,OAAO;IAIvB,gFAAgF;IAChF,mBAAmB,IAAI,aAAa,GAAG,MAAM;IAK7C,yDAAyD;IACzD,OAAO,CAAC,SAAS;CAYlB"}
@@ -0,0 +1,37 @@
1
+ /** Minimal LLM interface — avoids importing the full LLMEngine */
2
+ export interface ErrorAnalyzerLLM {
3
+ call(req: {
4
+ systemPrompt: string;
5
+ userPrompt: string;
6
+ temperature?: number;
7
+ }): Promise<{
8
+ content: string;
9
+ }>;
10
+ }
11
+ export interface ErrorAnalysis {
12
+ category: "compile" | "type" | "test" | "import" | "runtime" | "unknown";
13
+ summary: string;
14
+ likelyRootCause: string;
15
+ suggestedFix: string;
16
+ affectedFiles: string[];
17
+ severity: "low" | "medium" | "high" | "critical";
18
+ }
19
+ export declare class ErrorAnalyzer {
20
+ private llm;
21
+ /** Inject an LLM engine for asynchronous fallback analysis. */
22
+ setLLM(llm: ErrorAnalyzerLLM): void;
23
+ /** Check whether an LLM is configured for fallback. */
24
+ hasLLM(): boolean;
25
+ /**
26
+ * Synchronous rule-based analysis. Fast and dependency-free.
27
+ * For ambiguous errors, returns category:"unknown".
28
+ */
29
+ analyze(errorMessage: string, modifiedFiles: string[]): ErrorAnalysis;
30
+ /**
31
+ * Asynchronous LLM-enhanced analysis.
32
+ * Tries rule-based first; if unknown AND LLM is available, asks the LLM
33
+ * to classify the error and suggest a fix.
34
+ */
35
+ analyzeDeep(errorMessage: string, modifiedFiles: string[]): Promise<ErrorAnalysis>;
36
+ }
37
+ //# sourceMappingURL=error-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-analyzer.d.ts","sourceRoot":"","sources":["../../src/core/error-analyzer.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5G;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;CACjD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAgC;IAE3C,+DAA+D;IAC/D,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAInC,uDAAuD;IACvD,MAAM,IAAI,OAAO;IAIjB;;;OAGG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,aAAa;IAqErE;;;;OAIG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAkDzF"}
@@ -0,0 +1,73 @@
1
+ import type { Subtask, Plan } from "./intent-parser";
2
+ export interface ExecutionResult {
3
+ stepId: string;
4
+ success: boolean;
5
+ output: string;
6
+ filesModified?: string[];
7
+ error?: string;
8
+ }
9
+ export interface StepErrorHistory {
10
+ error: string;
11
+ attemptedFix: string;
12
+ timestamp: number;
13
+ success: boolean;
14
+ }
15
+ export interface StepState {
16
+ result?: ExecutionResult;
17
+ retryCount: number;
18
+ errorHistory: StepErrorHistory[];
19
+ }
20
+ export interface ExecutionState {
21
+ plan: Plan;
22
+ completedSteps: Set<string>;
23
+ failedSteps: Map<string, string>;
24
+ stepStates: Map<string, StepState>;
25
+ currentStepIndex: number;
26
+ }
27
+ export declare class Executor {
28
+ private maxRetries;
29
+ private states;
30
+ /** Per-error-category retry limits (Gap #13: adaptive retry policies).
31
+ * Different error types need different retry strategies:
32
+ * - compile/type: usually deterministic, 3 retries
33
+ * - test: flaky tests may need fewer retries
34
+ * - import: file-not-found won't fix by retrying
35
+ * - runtime: environmental, worth a few retries
36
+ */
37
+ private retryPolicies;
38
+ /** Set max retries for a specific error category. Default categories: compile, type, test, import, runtime, unknown */
39
+ setRetryPolicy(category: string, maxRetries: number): void;
40
+ /** Get max retries for an error category, or the global default if not categorized */
41
+ getMaxRetries(category?: string): number;
42
+ /** Get all retry policy summaries */
43
+ getRetryPolicies(): Array<{
44
+ category: string;
45
+ maxRetries: number;
46
+ }>;
47
+ initExecution(sessionId: string, plan: Plan): ExecutionState;
48
+ getNextStep(sessionId: string): Subtask | null;
49
+ getBlockedSteps(sessionId: string): Array<{
50
+ id: string;
51
+ description: string;
52
+ blockedBy: string[];
53
+ }>;
54
+ recordResult(sessionId: string, result: ExecutionResult): void;
55
+ recordFixAttempt(sessionId: string, stepId: string, fix: string, success: boolean): void;
56
+ canRetry(sessionId: string, stepId: string, category?: string): boolean;
57
+ /** Detect error category from error text */
58
+ private detectErrorCategory;
59
+ getRetryCount(sessionId: string, stepId: string): number;
60
+ getCompletedSteps(sessionId: string): string[];
61
+ getStepState(sessionId: string, stepId: string): StepState | undefined;
62
+ isComplete(sessionId: string): boolean;
63
+ isHealthy(sessionId: string): boolean;
64
+ getProgress(sessionId: string): {
65
+ completed: number;
66
+ total: number;
67
+ failed: number;
68
+ blocked: number;
69
+ };
70
+ getAllFilesModified(sessionId: string): string[];
71
+ removeSession(sessionId: string): void;
72
+ }
73
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export interface CommitInfo {
2
+ hash: string;
3
+ message: string;
4
+ files: string[];
5
+ timestamp: string;
6
+ }
7
+ export interface PRDescription {
8
+ title: string;
9
+ summary: string;
10
+ changes: string[];
11
+ testPlan: string;
12
+ breakingChanges: boolean;
13
+ }
14
+ export interface PRCreationResult {
15
+ url: string;
16
+ number: number;
17
+ title: string;
18
+ branch: string;
19
+ }
20
+ export declare class GitIntegration {
21
+ private cwd;
22
+ constructor(cwd: string);
23
+ isAvailable(): boolean;
24
+ stage(files: string[]): boolean;
25
+ commit(message: string, files: string[]): CommitInfo | null;
26
+ getHistory(count?: number): CommitInfo[];
27
+ getCurrentBranch(): string;
28
+ push(branch?: string): boolean;
29
+ createBranch(name: string): boolean;
30
+ createPR(title: string, body: string, base?: string): PRCreationResult | null;
31
+ getDiff(base?: string): string;
32
+ generatePRDescription(goal: string, steps: Array<{
33
+ id: string;
34
+ description: string;
35
+ success: boolean;
36
+ }>, filesChanged: string[]): PRDescription;
37
+ }
38
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAQ;gBAEP,GAAG,EAAE,MAAM;IAIvB,WAAW,IAAI,OAAO;IAStB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO;IAU/B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI;IAe3D,UAAU,CAAC,KAAK,SAAK,GAAG,UAAU,EAAE;IA2BpC,gBAAgB,IAAI,MAAM;IAU1B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAY9B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAUnC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,SAAS,GAAG,gBAAgB,GAAG,IAAI;IA8B7E,OAAO,CAAC,IAAI,SAAS,GAAG,MAAM;IAS9B,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,EACnE,YAAY,EAAE,MAAM,EAAE,GACrB,aAAa;CA2BjB"}
@@ -0,0 +1,26 @@
1
+ export interface Subtask {
2
+ id: string;
3
+ description: string;
4
+ dependsOn: string[];
5
+ verificationCriteria: string[];
6
+ }
7
+ export interface TaskIntent {
8
+ goal: string;
9
+ constraints: string[];
10
+ context: {
11
+ relevantFiles: string[];
12
+ dependencies: string[];
13
+ };
14
+ subtasks: Subtask[];
15
+ }
16
+ export interface Plan {
17
+ intent: TaskIntent;
18
+ estimatedSteps: number;
19
+ complexity: "low" | "medium" | "high";
20
+ warnings: string[];
21
+ }
22
+ export declare class IntentParser {
23
+ createPlan(intent: TaskIntent): Plan;
24
+ validatePlan(plan: Plan): string[];
25
+ }
26
+ //# sourceMappingURL=intent-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-parser.d.ts","sourceRoot":"","sources":["../../src/core/intent-parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,oBAAoB,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,EAAE,CAAA;QACvB,YAAY,EAAE,MAAM,EAAE,CAAA;KACvB,CAAA;IACD,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,qBAAa,YAAY;IACvB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAqBpC,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE;CAkBnC"}
@@ -0,0 +1,90 @@
1
+ export interface LLMConfig {
2
+ provider: "openai" | "anthropic" | "local" | "opencode";
3
+ apiKey?: string;
4
+ baseURL?: string;
5
+ model?: string;
6
+ maxTokens?: number;
7
+ temperature?: number;
8
+ variant?: string;
9
+ }
10
+ export interface LLMRequest {
11
+ systemPrompt: string;
12
+ userPrompt: string;
13
+ maxTokens?: number;
14
+ temperature?: number;
15
+ jsonMode?: boolean;
16
+ }
17
+ export interface LLMResponse {
18
+ content: string;
19
+ usage?: {
20
+ promptTokens: number;
21
+ completionTokens: number;
22
+ };
23
+ finishReason?: string;
24
+ }
25
+ import type { ModelRegistry } from "./model-registry.js";
26
+ export declare class LLMEngine {
27
+ private config;
28
+ private opencodeClient;
29
+ private pluginSessionId;
30
+ private modelRegistry?;
31
+ private sessionStore?;
32
+ private memoryStores?;
33
+ constructor(config?: Partial<LLMConfig>);
34
+ setMemoryStores(stores: {
35
+ searchEpisodes: (query: string) => Array<{
36
+ planGoal: string;
37
+ outcome: string;
38
+ timestamp: string;
39
+ }>;
40
+ findSkills: (query: string) => Array<{
41
+ name: string;
42
+ successRate: number;
43
+ }>;
44
+ }): void;
45
+ getMemoryContext(query: string): string;
46
+ private buildMemoryContext;
47
+ setOpencodeClient(client: unknown): void;
48
+ setSessionId(sessionId: string): void;
49
+ setModelRegistry(registry: ModelRegistry): void;
50
+ setSessionStore(store: import("../memory/session-store.js").SessionStore): void;
51
+ updateConfig(config: Partial<LLMConfig>): void;
52
+ getCurrentModel(): string;
53
+ call(req: LLMRequest): Promise<LLMResponse>;
54
+ decomposeTask(goal: string, context: string): Promise<string[]>;
55
+ summarizeContext(planGoal: string, turns: string[]): Promise<string>;
56
+ analyzeError(errorText: string, modifiedFiles: string[]): Promise<{
57
+ category: string;
58
+ rootCause: string;
59
+ fix: string;
60
+ }>;
61
+ private extractJSON;
62
+ generatePlan(goal: string, constraints: string[], codebaseSummary: string): Promise<{
63
+ steps: Array<{
64
+ id: string;
65
+ description: string;
66
+ dependsOn: string[];
67
+ }>;
68
+ complexity: string;
69
+ }>;
70
+ reviewCode(goal: string, files: Record<string, string>): Promise<string[]>;
71
+ suggestRole(description: string): Promise<string | null>;
72
+ suggestSkillSteps(taskDescription: string, successOutput: string): Promise<{
73
+ steps: Array<{
74
+ action: string;
75
+ description: string;
76
+ tool?: string;
77
+ expectedOutput: string;
78
+ rollback?: string;
79
+ }>;
80
+ }>;
81
+ private detectProvider;
82
+ private callOpenAI;
83
+ private callAnthropic;
84
+ private callLocal;
85
+ private callOpenCode;
86
+ private httpCall;
87
+ private fallbackResponse;
88
+ }
89
+ export declare const llmEngine: LLMEngine;
90
+ //# sourceMappingURL=llm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/core/llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ export interface ModelStats {
2
+ model: string;
3
+ totalCalls: number;
4
+ successCalls: number;
5
+ failedCalls: number;
6
+ hallucinationCount: number;
7
+ avgLatencyMs: number;
8
+ lastUsed: number;
9
+ consecutiveFailures: number;
10
+ consecutiveSuccesses: number;
11
+ quarantineUntil: number;
12
+ byTaskType?: Record<string, Omit<ModelStats, 'model' | 'byTaskType'>>;
13
+ }
14
+ export interface ModelScore {
15
+ model: string;
16
+ reliability: number;
17
+ hallucinationRate: number;
18
+ totalCalls: number;
19
+ status: "healthy" | "degraded" | "unstable";
20
+ }
21
+ export declare class ModelRegistry {
22
+ private stats;
23
+ private modelAliases;
24
+ private readonly maxConsecutiveFailures;
25
+ constructor();
26
+ registerAlias(alias: string, models: string[]): void;
27
+ addModel(name: string): void;
28
+ recordCall(model: string, success: boolean, latencyMs: number, taskType?: string): void;
29
+ recordHallucination(model: string): void;
30
+ getScore(model: string): ModelScore | null;
31
+ getScoreByTaskType(model: string, taskType: string): ModelScore | null;
32
+ getAllScores(): ModelScore[];
33
+ resolveAlias(alias: string): string[];
34
+ suggestWithFallback(role: string, preferredModels?: string[]): string[];
35
+ isBlocked(model: string, config: {
36
+ hardBlockReliability: number;
37
+ softBlockReliability: number;
38
+ minSampleSize: number;
39
+ }): {
40
+ blocked: boolean;
41
+ reason: string;
42
+ severity: "hard" | "soft" | null;
43
+ };
44
+ selectBestModel(taskType: string, availableModels: string[], blockingConfig?: {
45
+ hardBlockReliability: number;
46
+ softBlockReliability: number;
47
+ minSampleSize: number;
48
+ }): string;
49
+ selectWithFallback(taskType: string, availableModels: string[], blockingConfig: {
50
+ hardBlockReliability: number;
51
+ softBlockReliability: number;
52
+ minSampleSize: number;
53
+ }): {
54
+ model: string;
55
+ tier: "healthy" | "degraded" | "unstable" | "reset";
56
+ warnings: string[];
57
+ };
58
+ resetModel(model: string): void;
59
+ resetStaleModels(staleDays?: number): string[];
60
+ enterQuarantine(model: string, durationMinutes?: number): void;
61
+ getSummary(): string;
62
+ toJSON(): Record<string, ModelStats>;
63
+ fromJSON(data: Record<string, ModelStats>): void;
64
+ }
65
+ //# sourceMappingURL=model-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../src/core/model-registry.ts"],"names":[],"mappings":"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"}