@nexalab/agent-sdk 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 (236) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +518 -0
  3. package/bin/nexa.mjs +33 -0
  4. package/dist/advanced-memory.d.ts +32 -0
  5. package/dist/advanced-memory.d.ts.map +1 -0
  6. package/dist/advanced-memory.js +54 -0
  7. package/dist/advanced-memory.js.map +1 -0
  8. package/dist/agent-builder.d.ts +60 -0
  9. package/dist/agent-builder.d.ts.map +1 -0
  10. package/dist/agent-builder.js +141 -0
  11. package/dist/agent-builder.js.map +1 -0
  12. package/dist/approvals.d.ts +34 -0
  13. package/dist/approvals.d.ts.map +1 -0
  14. package/dist/approvals.js +54 -0
  15. package/dist/approvals.js.map +1 -0
  16. package/dist/artifacts.d.ts +13 -0
  17. package/dist/artifacts.d.ts.map +1 -0
  18. package/dist/artifacts.js +13 -0
  19. package/dist/artifacts.js.map +1 -0
  20. package/dist/cache.d.ts +17 -0
  21. package/dist/cache.d.ts.map +1 -0
  22. package/dist/cache.js +29 -0
  23. package/dist/cache.js.map +1 -0
  24. package/dist/completion-gate.d.ts +5 -0
  25. package/dist/completion-gate.d.ts.map +1 -0
  26. package/dist/completion-gate.js +20 -0
  27. package/dist/completion-gate.js.map +1 -0
  28. package/dist/console-chat.d.ts +110 -0
  29. package/dist/console-chat.d.ts.map +1 -0
  30. package/dist/console-chat.js +284 -0
  31. package/dist/console-chat.js.map +1 -0
  32. package/dist/context.d.ts +45 -0
  33. package/dist/context.d.ts.map +1 -0
  34. package/dist/context.js +92 -0
  35. package/dist/context.js.map +1 -0
  36. package/dist/evals.d.ts +38 -0
  37. package/dist/evals.d.ts.map +1 -0
  38. package/dist/evals.js +37 -0
  39. package/dist/evals.js.map +1 -0
  40. package/dist/event-bus.d.ts +28 -0
  41. package/dist/event-bus.d.ts.map +1 -0
  42. package/dist/event-bus.js +28 -0
  43. package/dist/event-bus.js.map +1 -0
  44. package/dist/file-storage.d.ts +25 -0
  45. package/dist/file-storage.d.ts.map +1 -0
  46. package/dist/file-storage.js +100 -0
  47. package/dist/file-storage.js.map +1 -0
  48. package/dist/guardrails.d.ts +44 -0
  49. package/dist/guardrails.d.ts.map +1 -0
  50. package/dist/guardrails.js +37 -0
  51. package/dist/guardrails.js.map +1 -0
  52. package/dist/harness.d.ts +26 -0
  53. package/dist/harness.d.ts.map +1 -0
  54. package/dist/harness.js +49 -0
  55. package/dist/harness.js.map +1 -0
  56. package/dist/hooks.d.ts +58 -0
  57. package/dist/hooks.d.ts.map +1 -0
  58. package/dist/hooks.js +16 -0
  59. package/dist/hooks.js.map +1 -0
  60. package/dist/http-adapter.d.ts +13 -0
  61. package/dist/http-adapter.d.ts.map +1 -0
  62. package/dist/http-adapter.js +33 -0
  63. package/dist/http-adapter.js.map +1 -0
  64. package/dist/index.d.ts +58 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +58 -0
  67. package/dist/index.js.map +1 -0
  68. package/dist/kernel.d.ts +90 -0
  69. package/dist/kernel.d.ts.map +1 -0
  70. package/dist/kernel.js +251 -0
  71. package/dist/kernel.js.map +1 -0
  72. package/dist/knowledge.d.ts +35 -0
  73. package/dist/knowledge.d.ts.map +1 -0
  74. package/dist/knowledge.js +89 -0
  75. package/dist/knowledge.js.map +1 -0
  76. package/dist/local-tool-executor.d.ts +26 -0
  77. package/dist/local-tool-executor.d.ts.map +1 -0
  78. package/dist/local-tool-executor.js +30 -0
  79. package/dist/local-tool-executor.js.map +1 -0
  80. package/dist/loop-guard.d.ts +15 -0
  81. package/dist/loop-guard.d.ts.map +1 -0
  82. package/dist/loop-guard.js +12 -0
  83. package/dist/loop-guard.js.map +1 -0
  84. package/dist/manifest.d.ts +43 -0
  85. package/dist/manifest.d.ts.map +1 -0
  86. package/dist/manifest.js +31 -0
  87. package/dist/manifest.js.map +1 -0
  88. package/dist/mcp.d.ts +55 -0
  89. package/dist/mcp.d.ts.map +1 -0
  90. package/dist/mcp.js +175 -0
  91. package/dist/mcp.js.map +1 -0
  92. package/dist/memory.d.ts +32 -0
  93. package/dist/memory.d.ts.map +1 -0
  94. package/dist/memory.js +40 -0
  95. package/dist/memory.js.map +1 -0
  96. package/dist/mission-runtime.d.ts +106 -0
  97. package/dist/mission-runtime.d.ts.map +1 -0
  98. package/dist/mission-runtime.js +196 -0
  99. package/dist/mission-runtime.js.map +1 -0
  100. package/dist/model-harness.d.ts +23 -0
  101. package/dist/model-harness.d.ts.map +1 -0
  102. package/dist/model-harness.js +7 -0
  103. package/dist/model-harness.js.map +1 -0
  104. package/dist/model-router.d.ts +60 -0
  105. package/dist/model-router.d.ts.map +1 -0
  106. package/dist/model-router.js +90 -0
  107. package/dist/model-router.js.map +1 -0
  108. package/dist/multi-agent.d.ts +56 -0
  109. package/dist/multi-agent.d.ts.map +1 -0
  110. package/dist/multi-agent.js +69 -0
  111. package/dist/multi-agent.js.map +1 -0
  112. package/dist/native-tool-loop.d.ts +70 -0
  113. package/dist/native-tool-loop.d.ts.map +1 -0
  114. package/dist/native-tool-loop.js +92 -0
  115. package/dist/native-tool-loop.js.map +1 -0
  116. package/dist/openai-agent.d.ts +75 -0
  117. package/dist/openai-agent.d.ts.map +1 -0
  118. package/dist/openai-agent.js +190 -0
  119. package/dist/openai-agent.js.map +1 -0
  120. package/dist/openai-compatible.d.ts +117 -0
  121. package/dist/openai-compatible.d.ts.map +1 -0
  122. package/dist/openai-compatible.js +486 -0
  123. package/dist/openai-compatible.js.map +1 -0
  124. package/dist/otel.d.ts +12 -0
  125. package/dist/otel.d.ts.map +1 -0
  126. package/dist/otel.js +35 -0
  127. package/dist/otel.js.map +1 -0
  128. package/dist/permissions.d.ts +6 -0
  129. package/dist/permissions.d.ts.map +1 -0
  130. package/dist/permissions.js +33 -0
  131. package/dist/permissions.js.map +1 -0
  132. package/dist/plan-validator.d.ts +9 -0
  133. package/dist/plan-validator.d.ts.map +1 -0
  134. package/dist/plan-validator.js +27 -0
  135. package/dist/plan-validator.js.map +1 -0
  136. package/dist/policy.d.ts +27 -0
  137. package/dist/policy.d.ts.map +1 -0
  138. package/dist/policy.js +37 -0
  139. package/dist/policy.js.map +1 -0
  140. package/dist/postgres-storage.d.ts +33 -0
  141. package/dist/postgres-storage.d.ts.map +1 -0
  142. package/dist/postgres-storage.js +80 -0
  143. package/dist/postgres-storage.js.map +1 -0
  144. package/dist/provider-capabilities.d.ts +13 -0
  145. package/dist/provider-capabilities.d.ts.map +1 -0
  146. package/dist/provider-capabilities.js +19 -0
  147. package/dist/provider-capabilities.js.map +1 -0
  148. package/dist/providers.d.ts +14 -0
  149. package/dist/providers.d.ts.map +1 -0
  150. package/dist/providers.js +69 -0
  151. package/dist/providers.js.map +1 -0
  152. package/dist/queue.d.ts +29 -0
  153. package/dist/queue.d.ts.map +1 -0
  154. package/dist/queue.js +36 -0
  155. package/dist/queue.js.map +1 -0
  156. package/dist/redis-storage.d.ts +36 -0
  157. package/dist/redis-storage.d.ts.map +1 -0
  158. package/dist/redis-storage.js +68 -0
  159. package/dist/redis-storage.js.map +1 -0
  160. package/dist/replay.d.ts +13 -0
  161. package/dist/replay.d.ts.map +1 -0
  162. package/dist/replay.js +32 -0
  163. package/dist/replay.js.map +1 -0
  164. package/dist/runtime.d.ts +54 -0
  165. package/dist/runtime.d.ts.map +1 -0
  166. package/dist/runtime.js +218 -0
  167. package/dist/runtime.js.map +1 -0
  168. package/dist/sdk.d.ts +43 -0
  169. package/dist/sdk.d.ts.map +1 -0
  170. package/dist/sdk.js +82 -0
  171. package/dist/sdk.js.map +1 -0
  172. package/dist/secrets.d.ts +9 -0
  173. package/dist/secrets.d.ts.map +1 -0
  174. package/dist/secrets.js +23 -0
  175. package/dist/secrets.js.map +1 -0
  176. package/dist/sessions.d.ts +44 -0
  177. package/dist/sessions.d.ts.map +1 -0
  178. package/dist/sessions.js +76 -0
  179. package/dist/sessions.js.map +1 -0
  180. package/dist/skills.d.ts +12 -0
  181. package/dist/skills.d.ts.map +1 -0
  182. package/dist/skills.js +13 -0
  183. package/dist/skills.js.map +1 -0
  184. package/dist/smoke.d.ts +8 -0
  185. package/dist/smoke.d.ts.map +1 -0
  186. package/dist/smoke.js +5 -0
  187. package/dist/smoke.js.map +1 -0
  188. package/dist/sqlite-storage.d.ts +30 -0
  189. package/dist/sqlite-storage.d.ts.map +1 -0
  190. package/dist/sqlite-storage.js +52 -0
  191. package/dist/sqlite-storage.js.map +1 -0
  192. package/dist/storage.d.ts +74 -0
  193. package/dist/storage.d.ts.map +1 -0
  194. package/dist/storage.js +83 -0
  195. package/dist/storage.js.map +1 -0
  196. package/dist/structured-output.d.ts +14 -0
  197. package/dist/structured-output.d.ts.map +1 -0
  198. package/dist/structured-output.js +24 -0
  199. package/dist/structured-output.js.map +1 -0
  200. package/dist/telemetry.d.ts +27 -0
  201. package/dist/telemetry.d.ts.map +1 -0
  202. package/dist/telemetry.js +40 -0
  203. package/dist/telemetry.js.map +1 -0
  204. package/dist/tenancy.d.ts +9 -0
  205. package/dist/tenancy.d.ts.map +1 -0
  206. package/dist/tenancy.js +8 -0
  207. package/dist/tenancy.js.map +1 -0
  208. package/dist/tool-factory.d.ts +25 -0
  209. package/dist/tool-factory.d.ts.map +1 -0
  210. package/dist/tool-factory.js +38 -0
  211. package/dist/tool-factory.js.map +1 -0
  212. package/dist/tool-orchestrator.d.ts +89 -0
  213. package/dist/tool-orchestrator.d.ts.map +1 -0
  214. package/dist/tool-orchestrator.js +102 -0
  215. package/dist/tool-orchestrator.js.map +1 -0
  216. package/dist/tool-registry.d.ts +52 -0
  217. package/dist/tool-registry.d.ts.map +1 -0
  218. package/dist/tool-registry.js +19 -0
  219. package/dist/tool-registry.js.map +1 -0
  220. package/dist/types.d.ts +1020 -0
  221. package/dist/types.d.ts.map +1 -0
  222. package/dist/types.js +115 -0
  223. package/dist/types.js.map +1 -0
  224. package/dist/vector-memory.d.ts +19 -0
  225. package/dist/vector-memory.d.ts.map +1 -0
  226. package/dist/vector-memory.js +58 -0
  227. package/dist/vector-memory.js.map +1 -0
  228. package/dist/workflow.d.ts +65 -0
  229. package/dist/workflow.d.ts.map +1 -0
  230. package/dist/workflow.js +102 -0
  231. package/dist/workflow.js.map +1 -0
  232. package/dist/workspace.d.ts +35 -0
  233. package/dist/workspace.d.ts.map +1 -0
  234. package/dist/workspace.js +131 -0
  235. package/dist/workspace.js.map +1 -0
  236. package/package.json +223 -0
@@ -0,0 +1,60 @@
1
+ import { type AgentToolRegistration, type OpenAICompatibleAgent, type OpenAICompatibleAgentOptions } from "./openai-agent.js";
2
+ import { type ConsoleToolRegistration, type OpenAICompatibleConsoleAgent } from "./console-chat.js";
3
+ import type { LocalToolContext, LocalToolHandler } from "./local-tool-executor.js";
4
+ import type { ToolDefinition, ToolExecutionResult } from "./tool-registry.js";
5
+ import type { JsonObject } from "./types.js";
6
+ import type { OpenAICompatibleProviderConfig } from "./openai-compatible.js";
7
+ import type { ToolRouter, ToolTraceEvent } from "./tool-orchestrator.js";
8
+ import type { NexaStorage } from "./storage.js";
9
+ import type { NexaTelemetry } from "./telemetry.js";
10
+ import type { ModelRouter } from "./model-router.js";
11
+ export declare abstract class AgentTool {
12
+ abstract readonly definition: ToolDefinition;
13
+ abstract execute(input: JsonObject, context: LocalToolContext): Promise<ToolExecutionResult> | ToolExecutionResult;
14
+ asRegistration(): AgentToolRegistration;
15
+ asConsoleRegistration(commands?: ConsoleToolRegistration["commands"]): ConsoleToolRegistration;
16
+ }
17
+ export declare class FunctionTool extends AgentTool {
18
+ readonly definition: ToolDefinition;
19
+ private readonly handler;
20
+ constructor(definition: ToolDefinition, handler: LocalToolHandler);
21
+ execute(input: JsonObject, context: LocalToolContext): Promise<ToolExecutionResult> | ToolExecutionResult;
22
+ }
23
+ export declare function defineTool(definition: ToolDefinition, handler: LocalToolHandler): AgentTool;
24
+ export declare class AgentBuilder {
25
+ private providerConfig;
26
+ private modelId;
27
+ private prompt;
28
+ private traceHandler;
29
+ private router;
30
+ private storage;
31
+ private telemetry;
32
+ private modelRouter;
33
+ private readonly tools;
34
+ useProvider(provider: OpenAICompatibleProviderConfig): this;
35
+ useModel(model: string): this;
36
+ useSystemPrompt(prompt: string): this;
37
+ useTool(tool: AgentTool | AgentToolRegistration): this;
38
+ useTools(tools: Array<AgentTool | AgentToolRegistration>): this;
39
+ useRouter(router: ToolRouter): this;
40
+ useTrace(trace: (event: ToolTraceEvent) => void): this;
41
+ useStorage(storage: NexaStorage): this;
42
+ useTelemetry(telemetry: NexaTelemetry): this;
43
+ useModelRouter(router: ModelRouter): this;
44
+ useConsoleTrace(enabled?: boolean): this;
45
+ build(): Promise<OpenAICompatibleAgent>;
46
+ buildCLI(input?: {
47
+ loadedEnvLabel?: string;
48
+ commands?: Array<{
49
+ tool?: AgentTool | ToolDefinition;
50
+ toolId?: string;
51
+ commands: ConsoleToolRegistration["commands"];
52
+ }>;
53
+ }): Promise<OpenAICompatibleConsoleAgent>;
54
+ private toAgentOptions;
55
+ private requireProvider;
56
+ }
57
+ export declare function createAgentBuilder(): AgentBuilder;
58
+ export declare function createAgent(): AgentBuilder;
59
+ export declare function createAgent(options: OpenAICompatibleAgentOptions): Promise<OpenAICompatibleAgent>;
60
+ //# sourceMappingURL=agent-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-builder.d.ts","sourceRoot":"","sources":["../src/agent-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { createOpenAICompatibleAgent } from "./openai-agent.js";
2
+ import { createAgentCLI, createConsoleTraceRenderer } from "./console-chat.js";
3
+ export class AgentTool {
4
+ asRegistration() {
5
+ return {
6
+ tool: this.definition,
7
+ handler: (input, context) => this.execute(input, context)
8
+ };
9
+ }
10
+ asConsoleRegistration(commands = []) {
11
+ return {
12
+ ...this.asRegistration(),
13
+ commands
14
+ };
15
+ }
16
+ }
17
+ export class FunctionTool extends AgentTool {
18
+ definition;
19
+ handler;
20
+ constructor(definition, handler) {
21
+ super();
22
+ this.definition = definition;
23
+ this.handler = handler;
24
+ }
25
+ execute(input, context) {
26
+ return this.handler(input, context);
27
+ }
28
+ }
29
+ export function defineTool(definition, handler) {
30
+ return new FunctionTool(definition, handler);
31
+ }
32
+ export class AgentBuilder {
33
+ providerConfig;
34
+ modelId;
35
+ prompt;
36
+ traceHandler;
37
+ router;
38
+ storage;
39
+ telemetry;
40
+ modelRouter;
41
+ tools = [];
42
+ useProvider(provider) {
43
+ this.providerConfig = provider;
44
+ return this;
45
+ }
46
+ useModel(model) {
47
+ if (model)
48
+ this.modelId = model;
49
+ return this;
50
+ }
51
+ useSystemPrompt(prompt) {
52
+ this.prompt = prompt;
53
+ return this;
54
+ }
55
+ useTool(tool) {
56
+ this.tools.push("asRegistration" in tool ? tool.asRegistration() : tool);
57
+ return this;
58
+ }
59
+ useTools(tools) {
60
+ for (const tool of tools)
61
+ this.useTool(tool);
62
+ return this;
63
+ }
64
+ useRouter(router) {
65
+ this.router = router;
66
+ return this;
67
+ }
68
+ useTrace(trace) {
69
+ this.traceHandler = trace;
70
+ return this;
71
+ }
72
+ useStorage(storage) {
73
+ this.storage = storage;
74
+ return this;
75
+ }
76
+ useTelemetry(telemetry) {
77
+ this.telemetry = telemetry;
78
+ return this;
79
+ }
80
+ useModelRouter(router) {
81
+ this.modelRouter = router;
82
+ return this;
83
+ }
84
+ useConsoleTrace(enabled = true) {
85
+ this.traceHandler = createConsoleTraceRenderer(enabled);
86
+ return this;
87
+ }
88
+ async build() {
89
+ return createOpenAICompatibleAgent(this.toAgentOptions());
90
+ }
91
+ async buildCLI(input = {}) {
92
+ const provider = this.requireProvider();
93
+ const consoleTools = this.tools.map((registration) => {
94
+ const commandConfig = input.commands?.find((item) => commandToolId(item) === registration.tool.id);
95
+ return {
96
+ ...registration,
97
+ ...(commandConfig?.commands ? { commands: commandConfig.commands } : {})
98
+ };
99
+ });
100
+ return createAgentCLI({
101
+ provider,
102
+ tools: consoleTools,
103
+ ...(this.modelId ? { model: this.modelId } : {}),
104
+ ...(input.loadedEnvLabel ? { loadedEnvLabel: input.loadedEnvLabel } : {}),
105
+ ...(this.prompt ? { systemPrompt: this.prompt } : {}),
106
+ trace: Boolean(this.traceHandler)
107
+ });
108
+ }
109
+ toAgentOptions() {
110
+ return {
111
+ provider: this.requireProvider(),
112
+ tools: this.tools,
113
+ ...(this.modelId ? { model: this.modelId } : {}),
114
+ ...(this.prompt ? { systemPrompt: this.prompt } : {}),
115
+ ...(this.traceHandler ? { trace: this.traceHandler } : {}),
116
+ ...(this.router ? { toolRouter: this.router } : {}),
117
+ ...(this.storage ? { storage: this.storage } : {}),
118
+ ...(this.telemetry ? { telemetry: this.telemetry } : {}),
119
+ ...(this.modelRouter ? { modelRouter: this.modelRouter } : {})
120
+ };
121
+ }
122
+ requireProvider() {
123
+ if (!this.providerConfig)
124
+ throw new Error("AgentBuilder needs a provider. Call useProvider(...) before build().");
125
+ return this.providerConfig;
126
+ }
127
+ }
128
+ function commandToolId(input) {
129
+ if (input.toolId)
130
+ return input.toolId;
131
+ if (!input.tool)
132
+ return undefined;
133
+ return "definition" in input.tool ? input.tool.definition.id : input.tool.id;
134
+ }
135
+ export function createAgentBuilder() {
136
+ return new AgentBuilder();
137
+ }
138
+ export function createAgent(options) {
139
+ return options ? createOpenAICompatibleAgent(options) : createAgentBuilder();
140
+ }
141
+ //# sourceMappingURL=agent-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../src/agent-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { JsonObject } from "./types.js";
2
+ import type { ApprovalStore } from "./storage.js";
3
+ export type ApprovalRisk = "SAFE_READ" | "LOCAL_WRITE" | "EXTERNAL_WRITE" | "INSTALL_DEPENDENCY" | "CREDENTIAL_ACCESS" | "ACCOUNT_CONNECTION" | "SENSITIVE_DATA" | "DESTRUCTIVE" | "FINANCIAL" | "PRIVILEGED_EXECUTION";
4
+ export type ApprovalStatus = "pending" | "approved" | "denied" | "expired";
5
+ export type ApprovalRequest = {
6
+ id: string;
7
+ risk: ApprovalRisk;
8
+ reason: string;
9
+ toolId?: string;
10
+ taskId?: string;
11
+ runId?: string;
12
+ stepId?: string;
13
+ metadata: JsonObject;
14
+ status: ApprovalStatus;
15
+ createdAt: string;
16
+ resolvedAt?: string;
17
+ };
18
+ export declare class ApprovalRequiredError extends Error {
19
+ readonly approvalId: string;
20
+ constructor(message: string, approvalId: string);
21
+ }
22
+ export declare class ApprovalManager {
23
+ private readonly store?;
24
+ private readonly approvals;
25
+ constructor(store?: ApprovalStore | undefined);
26
+ request(input: Omit<ApprovalRequest, "id" | "status" | "createdAt" | "metadata"> & {
27
+ metadata?: JsonObject;
28
+ }): ApprovalRequest;
29
+ resolve(id: string, status: "approved" | "denied"): ApprovalRequest;
30
+ get(id: string): Promise<ApprovalRequest | undefined>;
31
+ list(status?: ApprovalStatus): Promise<ApprovalRequest[]>;
32
+ resume(id: string): Promise<ApprovalRequest>;
33
+ }
34
+ //# sourceMappingURL=approvals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,GAChB,aAAa,GACb,WAAW,GACX,sBAAsB,CAAC;AAE3B,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,KAAK;IAG5C,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAD3B,OAAO,EAAE,MAAM,EACN,UAAU,EAAE,MAAM;CAK9B;AAED,qBAAa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAFnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;gBAEnC,KAAK,CAAC,EAAE,aAAa,YAAA;IAElD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe;IAa9H,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,eAAe;IAS7D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAIrD,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAMzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAMnD"}
@@ -0,0 +1,54 @@
1
+ export class ApprovalRequiredError extends Error {
2
+ approvalId;
3
+ constructor(message, approvalId) {
4
+ super(message);
5
+ this.approvalId = approvalId;
6
+ this.name = "ApprovalRequiredError";
7
+ }
8
+ }
9
+ export class ApprovalManager {
10
+ store;
11
+ approvals = new Map();
12
+ constructor(store) {
13
+ this.store = store;
14
+ }
15
+ request(input) {
16
+ const approval = {
17
+ ...input,
18
+ id: crypto.randomUUID(),
19
+ status: "pending",
20
+ metadata: input.metadata ?? {},
21
+ createdAt: new Date().toISOString()
22
+ };
23
+ this.approvals.set(approval.id, approval);
24
+ void this.store?.saveApproval(approval);
25
+ return approval;
26
+ }
27
+ resolve(id, status) {
28
+ const approval = this.approvals.get(id);
29
+ if (!approval)
30
+ throw new Error(`Approval not found: ${id}`);
31
+ const resolved = { ...approval, status, resolvedAt: new Date().toISOString() };
32
+ this.approvals.set(id, resolved);
33
+ void this.store?.saveApproval(resolved);
34
+ return resolved;
35
+ }
36
+ async get(id) {
37
+ return this.approvals.get(id) ?? await this.store?.getApproval(id);
38
+ }
39
+ async list(status) {
40
+ const stored = await this.store?.listApprovals(status);
41
+ if (stored)
42
+ return stored;
43
+ return [...this.approvals.values()].filter((approval) => !status || approval.status === status);
44
+ }
45
+ async resume(id) {
46
+ const approval = await this.get(id);
47
+ if (!approval)
48
+ throw new Error(`Approval not found: ${id}`);
49
+ if (approval.status !== "approved")
50
+ throw new ApprovalRequiredError(`Approval is not resolved as approved: ${id}`, id);
51
+ return approval;
52
+ }
53
+ }
54
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AA+BA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAGnC;IAFX,YACE,OAAe,EACN,UAAkB;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,eAAU,GAAV,UAAU,CAAQ;QAG3B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IAGG;IAFZ,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEhE,YAA6B,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;IAAG,CAAC;IAEtD,OAAO,CAAC,KAAoG;QAC1G,MAAM,QAAQ,GAAoB;YAChC,GAAG,KAAK;YACR,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;YAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,MAA6B;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAuB;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAClG,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU;YAAE,MAAM,IAAI,qBAAqB,CAAC,yCAAyC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { ToolExecutionResult } from "./tool-registry.js";
2
+ import type { AgentMessageResult } from "./openai-agent.js";
3
+ export type ArtifactKind = "file" | "image" | "report" | "json" | "code" | "spreadsheet" | "chart" | "document" | "ui";
4
+ export type Artifact = {
5
+ type: ArtifactKind;
6
+ name: string;
7
+ toolId?: string;
8
+ mimeType?: string;
9
+ uri?: string;
10
+ };
11
+ export declare function artifactsFromToolResult(toolId: string, result: ToolExecutionResult): Artifact[];
12
+ export declare function artifactsFromRunResult(result: Pick<AgentMessageResult, "toolTurn" | "nativeToolTurn">): Artifact[];
13
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;AAEvH,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,QAAQ,EAAE,CAK/F;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAIlH"}
@@ -0,0 +1,13 @@
1
+ export function artifactsFromToolResult(toolId, result) {
2
+ if (result.status !== "ok")
3
+ return [];
4
+ return (result.evidence ?? [])
5
+ .filter((item) => item.kind === "artifact")
6
+ .map((item) => ({ type: "file", name: item.summary, toolId, ...(item.uri ? { uri: item.uri } : {}) }));
7
+ }
8
+ export function artifactsFromRunResult(result) {
9
+ const fromTransparent = result.toolTurn.results.flatMap((entry) => artifactsFromToolResult(entry.tool.id, entry.result));
10
+ const fromNative = (result.nativeToolTurn?.toolResults ?? []).flatMap((entry) => artifactsFromToolResult(entry.tool.id, entry.result));
11
+ return [...fromTransparent, ...fromNative];
12
+ }
13
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,MAA2B;IACjF,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC3B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;SAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA+D;IACpG,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACzH,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACvI,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,UAAU,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,17 @@
1
+ export type Cache = {
2
+ get<T = unknown>(key: string): T | undefined;
3
+ set<T = unknown>(key: string, value: T, ttlMs?: number): void;
4
+ has(key: string): boolean;
5
+ delete(key: string): void;
6
+ clear(): void;
7
+ };
8
+ export declare class InMemoryCache implements Cache {
9
+ private readonly entries;
10
+ get<T = unknown>(key: string): T | undefined;
11
+ set<T = unknown>(key: string, value: T, ttlMs?: number): void;
12
+ has(key: string): boolean;
13
+ delete(key: string): void;
14
+ clear(): void;
15
+ }
16
+ export declare function createInMemoryCache(): InMemoryCache;
17
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAIF,qBAAa,aAAc,YAAW,KAAK;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAElE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAU5C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD"}
package/dist/cache.js ADDED
@@ -0,0 +1,29 @@
1
+ export class InMemoryCache {
2
+ entries = new Map();
3
+ get(key) {
4
+ const entry = this.entries.get(key);
5
+ if (!entry)
6
+ return undefined;
7
+ if (entry.expiresAt !== undefined && entry.expiresAt < Date.now()) {
8
+ this.entries.delete(key);
9
+ return undefined;
10
+ }
11
+ return entry.value;
12
+ }
13
+ set(key, value, ttlMs) {
14
+ this.entries.set(key, { value, ...(ttlMs ? { expiresAt: Date.now() + ttlMs } : {}) });
15
+ }
16
+ has(key) {
17
+ return this.get(key) !== undefined;
18
+ }
19
+ delete(key) {
20
+ this.entries.delete(key);
21
+ }
22
+ clear() {
23
+ this.entries.clear();
24
+ }
25
+ }
26
+ export function createInMemoryCache() {
27
+ return new InMemoryCache();
28
+ }
29
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,aAAa;IACP,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IAElE,GAAG,CAAc,GAAW;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,KAAU,CAAC;IAC1B,CAAC;IAED,GAAG,CAAc,GAAW,EAAE,KAAQ,EAAE,KAAc;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,aAAa,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AgentObservation, CompletionDecision, SuccessCriterion } from "./types.js";
2
+ export declare class CompletionGate {
3
+ evaluate(criteria: SuccessCriterion[], observations: AgentObservation[]): CompletionDecision;
4
+ }
5
+ //# sourceMappingURL=completion-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-gate.d.ts","sourceRoot":"","sources":["../src/completion-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAEjH,qBAAa,cAAc;IACzB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,kBAAkB;CAkB7F"}
@@ -0,0 +1,20 @@
1
+ export class CompletionGate {
2
+ evaluate(criteria, observations) {
3
+ const evidence = observations.flatMap((observation) => observation.evidence);
4
+ const evaluations = criteria.map((criterion) => {
5
+ const matches = evidence.filter((item) => criterion.requiredEvidence.length === 0 || criterion.requiredEvidence.some((requirement) => requirement.kind === item.kind));
6
+ const status = matches.length > 0 ? "SATISFIED" : criterion.required ? "UNKNOWN" : "UNSATISFIED";
7
+ return {
8
+ criterionId: criterion.id,
9
+ status,
10
+ evidenceRefs: matches.map((item) => item.id),
11
+ reason: matches.length > 0 ? "Criterion is backed by normalized evidence." : "No sufficient evidence for this criterion."
12
+ };
13
+ });
14
+ const requiredOpen = evaluations.filter((item) => item.status !== "SATISFIED" && criteria.find((criterion) => criterion.id === item.criterionId)?.required);
15
+ if (requiredOpen.length)
16
+ return { type: "INCOMPLETE", criteria: evaluations, reason: "Required criteria are missing evidence." };
17
+ return { type: "COMPLETE", criteria: evaluations, reason: "All required criteria are satisfied." };
18
+ }
19
+ }
20
+ //# sourceMappingURL=completion-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-gate.js","sourceRoot":"","sources":["../src/completion-gate.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IACzB,QAAQ,CAAC,QAA4B,EAAE,YAAgC;QACrE,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CACtI,CAAC;YACF,MAAM,MAAM,GAA2B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YACzH,OAAO;gBACL,WAAW,EAAE,SAAS,CAAC,EAAE;gBACzB,MAAM;gBACN,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,4CAA4C;aAC1H,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5J,IAAI,YAAY,CAAC,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,yCAAyC,EAAE,CAAC;QACjI,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;IACrG,CAAC;CACF"}
@@ -0,0 +1,110 @@
1
+ import type { Writable } from "node:stream";
2
+ import type { NexaAgentSdk } from "./sdk.js";
3
+ import { OpenAICompatibleChatClient, type ChatMessage, type OpenAICompatibleProviderConfig } from "./openai-compatible.js";
4
+ import { type LocalToolHandler } from "./local-tool-executor.js";
5
+ import type { ToolDefinition, ToolExecutionResult } from "./tool-registry.js";
6
+ import type { JsonObject } from "./types.js";
7
+ import type { AgentMessageResult } from "./openai-agent.js";
8
+ import type { ToolTraceEvent } from "./tool-orchestrator.js";
9
+ export type ConsoleCommandContext = {
10
+ sdk: NexaAgentSdk;
11
+ messages: ChatMessage[];
12
+ write(line?: string): void;
13
+ };
14
+ export type ConsoleCommand = {
15
+ name: string;
16
+ description: string;
17
+ run(context: ConsoleCommandContext): Promise<"continue" | "exit"> | "continue" | "exit";
18
+ };
19
+ export type ConsoleChatIntegrationOptions = {
20
+ sdk: NexaAgentSdk;
21
+ client: OpenAICompatibleChatClient;
22
+ providerId: string;
23
+ model: string;
24
+ providerLabel?: string;
25
+ baseUrl?: string;
26
+ loadedEnvLabel?: string;
27
+ systemPrompt?: string;
28
+ trace?: boolean;
29
+ commands?: ConsoleCommand[];
30
+ };
31
+ export type ConsoleToolRegistration = {
32
+ tool: ToolDefinition;
33
+ handler: LocalToolHandler;
34
+ commands?: Array<{
35
+ name: string;
36
+ description: string;
37
+ input?: Record<string, unknown>;
38
+ }>;
39
+ };
40
+ export type OpenAICompatibleConsoleAgentOptions = {
41
+ provider: OpenAICompatibleProviderConfig;
42
+ tools?: ConsoleToolRegistration[];
43
+ model?: string;
44
+ loadedEnvLabel?: string;
45
+ systemPrompt?: string;
46
+ trace?: boolean;
47
+ };
48
+ export type OpenAICompatibleConsoleAgent = {
49
+ sdk: NexaAgentSdk;
50
+ client: OpenAICompatibleChatClient;
51
+ console: ConsoleChatIntegration;
52
+ model: string;
53
+ runMessage(text: string, messages?: ChatMessage[]): Promise<{
54
+ text: string;
55
+ messages: ChatMessage[];
56
+ toolTurn: Awaited<ReturnType<NexaAgentSdk["prepareTurnWithTools"]>>["toolTurn"];
57
+ }>;
58
+ streamMessage(text: string, input?: {
59
+ messages?: ChatMessage[];
60
+ onStatus?: (label: string, detail?: string) => void;
61
+ onToken?: (token: string) => void;
62
+ }): Promise<AgentMessageResult>;
63
+ run(options?: ConsoleRunOptions): Promise<void>;
64
+ };
65
+ export type ConsoleRunOptions = {
66
+ input?: NodeJS.ReadStream;
67
+ output?: NodeJS.WriteStream;
68
+ };
69
+ export declare class PremiumConsoleRenderer {
70
+ private readonly output;
71
+ constructor(output?: Writable);
72
+ header(input: {
73
+ loadedEnvLabel?: string;
74
+ providerId: string;
75
+ baseUrl?: string;
76
+ model: string;
77
+ commands: ConsoleCommand[];
78
+ trace: boolean;
79
+ }): void;
80
+ prompt(): string;
81
+ status(label: string, detail?: string): void;
82
+ trace(event: ToolTraceEvent): void;
83
+ assistantStart(): void;
84
+ token(text: string): void;
85
+ assistantEnd(): void;
86
+ toolResult(toolId: string, result: ToolExecutionResult): void;
87
+ line(text?: string): void;
88
+ write(text: string): void;
89
+ }
90
+ export declare class ConsoleChatIntegration {
91
+ private readonly options;
92
+ private readonly renderer;
93
+ private readonly commands;
94
+ private readonly messages;
95
+ constructor(options: ConsoleChatIntegrationOptions);
96
+ trace(event: ToolTraceEvent): void;
97
+ run(runOptions?: ConsoleRunOptions): Promise<void>;
98
+ answer(text: string): Promise<string>;
99
+ }
100
+ export declare function createConsoleChatIntegration(options: ConsoleChatIntegrationOptions): ConsoleChatIntegration;
101
+ export declare function createOpenAICompatibleConsoleAgent(options: OpenAICompatibleConsoleAgentOptions): Promise<OpenAICompatibleConsoleAgent>;
102
+ export declare const createAgentCLI: typeof createOpenAICompatibleConsoleAgent;
103
+ export declare function createConsoleTraceRenderer(enabled?: boolean): (event: ToolTraceEvent) => void;
104
+ export declare function createToolCommand(input: {
105
+ name: string;
106
+ description: string;
107
+ toolId: string;
108
+ input?: JsonObject;
109
+ }): ConsoleCommand;
110
+ //# sourceMappingURL=console-chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-chat.d.ts","sourceRoot":"","sources":["../src/console-chat.ts"],"names":[],"mappings":"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"}