@vraxis/agent-v 0.4.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 (119) hide show
  1. package/AGENTS.md +61 -0
  2. package/ARCHITECTURE.md +148 -0
  3. package/CHANGELOG.md +25 -0
  4. package/LICENSE +21 -0
  5. package/README.md +237 -0
  6. package/compatibility.json +41 -0
  7. package/dist/adapters/ai-sdk/index.d.ts +46 -0
  8. package/dist/adapters/ai-sdk/index.d.ts.map +1 -0
  9. package/dist/adapters/ai-sdk/index.js +383 -0
  10. package/dist/adapters/ai-sdk/index.js.map +1 -0
  11. package/dist/adapters/local-cli/definitions.d.ts +22 -0
  12. package/dist/adapters/local-cli/definitions.d.ts.map +1 -0
  13. package/dist/adapters/local-cli/definitions.js +72 -0
  14. package/dist/adapters/local-cli/definitions.js.map +1 -0
  15. package/dist/adapters/local-cli/engine.d.ts +26 -0
  16. package/dist/adapters/local-cli/engine.d.ts.map +1 -0
  17. package/dist/adapters/local-cli/engine.js +200 -0
  18. package/dist/adapters/local-cli/engine.js.map +1 -0
  19. package/dist/adapters/local-cli/index.d.ts +6 -0
  20. package/dist/adapters/local-cli/index.d.ts.map +1 -0
  21. package/dist/adapters/local-cli/index.js +6 -0
  22. package/dist/adapters/local-cli/index.js.map +1 -0
  23. package/dist/adapters/local-cli/parsing.d.ts +7 -0
  24. package/dist/adapters/local-cli/parsing.d.ts.map +1 -0
  25. package/dist/adapters/local-cli/parsing.js +95 -0
  26. package/dist/adapters/local-cli/parsing.js.map +1 -0
  27. package/dist/adapters/local-cli/process.d.ts +12 -0
  28. package/dist/adapters/local-cli/process.d.ts.map +1 -0
  29. package/dist/adapters/local-cli/process.js +19 -0
  30. package/dist/adapters/local-cli/process.js.map +1 -0
  31. package/dist/adapters/local-cli/store.d.ts +11 -0
  32. package/dist/adapters/local-cli/store.d.ts.map +1 -0
  33. package/dist/adapters/local-cli/store.js +11 -0
  34. package/dist/adapters/local-cli/store.js.map +1 -0
  35. package/dist/adapters/ollama/index.d.ts +45 -0
  36. package/dist/adapters/ollama/index.d.ts.map +1 -0
  37. package/dist/adapters/ollama/index.js +155 -0
  38. package/dist/adapters/ollama/index.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -0
  40. package/dist/cli/index.d.ts.map +1 -0
  41. package/dist/cli/index.js +116 -0
  42. package/dist/cli/index.js.map +1 -0
  43. package/dist/core/agent-v.d.ts +29 -0
  44. package/dist/core/agent-v.d.ts.map +1 -0
  45. package/dist/core/agent-v.js +153 -0
  46. package/dist/core/agent-v.js.map +1 -0
  47. package/dist/core/config.d.ts +31 -0
  48. package/dist/core/config.d.ts.map +1 -0
  49. package/dist/core/config.js +21 -0
  50. package/dist/core/config.js.map +1 -0
  51. package/dist/core/contracts.d.ts +135 -0
  52. package/dist/core/contracts.d.ts.map +1 -0
  53. package/dist/core/contracts.js +2 -0
  54. package/dist/core/contracts.js.map +1 -0
  55. package/dist/core/errors.d.ts +12 -0
  56. package/dist/core/errors.d.ts.map +1 -0
  57. package/dist/core/errors.js +27 -0
  58. package/dist/core/errors.js.map +1 -0
  59. package/dist/core/events.d.ts +74 -0
  60. package/dist/core/events.d.ts.map +1 -0
  61. package/dist/core/events.js +14 -0
  62. package/dist/core/events.js.map +1 -0
  63. package/dist/core/extensions.d.ts +80 -0
  64. package/dist/core/extensions.d.ts.map +1 -0
  65. package/dist/core/extensions.js +77 -0
  66. package/dist/core/extensions.js.map +1 -0
  67. package/dist/core/index.d.ts +12 -0
  68. package/dist/core/index.d.ts.map +1 -0
  69. package/dist/core/index.js +12 -0
  70. package/dist/core/index.js.map +1 -0
  71. package/dist/core/memory.d.ts +15 -0
  72. package/dist/core/memory.d.ts.map +1 -0
  73. package/dist/core/memory.js +21 -0
  74. package/dist/core/memory.js.map +1 -0
  75. package/dist/core/output.d.ts +10 -0
  76. package/dist/core/output.d.ts.map +1 -0
  77. package/dist/core/output.js +15 -0
  78. package/dist/core/output.js.map +1 -0
  79. package/dist/core/registry.d.ts +13 -0
  80. package/dist/core/registry.d.ts.map +1 -0
  81. package/dist/core/registry.js +29 -0
  82. package/dist/core/registry.js.map +1 -0
  83. package/dist/core/types.d.ts +141 -0
  84. package/dist/core/types.d.ts.map +1 -0
  85. package/dist/core/types.js +21 -0
  86. package/dist/core/types.js.map +1 -0
  87. package/dist/core/version.d.ts +3 -0
  88. package/dist/core/version.d.ts.map +1 -0
  89. package/dist/core/version.js +3 -0
  90. package/dist/core/version.js.map +1 -0
  91. package/dist/node/doctor.d.ts +50 -0
  92. package/dist/node/doctor.d.ts.map +1 -0
  93. package/dist/node/doctor.js +121 -0
  94. package/dist/node/doctor.js.map +1 -0
  95. package/dist/node/index.d.ts +26 -0
  96. package/dist/node/index.d.ts.map +1 -0
  97. package/dist/node/index.js +84 -0
  98. package/dist/node/index.js.map +1 -0
  99. package/dist/node/skills.d.ts +12 -0
  100. package/dist/node/skills.d.ts.map +1 -0
  101. package/dist/node/skills.js +96 -0
  102. package/dist/node/skills.js.map +1 -0
  103. package/dist/testing/index.d.ts +25 -0
  104. package/dist/testing/index.d.ts.map +1 -0
  105. package/dist/testing/index.js +33 -0
  106. package/dist/testing/index.js.map +1 -0
  107. package/examples/approved-tool.ts +56 -0
  108. package/examples/basic-ai-sdk.ts +29 -0
  109. package/examples/custom-model-resolver.ts +14 -0
  110. package/examples/filesystem-skill.ts +12 -0
  111. package/examples/local-cli.ts +28 -0
  112. package/examples/ollama.ts +15 -0
  113. package/examples/sessions-and-events.ts +18 -0
  114. package/examples/smoke.ts +35 -0
  115. package/examples/tsconfig.json +16 -0
  116. package/llms.txt +13 -0
  117. package/package.json +97 -0
  118. package/skills/agent-v/SKILL.md +39 -0
  119. package/skills/agent-v/references/integration-patterns.md +57 -0
@@ -0,0 +1,135 @@
1
+ import type { AgentEvent, EventSink } from "./events.js";
2
+ import type { OutputContract } from "./output.js";
3
+ import type { AgentInput, ContextArtifact, EngineDescriptor, JsonObject, JsonValue, RunContext, RunProvenance, RuntimeReadiness, TokenUsage, ExecutionScope } from "./types.js";
4
+ export interface StructuredGenerationRequest<T> extends RunContext {
5
+ input: AgentInput;
6
+ output: OutputContract<T>;
7
+ model?: string;
8
+ temperature?: number;
9
+ }
10
+ export interface StructuredGenerationResult<T> {
11
+ runId: string;
12
+ output: T;
13
+ provenance: RunProvenance;
14
+ durationMs: number;
15
+ usage?: TokenUsage;
16
+ }
17
+ export interface StructuredModelEngine {
18
+ readonly descriptor: EngineDescriptor;
19
+ generate<T>(request: StructuredGenerationRequest<T>, events?: EventSink): Promise<StructuredGenerationResult<T>>;
20
+ }
21
+ export interface ToolExecutionContext extends RunContext {
22
+ toolCallId: string;
23
+ artifacts: readonly ContextArtifact[];
24
+ }
25
+ /**
26
+ * Host capability exposed to a model.
27
+ * Both model-supplied input and implementation-supplied output are validated.
28
+ */
29
+ export interface AgentTool<I = unknown, O = JsonValue> {
30
+ name: string;
31
+ version: string;
32
+ description: string;
33
+ input: OutputContract<I>;
34
+ output: OutputContract<O>;
35
+ requiresApproval: boolean;
36
+ risk: ToolRisk;
37
+ sideEffect: ToolSideEffect;
38
+ requiredPermissions: readonly string[];
39
+ timeoutMs: number;
40
+ execute(input: I, context: ToolExecutionContext): Promise<O> | O;
41
+ }
42
+ export type ToolRisk = "read" | "write" | "external-side-effect" | "privileged";
43
+ export type ToolSideEffect = "none" | "idempotent" | "non-idempotent";
44
+ export interface ApprovalRequest {
45
+ id: string;
46
+ runId: string;
47
+ toolName: string;
48
+ input: unknown;
49
+ reason: string;
50
+ metadata?: JsonObject;
51
+ toolVersion?: string;
52
+ risk: ToolRisk;
53
+ sideEffect: ToolSideEffect;
54
+ requiredPermissions: readonly string[];
55
+ scope: ExecutionScope;
56
+ }
57
+ /** Host authority that resolves an approval request before a guarded tool executes. */
58
+ export interface ApprovalPolicy {
59
+ decide(request: ApprovalRequest): Promise<"approved" | "denied">;
60
+ }
61
+ export interface ToolAgentRequest<T = string> extends RunContext {
62
+ input: AgentInput;
63
+ tools?: readonly AgentTool[];
64
+ output?: OutputContract<T>;
65
+ maxSteps?: number;
66
+ model?: string;
67
+ approvalPolicy?: ApprovalPolicy;
68
+ }
69
+ export interface ToolAgentResult<T = string> {
70
+ runId: string;
71
+ output: T;
72
+ text: string;
73
+ steps: number;
74
+ provenance: RunProvenance;
75
+ durationMs: number;
76
+ usage?: TokenUsage;
77
+ }
78
+ export interface AgentRunStream<T> {
79
+ events: AsyncIterable<AgentEvent>;
80
+ result: Promise<ToolAgentResult<T>>;
81
+ }
82
+ /** Bounded model/tool-loop engine with normalized run and streaming results. */
83
+ export interface ToolAgentEngine {
84
+ readonly descriptor: EngineDescriptor;
85
+ run<T = string>(request: ToolAgentRequest<T>, events?: EventSink): Promise<ToolAgentResult<T>>;
86
+ stream<T = string>(request: ToolAgentRequest<T>, events?: EventSink): Promise<AgentRunStream<T>>;
87
+ }
88
+ export interface CodingRuntimeRequest<T> extends RunContext {
89
+ input: AgentInput;
90
+ output: OutputContract<T>;
91
+ runtimeId: string;
92
+ runtimeModel?: string;
93
+ workspacePath?: string;
94
+ workspaceAccess?: "read-only" | "workspace-write";
95
+ maxAttempts?: 1 | 2;
96
+ }
97
+ export interface CodingRuntimeResult<T> extends StructuredGenerationResult<T> {
98
+ runtimeId: string;
99
+ activityCount: number;
100
+ attempts: number;
101
+ }
102
+ /** Installed coding-agent runtime operating against an explicitly scoped workspace. */
103
+ export interface CodingRuntimeEngine {
104
+ readonly descriptor: EngineDescriptor;
105
+ inspect(runtimeId: string): Promise<RuntimeReadiness>;
106
+ probe(runtimeId: string, runtimeModel?: string): Promise<RuntimeReadiness>;
107
+ run<T>(request: CodingRuntimeRequest<T>, events?: EventSink): Promise<CodingRuntimeResult<T>>;
108
+ }
109
+ export interface AgentSession {
110
+ id: string;
111
+ agentId: string;
112
+ createdAt: string;
113
+ updatedAt: string;
114
+ messages: readonly import("./types.js").AgentMessage[];
115
+ metadata?: JsonObject;
116
+ scope: ExecutionScope;
117
+ }
118
+ /** Scope-isolated conversational state port. */
119
+ export interface SessionStore {
120
+ get(scope: ExecutionScope, id: string): Promise<AgentSession | undefined>;
121
+ save(session: AgentSession): Promise<void>;
122
+ delete(scope: ExecutionScope, id: string): Promise<void>;
123
+ }
124
+ /** Scope-isolated normalized execution ledger. */
125
+ export interface RunEventStore {
126
+ append(event: AgentEvent): Promise<void>;
127
+ list(scope: ExecutionScope, runId: string): Promise<readonly AgentEvent[]>;
128
+ }
129
+ export interface CredentialResolver {
130
+ resolve(reference: string): Promise<string | undefined>;
131
+ }
132
+ export interface SessionSaveOptions {
133
+ expectedUpdatedAt?: string;
134
+ }
135
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { FailureCode, SafeFailure } from "./types.js";
2
+ export declare class AgentVError extends Error implements SafeFailure {
3
+ readonly code: FailureCode;
4
+ readonly retryable: boolean;
5
+ readonly cause?: unknown;
6
+ constructor(code: FailureCode, message: string, options?: {
7
+ retryable?: boolean;
8
+ cause?: unknown;
9
+ });
10
+ }
11
+ export declare function safeFailure(error: unknown): SafeFailure;
12
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3D,qBAAa,WAAY,SAAQ,KAAM,YAAW,WAAW;IAC3D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEtB,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAOvG;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAWvD"}
@@ -0,0 +1,27 @@
1
+ export class AgentVError extends Error {
2
+ code;
3
+ retryable;
4
+ cause;
5
+ constructor(code, message, options = {}) {
6
+ super(message, options.cause === undefined ? undefined : { cause: options.cause });
7
+ this.name = "AgentVError";
8
+ this.code = code;
9
+ this.retryable = options.retryable ?? false;
10
+ if (options.cause !== undefined)
11
+ this.cause = options.cause;
12
+ }
13
+ }
14
+ export function safeFailure(error) {
15
+ if (error instanceof AgentVError)
16
+ return error;
17
+ if (error instanceof Error && error.name === "AbortError") {
18
+ return { code: "cancelled", message: "The agent run was cancelled.", retryable: true, cause: error };
19
+ }
20
+ return {
21
+ code: "invocation-failed",
22
+ message: "The agent engine failed before returning a reviewable result.",
23
+ retryable: false,
24
+ cause: error,
25
+ };
26
+ }
27
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAc;IAClB,SAAS,CAAU;IACV,KAAK,CAAW;IAElC,YAAY,IAAiB,EAAE,OAAe,EAAE,UAAoD,EAAE;QACpG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;QAC5C,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,8BAA8B,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACvG,CAAC;IACD,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,+DAA+D;QACxE,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,KAAK;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,74 @@
1
+ import type { Citation, ExecutionScope, FailureCode, JsonObject, JsonValue, RunProvenance, TokenUsage } from "./types.js";
2
+ interface EventBase {
3
+ runId: string;
4
+ timestamp: string;
5
+ scope: ExecutionScope;
6
+ traceId?: string;
7
+ }
8
+ export type AgentEvent = (EventBase & {
9
+ type: "run.started";
10
+ provenance: RunProvenance;
11
+ }) | (EventBase & {
12
+ type: "run.completed";
13
+ durationMs: number;
14
+ usage?: TokenUsage;
15
+ }) | (EventBase & {
16
+ type: "run.failed";
17
+ code: FailureCode;
18
+ message: string;
19
+ retryable: boolean;
20
+ }) | (EventBase & {
21
+ type: "model.started";
22
+ step: number;
23
+ }) | (EventBase & {
24
+ type: "model.completed";
25
+ step: number;
26
+ durationMs?: number;
27
+ usage?: TokenUsage;
28
+ }) | (EventBase & {
29
+ type: "text.delta";
30
+ delta: string;
31
+ }) | (EventBase & {
32
+ type: "tool.requested";
33
+ toolCallId: string;
34
+ toolName: string;
35
+ input?: JsonValue;
36
+ }) | (EventBase & {
37
+ type: "tool.completed";
38
+ toolCallId: string;
39
+ toolName: string;
40
+ durationMs?: number;
41
+ }) | (EventBase & {
42
+ type: "tool.failed";
43
+ toolCallId: string;
44
+ toolName: string;
45
+ message: string;
46
+ }) | (EventBase & {
47
+ type: "approval.requested";
48
+ approvalId: string;
49
+ toolName: string;
50
+ reason: string;
51
+ }) | (EventBase & {
52
+ type: "approval.resolved";
53
+ approvalId: string;
54
+ decision: "approved" | "denied";
55
+ }) | (EventBase & {
56
+ type: "citation";
57
+ citation: Citation;
58
+ }) | (EventBase & {
59
+ type: "status";
60
+ message: string;
61
+ metadata?: JsonObject;
62
+ });
63
+ export interface EventSink {
64
+ emit(event: AgentEvent): void | Promise<void>;
65
+ }
66
+ export declare const noopEventSink: EventSink;
67
+ export declare class MemoryEventSink implements EventSink {
68
+ readonly events: AgentEvent[];
69
+ emit(event: AgentEvent): void;
70
+ }
71
+ export declare function fanOutEventSink(...sinks: readonly EventSink[]): EventSink;
72
+ export declare function eventTimestamp(): string;
73
+ export {};
74
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export const noopEventSink = { emit() { } };
2
+ export class MemoryEventSink {
3
+ events = [];
4
+ emit(event) {
5
+ this.events.push(event);
6
+ }
7
+ }
8
+ export function fanOutEventSink(...sinks) {
9
+ return { async emit(event) { await Promise.all(sinks.map((sink) => sink.emit(event))); } };
10
+ }
11
+ export function eventTimestamp() {
12
+ return new Date().toISOString();
13
+ }
14
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,aAAa,GAAc,EAAE,IAAI,KAAI,CAAC,EAAE,CAAC;AAEtD,MAAM,OAAO,eAAe;IACjB,MAAM,GAAiB,EAAE,CAAC;IAEnC,IAAI,CAAC,KAAiB;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,GAAG,KAA2B;IAC5D,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,80 @@
1
+ import type { AgentTool, ToolAgentRequest } from "./contracts.js";
2
+ import type { AgentCapability, ContextArtifact, JsonObject } from "./types.js";
3
+ /** Portable, versioned guidance with a constraining tool allowlist. */
4
+ export interface AgentSkill {
5
+ id: string;
6
+ name: string;
7
+ version: string;
8
+ description: string;
9
+ instructions: string;
10
+ tools: readonly string[];
11
+ preapprovedTools?: readonly string[];
12
+ license?: string;
13
+ compatibility?: string;
14
+ source?: {
15
+ format: "agent-skills" | "native";
16
+ uri: string;
17
+ };
18
+ artifacts?: readonly ContextArtifact[];
19
+ metadata?: JsonObject;
20
+ }
21
+ interface AgentBlueprintBase {
22
+ id: string;
23
+ name: string;
24
+ description?: string;
25
+ instructions: string;
26
+ skills: readonly string[];
27
+ tools: readonly string[];
28
+ requiredCapabilities: readonly AgentCapability[];
29
+ maxSteps?: number;
30
+ metadata?: JsonObject;
31
+ }
32
+ /** Application-owned composition selecting exactly one engine or configured profile. */
33
+ export type AgentBlueprint = AgentBlueprintBase & ({
34
+ engineId: string;
35
+ profileId?: never;
36
+ } | {
37
+ profileId: string;
38
+ engineId?: never;
39
+ });
40
+ export interface AgentRunMiddleware {
41
+ id: string;
42
+ beforeRun?<T>(request: ToolAgentRequest<T>): Promise<ToolAgentRequest<T>> | ToolAgentRequest<T>;
43
+ afterRun?<T>(result: T): Promise<T> | T;
44
+ onError?(error: unknown): Promise<void> | void;
45
+ }
46
+ export interface AgentExtension {
47
+ id: string;
48
+ version: string;
49
+ capabilities?: readonly AgentCapability[];
50
+ tools?: readonly AgentTool[];
51
+ skills?: readonly AgentSkill[];
52
+ middleware?: readonly AgentRunMiddleware[];
53
+ }
54
+ declare class NamedRegistry<T extends {
55
+ id?: string;
56
+ name?: string;
57
+ }> {
58
+ private readonly values;
59
+ register(value: T, explicitId?: string): void;
60
+ get(id: string): T | undefined;
61
+ require(id: string): T;
62
+ list(): readonly T[];
63
+ }
64
+ export declare class ExtensionRegistry {
65
+ readonly tools: NamedRegistry<AgentTool<unknown, import("./types.js").JsonValue>>;
66
+ readonly skills: NamedRegistry<AgentSkill>;
67
+ readonly middleware: NamedRegistry<AgentRunMiddleware>;
68
+ private readonly extensions;
69
+ use(extension: AgentExtension): this;
70
+ list(): readonly AgentExtension[];
71
+ }
72
+ /** Defines and validates a portable agent skill. */
73
+ export declare function defineSkill(skill: AgentSkill): AgentSkill;
74
+ /** Defines a validated tool and enforces approval for high-risk classifications. */
75
+ export declare function defineTool<I, O extends import("./types.js").JsonValue>(tool: AgentTool<I, O>): AgentTool<I, O>;
76
+ export declare function defineExtension(extension: AgentExtension): AgentExtension;
77
+ /** Defines and validates an application-owned agent blueprint. */
78
+ export declare function defineAgent(blueprint: AgentBlueprint): AgentBlueprint;
79
+ export {};
80
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/core/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/E,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,cAAc,GAAG,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,UAAU,kBAAkB;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,oBAAoB,EAAE,SAAS,eAAe,EAAE,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,wFAAwF;AACxF,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,CAC9C;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,GACvC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,CAC1C,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAChG,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC5C;AAED,cAAM,aAAa,CAAC,CAAC,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAE/C,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAO7C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI9B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;IAMtB,IAAI,IAAI,SAAS,CAAC,EAAE;CAGrB;AAED,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,KAAK,oEAAkC;IAChD,QAAQ,CAAC,MAAM,4BAAmC;IAClD,QAAQ,CAAC,UAAU,oCAA2C;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAEhE,GAAG,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASpC,IAAI,IAAI,SAAS,cAAc,EAAE;CAGlC;AAED,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAIzD;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAO9G;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAEzE;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAKrE"}
@@ -0,0 +1,77 @@
1
+ class NamedRegistry {
2
+ values = new Map();
3
+ register(value, explicitId) {
4
+ const id = explicitId ?? value.id ?? value.name;
5
+ if (!id)
6
+ throw new Error("Registry entries require an id or name.");
7
+ if (this.values.has(id))
8
+ throw new Error(`An entry named ${id} is already registered.`);
9
+ this.values.set(id, value);
10
+ }
11
+ get(id) {
12
+ return this.values.get(id);
13
+ }
14
+ require(id) {
15
+ const value = this.get(id);
16
+ if (!value)
17
+ throw new Error(`No entry named ${id} is registered.`);
18
+ return value;
19
+ }
20
+ list() {
21
+ return [...this.values.values()];
22
+ }
23
+ }
24
+ export class ExtensionRegistry {
25
+ tools = new NamedRegistry();
26
+ skills = new NamedRegistry();
27
+ middleware = new NamedRegistry();
28
+ extensions = new Map();
29
+ use(extension) {
30
+ if (this.extensions.has(extension.id))
31
+ throw new Error(`Extension ${extension.id} is already installed.`);
32
+ this.extensions.set(extension.id, extension);
33
+ for (const tool of extension.tools ?? [])
34
+ this.tools.register(tool, tool.name);
35
+ for (const skill of extension.skills ?? [])
36
+ this.skills.register(skill);
37
+ for (const middleware of extension.middleware ?? [])
38
+ this.middleware.register(middleware);
39
+ return this;
40
+ }
41
+ list() {
42
+ return [...this.extensions.values()];
43
+ }
44
+ }
45
+ /** Defines and validates a portable agent skill. */
46
+ export function defineSkill(skill) {
47
+ if (!skill.id.trim() || !skill.name.trim() || !skill.version.trim())
48
+ throw new Error("Skills require a stable id, name, and version.");
49
+ if (new Set(skill.tools).size !== skill.tools.length)
50
+ throw new Error(`Skill ${skill.id} declares duplicate tools.`);
51
+ return Object.freeze({ ...skill });
52
+ }
53
+ /** Defines a validated tool and enforces approval for high-risk classifications. */
54
+ export function defineTool(tool) {
55
+ if (!tool.name.trim() || !tool.version.trim())
56
+ throw new Error("Tools require a stable name and version.");
57
+ if (tool.timeoutMs <= 0 || !Number.isFinite(tool.timeoutMs))
58
+ throw new Error(`Tool ${tool.name} requires a positive finite timeoutMs.`);
59
+ if ((tool.risk === "external-side-effect" || tool.risk === "privileged") && !tool.requiresApproval) {
60
+ throw new Error(`Tool ${tool.name} must require approval because its risk is ${tool.risk}.`);
61
+ }
62
+ return Object.freeze({ ...tool });
63
+ }
64
+ export function defineExtension(extension) {
65
+ return Object.freeze({ ...extension });
66
+ }
67
+ /** Defines and validates an application-owned agent blueprint. */
68
+ export function defineAgent(blueprint) {
69
+ if (!blueprint.id.trim() || !blueprint.name.trim())
70
+ throw new Error("Agents require a stable id and name.");
71
+ if (!blueprint.instructions.trim())
72
+ throw new Error(`Agent ${blueprint.id} requires instructions.`);
73
+ if (new Set(blueprint.skills).size !== blueprint.skills.length || new Set(blueprint.tools).size !== blueprint.tools.length)
74
+ throw new Error(`Agent ${blueprint.id} contains duplicate skill or tool ids.`);
75
+ return Object.freeze({ ...blueprint });
76
+ }
77
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/core/extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export * from "./agent-v.js";
2
+ export * from "./config.js";
3
+ export * from "./contracts.js";
4
+ export * from "./errors.js";
5
+ export * from "./events.js";
6
+ export * from "./extensions.js";
7
+ export * from "./output.js";
8
+ export * from "./registry.js";
9
+ export * from "./memory.js";
10
+ export * from "./types.js";
11
+ export * from "./version.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ export * from "./agent-v.js";
2
+ export * from "./config.js";
3
+ export * from "./contracts.js";
4
+ export * from "./errors.js";
5
+ export * from "./events.js";
6
+ export * from "./extensions.js";
7
+ export * from "./output.js";
8
+ export * from "./registry.js";
9
+ export * from "./memory.js";
10
+ export * from "./types.js";
11
+ export * from "./version.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { AgentEvent } from "./events.js";
2
+ import type { AgentSession, RunEventStore, SessionStore } from "./contracts.js";
3
+ import type { ExecutionScope } from "./types.js";
4
+ export declare class MemorySessionStore implements SessionStore {
5
+ private readonly sessions;
6
+ get(scope: ExecutionScope, id: string): Promise<AgentSession | undefined>;
7
+ save(session: AgentSession): Promise<void>;
8
+ delete(scope: ExecutionScope, id: string): Promise<void>;
9
+ }
10
+ export declare class MemoryRunEventStore implements RunEventStore {
11
+ private readonly events;
12
+ append(event: AgentEvent): Promise<void>;
13
+ list(scope: ExecutionScope, runId: string): Promise<readonly AgentEvent[]>;
14
+ }
15
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IACtD,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAIzE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAC/D;AAED,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IACrC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC;CAGjF"}
@@ -0,0 +1,21 @@
1
+ function scopedKey(scope, id) { return `${scope.tenantId}\u0000${scope.projectId}\u0000${scope.principalId}\u0000${scope.engagementId ?? ""}\u0000${id}`; }
2
+ function sameScope(left, right) {
3
+ return left.tenantId === right.tenantId && left.projectId === right.projectId && left.principalId === right.principalId && left.engagementId === right.engagementId;
4
+ }
5
+ export class MemorySessionStore {
6
+ sessions = new Map();
7
+ async get(scope, id) {
8
+ const session = this.sessions.get(scopedKey(scope, id));
9
+ return session ? structuredClone(session) : undefined;
10
+ }
11
+ async save(session) { this.sessions.set(scopedKey(session.scope, session.id), structuredClone(session)); }
12
+ async delete(scope, id) { this.sessions.delete(scopedKey(scope, id)); }
13
+ }
14
+ export class MemoryRunEventStore {
15
+ events = [];
16
+ async append(event) { this.events.push(structuredClone(event)); }
17
+ async list(scope, runId) {
18
+ return this.events.filter((event) => event.runId === runId && sameScope(event.scope, scope));
19
+ }
20
+ }
21
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"AAIA,SAAS,SAAS,CAAC,KAAqB,EAAE,EAAU,IAAY,OAAO,GAAG,KAAK,CAAC,QAAQ,SAAS,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,WAAW,SAAS,KAAK,CAAC,YAAY,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3L,SAAS,SAAS,CAAC,IAAoB,EAAE,KAAqB;IAC5D,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;AACtK,CAAC;AAED,MAAM,OAAO,kBAAkB;IACZ,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC5D,KAAK,CAAC,GAAG,CAAC,KAAqB,EAAE,EAAU;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAAqB,IAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvI,KAAK,CAAC,MAAM,CAAC,KAAqB,EAAE,EAAU,IAAmB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/G;AAED,MAAM,OAAO,mBAAmB;IACb,MAAM,GAAiB,EAAE,CAAC;IAC3C,KAAK,CAAC,MAAM,CAAC,KAAiB,IAAmB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,KAAqB,EAAE,KAAa;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/F,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { JsonObject } from "./types.js";
2
+ export interface OutputContract<T> {
3
+ name: string;
4
+ description?: string;
5
+ jsonSchema: JsonObject;
6
+ parse(value: unknown): T;
7
+ }
8
+ export declare function defineOutput<T>(contract: OutputContract<T>): OutputContract<T>;
9
+ export declare const textOutput: OutputContract<string>;
10
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAG9E;AAED,eAAO,MAAM,UAAU,wBAOrB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export function defineOutput(contract) {
2
+ if (!contract.name.trim())
3
+ throw new Error("An output contract requires a name.");
4
+ return Object.freeze({ ...contract });
5
+ }
6
+ export const textOutput = defineOutput({
7
+ name: "text",
8
+ jsonSchema: { type: "string" },
9
+ parse(value) {
10
+ if (typeof value !== "string")
11
+ throw new TypeError("Expected a text output.");
12
+ return value;
13
+ },
14
+ });
15
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,YAAY,CAAI,QAA2B;IACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAClF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAS;IAC7C,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,KAAK,CAAC,KAAK;QACT,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CodingRuntimeEngine, StructuredModelEngine, ToolAgentEngine } from "./contracts.js";
2
+ import type { AgentCapability, EngineDescriptor, EngineKind } from "./types.js";
3
+ type AnyEngine = StructuredModelEngine | ToolAgentEngine | CodingRuntimeEngine;
4
+ export declare class EngineRegistry {
5
+ private readonly engines;
6
+ register(engine: AnyEngine): this;
7
+ get(id: string): AnyEngine | undefined;
8
+ require<T extends AnyEngine = AnyEngine>(id: string, kind?: EngineKind): T;
9
+ find(kind: EngineKind, capabilities?: readonly AgentCapability[]): readonly EngineDescriptor[];
10
+ list(): readonly EngineDescriptor[];
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhF,KAAK,SAAS,GAAG,qBAAqB,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAE/E,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IAExD,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAMjC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItC,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,CAAC;IAQ1E,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,GAAE,SAAS,eAAe,EAAO,GAAG,SAAS,gBAAgB,EAAE;IAMlG,IAAI,IAAI,SAAS,gBAAgB,EAAE;CAGpC"}