orbitx 0.3.0 → 0.3.2

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 (83) hide show
  1. package/dist/core/ai-ask.d.ts +28 -0
  2. package/dist/core/ai-ask.d.ts.map +1 -0
  3. package/dist/core/ai-ask.js +80 -0
  4. package/dist/core/ai-ask.js.map +1 -0
  5. package/dist/core/mcp-auto-execution-policy.d.ts +22 -0
  6. package/dist/core/mcp-auto-execution-policy.d.ts.map +1 -0
  7. package/dist/core/mcp-auto-execution-policy.js +85 -0
  8. package/dist/core/mcp-auto-execution-policy.js.map +1 -0
  9. package/dist/core/stateless-agent.d.ts +30 -0
  10. package/dist/core/stateless-agent.d.ts.map +1 -0
  11. package/dist/core/stateless-agent.js +79 -0
  12. package/dist/core/stateless-agent.js.map +1 -0
  13. package/dist/index.d.ts +6 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +3 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/tests/core/ai-ask.test.d.ts +2 -0
  18. package/dist/tests/core/ai-ask.test.d.ts.map +1 -0
  19. package/dist/tests/core/ai-ask.test.js +101 -0
  20. package/dist/tests/core/ai-ask.test.js.map +1 -0
  21. package/dist/tests/core/mcp-auto-execution-policy.test.d.ts +2 -0
  22. package/dist/tests/core/mcp-auto-execution-policy.test.d.ts.map +1 -0
  23. package/dist/tests/core/mcp-auto-execution-policy.test.js +107 -0
  24. package/dist/tests/core/mcp-auto-execution-policy.test.js.map +1 -0
  25. package/dist/tests/core/stateless-agent.test.d.ts +2 -0
  26. package/dist/tests/core/stateless-agent.test.d.ts.map +1 -0
  27. package/dist/tests/core/stateless-agent.test.js +73 -0
  28. package/dist/tests/core/stateless-agent.test.js.map +1 -0
  29. package/dist/tests/index.d.ts +3 -0
  30. package/dist/tests/index.d.ts.map +1 -1
  31. package/dist/tests/index.js +3 -0
  32. package/dist/tests/index.js.map +1 -1
  33. package/docs/agents.md +77 -1
  34. package/docs/mcp-architecture.md +42 -0
  35. package/package.json +1 -1
  36. package/dist/core/image-describer.d.ts +0 -19
  37. package/dist/core/image-describer.d.ts.map +0 -1
  38. package/dist/core/image-describer.js +0 -37
  39. package/dist/core/image-describer.js.map +0 -1
  40. package/dist/core/worker-agent.d.ts +0 -43
  41. package/dist/core/worker-agent.d.ts.map +0 -1
  42. package/dist/core/worker-agent.js +0 -40
  43. package/dist/core/worker-agent.js.map +0 -1
  44. package/dist/skills/shopping.d.ts +0 -4
  45. package/dist/skills/shopping.d.ts.map +0 -1
  46. package/dist/skills/shopping.js +0 -71
  47. package/dist/skills/shopping.js.map +0 -1
  48. package/dist/tools/agent/interaction.d.ts +0 -25
  49. package/dist/tools/agent/interaction.d.ts.map +0 -1
  50. package/dist/tools/agent/interaction.js +0 -14
  51. package/dist/tools/agent/interaction.js.map +0 -1
  52. package/dist/tools/agent/list.d.ts +0 -5
  53. package/dist/tools/agent/list.d.ts.map +0 -1
  54. package/dist/tools/agent/list.js +0 -16
  55. package/dist/tools/agent/list.js.map +0 -1
  56. package/dist/tools/agent/report.d.ts +0 -12
  57. package/dist/tools/agent/report.d.ts.map +0 -1
  58. package/dist/tools/agent/report.js +0 -31
  59. package/dist/tools/agent/report.js.map +0 -1
  60. package/dist/tools/bash/interaction.d.ts +0 -29
  61. package/dist/tools/bash/interaction.d.ts.map +0 -1
  62. package/dist/tools/bash/interaction.js +0 -13
  63. package/dist/tools/bash/interaction.js.map +0 -1
  64. package/dist/tools/browser/interaction.d.ts +0 -49
  65. package/dist/tools/browser/interaction.d.ts.map +0 -1
  66. package/dist/tools/browser/interaction.js +0 -14
  67. package/dist/tools/browser/interaction.js.map +0 -1
  68. package/dist/tools/fs/interaction.d.ts +0 -37
  69. package/dist/tools/fs/interaction.d.ts.map +0 -1
  70. package/dist/tools/fs/interaction.js +0 -13
  71. package/dist/tools/fs/interaction.js.map +0 -1
  72. package/dist/tools/present/interaction.d.ts +0 -17
  73. package/dist/tools/present/interaction.d.ts.map +0 -1
  74. package/dist/tools/present/interaction.js +0 -15
  75. package/dist/tools/present/interaction.js.map +0 -1
  76. package/dist/tools/question-answer/interaction.d.ts +0 -14
  77. package/dist/tools/question-answer/interaction.d.ts.map +0 -1
  78. package/dist/tools/question-answer/interaction.js +0 -13
  79. package/dist/tools/question-answer/interaction.js.map +0 -1
  80. package/dist/tools/todo/interaction.d.ts +0 -30
  81. package/dist/tools/todo/interaction.d.ts.map +0 -1
  82. package/dist/tools/todo/interaction.js +0 -13
  83. package/dist/tools/todo/interaction.js.map +0 -1
@@ -0,0 +1,28 @@
1
+ import type { AgentProvidersInput } from "./agent-providers.js";
2
+ import type { MessageUsage } from "./ai-provider.js";
3
+ export interface AIAskOutputField {
4
+ name: string;
5
+ type: "number" | "string" | "boolean" | "object" | "array";
6
+ description: string;
7
+ required?: boolean;
8
+ }
9
+ export type AIAskOutputStructure = AIAskOutputField[];
10
+ export interface AIAskProps {
11
+ instruction: string;
12
+ aiModel: AgentProvidersInput;
13
+ outputStructure: AIAskOutputStructure;
14
+ }
15
+ export interface AIAskResult {
16
+ output: Record<string, any>;
17
+ valid: boolean;
18
+ errors?: string[];
19
+ attempts: number;
20
+ usage: MessageUsage[];
21
+ }
22
+ export declare class AIASK {
23
+ #private;
24
+ constructor({ instruction, aiModel, outputStructure }: AIAskProps);
25
+ run(input: string): Promise<AIAskResult>;
26
+ }
27
+ export default AIASK;
28
+ //# sourceMappingURL=ai-ask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-ask.d.ts","sourceRoot":"","sources":["../../src/core/ai-ask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAOrD,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,EAAE,CAAC;AAEtD,MAAM,WAAW,UAAU;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,eAAe,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;CACzB;AAuBD,qBAAa,KAAK;;gBAKF,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,UAAU;IAM3D,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAsDjD;AAED,eAAe,KAAK,CAAC"}
@@ -0,0 +1,80 @@
1
+ import MCPTool from "./mcp.js";
2
+ import MCPClient from "./mcp-client.js";
3
+ import MCPConnection from "./mcp-connection.js";
4
+ import MCPServer from "./mcp-server.js";
5
+ import { StatelessAgent } from "./stateless-agent.js";
6
+ const OUTPUT_TOOL_NAME = "submit_answer";
7
+ const MAX_ATTEMPTS = 3;
8
+ function validate(output, structure) {
9
+ const errors = [];
10
+ for (const field of structure) {
11
+ const value = output[field.name];
12
+ if (value === undefined) {
13
+ if (field.required !== false)
14
+ errors.push(`missing required field "${field.name}"`);
15
+ continue;
16
+ }
17
+ const matches = field.type === "array" ? Array.isArray(value)
18
+ : field.type === "object" ? (typeof value === "object" && value !== null && !Array.isArray(value))
19
+ : typeof value === field.type;
20
+ if (!matches) {
21
+ errors.push(`field "${field.name}" should be ${field.type}, got ${Array.isArray(value) ? "array" : typeof value}`);
22
+ }
23
+ }
24
+ return errors;
25
+ }
26
+ export class AIASK {
27
+ #instruction;
28
+ #aiModel;
29
+ #outputStructure;
30
+ constructor({ instruction, aiModel, outputStructure }) {
31
+ this.#instruction = instruction;
32
+ this.#aiModel = aiModel;
33
+ this.#outputStructure = outputStructure;
34
+ }
35
+ async run(input) {
36
+ let captured;
37
+ const submitTool = new MCPTool({
38
+ name: OUTPUT_TOOL_NAME,
39
+ description: "Submit your final answer in the exact structure requested. Call this exactly once you have the answer — do not reply in plain text.",
40
+ inputs: this.#outputStructure.map(f => ({ name: f.name, type: f.type, description: f.description, required: f.required })),
41
+ execute: async (_envID, inputs) => {
42
+ captured = inputs;
43
+ return inputs;
44
+ },
45
+ });
46
+ const conn = new MCPConnection();
47
+ const mcpServer = new MCPServer(conn);
48
+ mcpServer.registerTool(submitTool);
49
+ const mcpClient = new MCPClient("AI_ASK", conn);
50
+ const agent = new StatelessAgent({
51
+ instruction: this.#instruction,
52
+ aiProvider: this.#aiModel,
53
+ mcpClient,
54
+ allowedTools: [submitTool],
55
+ });
56
+ const usage = [];
57
+ let errors = [];
58
+ let lastOutput = {};
59
+ for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
60
+ captured = undefined;
61
+ const prompt = errors.length === 0
62
+ ? input
63
+ : `${input}\n\nYour previous "${OUTPUT_TOOL_NAME}" call was rejected:\n${errors.map(e => `- ${e}`).join("\n")}\n\nCall "${OUTPUT_TOOL_NAME}" again with a corrected answer.`;
64
+ const result = await agent.run(prompt);
65
+ usage.push(...result.usage);
66
+ if (captured === undefined) {
67
+ errors = [`"${OUTPUT_TOOL_NAME}" was not called — replied with plain text instead: ${JSON.stringify(result.content)}`];
68
+ continue;
69
+ }
70
+ lastOutput = captured;
71
+ errors = validate(captured, this.#outputStructure);
72
+ if (errors.length === 0) {
73
+ return { output: lastOutput, valid: true, attempts: attempt, usage };
74
+ }
75
+ }
76
+ return { output: lastOutput, valid: false, errors, attempts: MAX_ATTEMPTS, usage };
77
+ }
78
+ }
79
+ export default AIASK;
80
+ //# sourceMappingURL=ai-ask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-ask.js","sourceRoot":"","sources":["../../src/core/ai-ask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { AgentProvidersInput } from "./agent-providers.js";
2
+ import { MCPExecutionPolicy, type MCPToolCallRequest } from "./mcp-execution-policy.js";
3
+ export interface MCPAutoExecutionPolicyVerdict {
4
+ harmful: boolean;
5
+ reason: string;
6
+ }
7
+ export interface MCPAutoExecutionPolicyProps {
8
+ aiModel: AgentProvidersInput;
9
+ instruction?: string;
10
+ onVerdict?: (request: MCPToolCallRequest, verdict: MCPAutoExecutionPolicyVerdict) => void;
11
+ watchedTools?: string[];
12
+ scopeDir?: string;
13
+ }
14
+ export declare class MCPAutoExecutionPolicy extends MCPExecutionPolicy {
15
+ #private;
16
+ constructor({ aiModel, instruction, onVerdict, watchedTools, scopeDir }: MCPAutoExecutionPolicyProps);
17
+ authorize(request: MCPToolCallRequest): Promise<boolean>;
18
+ getVerdict(toolCallId: string): MCPAutoExecutionPolicyVerdict | undefined;
19
+ getLastVerdict(): MCPAutoExecutionPolicyVerdict | undefined;
20
+ }
21
+ export default MCPAutoExecutionPolicy;
22
+ //# sourceMappingURL=mcp-auto-execution-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-auto-execution-policy.d.ts","sourceRoot":"","sources":["../../src/core/mcp-auto-execution-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAExF,MAAM,WAAW,6BAA6B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC1F,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AA6BD,qBAAa,sBAAuB,SAAQ,kBAAkB;;gBAQ9C,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAoC,EAAE,QAAQ,EAAE,EAAE,2BAA2B;IAgCtH,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB9D,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,6BAA6B,GAAG,SAAS;IAIzE,cAAc,IAAI,6BAA6B,GAAG,SAAS;CAG9D;AAED,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { resolve, relative, isAbsolute } from "path";
2
+ import { AIASK } from "./ai-ask.js";
3
+ import { MCPExecutionPolicy } from "./mcp-execution-policy.js";
4
+ const DEFAULT_WATCHED_TOOLS = ["bash-run", "fs-write-file", "fs-edit-file", "fs-delete", "fs-move"];
5
+ const FS_PATH_FIELDS = {
6
+ "fs-write-file": ["path"],
7
+ "fs-edit-file": ["path"],
8
+ "fs-delete": ["path"],
9
+ "fs-move": ["from", "to"],
10
+ };
11
+ const DEFAULT_INSTRUCTION = "You are a safety supervisor reviewing a single tool call an AI agent is about to make, before it's allowed to run. Determine whether executing it, as-is, would cause harm — destructive or irreversible action, data loss, security compromise, exfiltrating secrets — or otherwise clearly goes against reasonable user intent. Judge only this one call: assume ordinary, legitimate agent use unless the tool name or its inputs are themselves clearly dangerous. Note: file content is intentionally omitted from write/edit calls to keep this check cheap — judge those by path and surrounding inputs alone.";
12
+ function isWithinScope(scopeDir, rawPath) {
13
+ const target = resolve(process.cwd(), rawPath);
14
+ const rel = relative(scopeDir, target);
15
+ return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
16
+ }
17
+ function redactContent(inputs) {
18
+ const redacted = {};
19
+ for (const [key, value] of Object.entries(inputs)) {
20
+ redacted[key] = key === "content" && typeof value === "string"
21
+ ? `<omitted, ${Buffer.byteLength(value, "utf-8")} bytes>`
22
+ : value;
23
+ }
24
+ return redacted;
25
+ }
26
+ export class MCPAutoExecutionPolicy extends MCPExecutionPolicy {
27
+ #ask;
28
+ #onVerdict;
29
+ #watchedTools;
30
+ #scopeDir;
31
+ #verdicts = new Map();
32
+ #lastVerdict;
33
+ constructor({ aiModel, instruction, onVerdict, watchedTools = DEFAULT_WATCHED_TOOLS, scopeDir }) {
34
+ super();
35
+ this.#ask = new AIASK({
36
+ aiModel,
37
+ instruction: instruction ? `${DEFAULT_INSTRUCTION}\n\n${instruction}` : DEFAULT_INSTRUCTION,
38
+ outputStructure: [
39
+ { name: "harmful", type: "boolean", description: "true if executing this tool call would cause harm or clearly goes against reasonable user intent" },
40
+ { name: "reason", type: "string", description: "brief justification for the verdict" },
41
+ ],
42
+ });
43
+ this.#onVerdict = onVerdict;
44
+ this.#watchedTools = new Set(watchedTools);
45
+ this.#scopeDir = resolve(process.cwd(), scopeDir ?? ".");
46
+ }
47
+ #record(request, verdict) {
48
+ this.#lastVerdict = verdict;
49
+ if (request.toolCallId)
50
+ this.#verdicts.set(request.toolCallId, verdict);
51
+ this.#onVerdict?.(request, verdict);
52
+ }
53
+ async #askModel(request) {
54
+ const result = await this.#ask.run(`tool: ${request.toolName}\ninputs: ${JSON.stringify(redactContent(request.inputs))}`);
55
+ const verdict = result.valid
56
+ ? { harmful: !!result.output.harmful, reason: String(result.output.reason ?? "") }
57
+ : { harmful: true, reason: `safety check failed to produce a valid verdict after retries: ${result.errors?.join("; ") ?? "unknown error"}` };
58
+ this.#record(request, verdict);
59
+ return !verdict.harmful;
60
+ }
61
+ async authorize(request) {
62
+ if (!this.#watchedTools.has(request.toolName)) {
63
+ return true;
64
+ }
65
+ const pathFields = FS_PATH_FIELDS[request.toolName];
66
+ if (pathFields) {
67
+ const paths = pathFields
68
+ .map(field => request.inputs[field])
69
+ .filter((v) => typeof v === "string" && v.length > 0);
70
+ if (paths.length === pathFields.length && paths.every(p => isWithinScope(this.#scopeDir, p))) {
71
+ this.#record(request, { harmful: false, reason: `path(s) resolve inside ${this.#scopeDir}, skipped model review` });
72
+ return true;
73
+ }
74
+ }
75
+ return this.#askModel(request);
76
+ }
77
+ getVerdict(toolCallId) {
78
+ return this.#verdicts.get(toolCallId);
79
+ }
80
+ getLastVerdict() {
81
+ return this.#lastVerdict;
82
+ }
83
+ }
84
+ export default MCPAutoExecutionPolicy;
85
+ //# sourceMappingURL=mcp-auto-execution-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-auto-execution-policy.js","sourceRoot":"","sources":["../../src/core/mcp-auto-execution-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAC;AAexF,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAEpG,MAAM,cAAc,GAA6B;IAC7C,eAAe,EAAE,CAAC,MAAM,CAAC;IACzB,cAAc,EAAE,CAAC,MAAM,CAAC;IACxB,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,mBAAmB,GAAG,ulBAAulB,CAAC;AAEpnB,SAAS,aAAa,CAAC,QAAgB,EAAE,OAAe;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CAAC,MAA2B;IAC9C,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC1D,CAAC,CAAC,aAAa,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS;YACzD,CAAC,CAAC,KAAK,CAAC;IAChB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,OAAO,sBAAuB,SAAQ,kBAAkB;IAC1D,IAAI,CAAQ;IACZ,UAAU,CAAiF;IAC3F,aAAa,CAAc;IAC3B,SAAS,CAAS;IAClB,SAAS,GAAG,IAAI,GAAG,EAAyC,CAAC;IAC7D,YAAY,CAAiC;IAE7C,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,qBAAqB,EAAE,QAAQ,EAA+B;QACxH,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC;YAClB,OAAO;YACP,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,mBAAmB,OAAO,WAAW,EAAE,CAAC,CAAC,CAAC,mBAAmB;YAC3F,eAAe,EAAE;gBACb,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kGAAkG,EAAE;gBACrJ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;aACzF;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,IAAI,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,OAA2B,EAAE,OAAsC;QACvE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,OAAO,CAAC,UAAU;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA2B;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,QAAQ,aAAa,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAE1H,MAAM,OAAO,GAAkC,MAAM,CAAC,KAAK;YACvD,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;YAClF,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,iEAAiE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,EAAE,CAAC;QAEjJ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA2B;QACvC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,UAAU;iBACnB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACnC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEvE,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,IAAI,CAAC,SAAS,wBAAwB,EAAE,CAAC,CAAC;gBACpH,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,UAAkB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;CACJ;AAED,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { Message, StreamCallback, MessageUsage } from "./ai-provider.js";
2
+ import type MCPClient from "./mcp-client.js";
3
+ import type MCPTool from "./mcp.js";
4
+ import { type AgentProvidersInput } from "./agent-providers.js";
5
+ export interface StatelessAgentProps {
6
+ instruction: string;
7
+ safetyPolicies?: string;
8
+ aiProvider: AgentProvidersInput;
9
+ mcpClient?: MCPClient;
10
+ allowedTools?: MCPTool[];
11
+ }
12
+ export interface DispatchedToolCall {
13
+ id: string;
14
+ name: string;
15
+ inputs: Record<string, any>;
16
+ resultText: string;
17
+ }
18
+ export interface StatelessAgentResult {
19
+ content: string;
20
+ toolCalls: DispatchedToolCall[];
21
+ usage: MessageUsage[];
22
+ messages: Message[];
23
+ }
24
+ export declare class StatelessAgent {
25
+ #private;
26
+ constructor({ instruction, safetyPolicies, aiProvider, mcpClient, allowedTools }: StatelessAgentProps);
27
+ run(input: string, streamCallback?: StreamCallback, previousMessages?: Message[]): Promise<StatelessAgentResult>;
28
+ }
29
+ export default StatelessAgent;
30
+ //# sourceMappingURL=stateless-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateless-agent.d.ts","sourceRoot":"","sources":["../../src/core/stateless-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,cAAc,EAA6C,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrI,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,EAAyB,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEvF,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,mBAAmB,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;;gBAOX,EAAE,WAAW,EAAE,cAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAiB,EAAE,EAAE,mBAAmB;IA0CzG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAoCzH;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { resolveAgentProviders } from "./agent-providers.js";
2
+ export class StatelessAgent {
3
+ #instruction;
4
+ #safetyPolicies;
5
+ #provider;
6
+ #mcpClient;
7
+ #allowedTools;
8
+ constructor({ instruction, safetyPolicies = "", aiProvider, mcpClient, allowedTools = [] }) {
9
+ if (allowedTools.length > 0 && !mcpClient) {
10
+ throw new Error("StatelessAgent: mcpClient is required when allowedTools is non-empty.");
11
+ }
12
+ this.#instruction = instruction;
13
+ this.#safetyPolicies = safetyPolicies;
14
+ this.#provider = resolveAgentProviders(aiProvider).getMain();
15
+ this.#mcpClient = mcpClient;
16
+ this.#allowedTools = allowedTools;
17
+ }
18
+ async #getToolSchemas() {
19
+ if (this.#allowedTools.length === 0 || !this.#mcpClient)
20
+ return [];
21
+ const allowedNames = new Set(this.#allowedTools.map(t => t.getOptions().name));
22
+ const tools = await this.#mcpClient.getTools();
23
+ return tools.filter(t => allowedNames.has(t.name));
24
+ }
25
+ async #dispatchTool(call) {
26
+ if (!this.#allowedTools.map(t => t.getOptions().name).includes(call.name)) {
27
+ return { ...call, resultText: `Error: tool "${call.name}" not found or not allowed.` };
28
+ }
29
+ try {
30
+ const output = await this.#mcpClient.callTool(call.name, call.inputs, call.id);
31
+ return { ...call, resultText: JSON.stringify(output.output) };
32
+ }
33
+ catch (err) {
34
+ return { ...call, resultText: `Error: ${err?.message ?? String(err)}` };
35
+ }
36
+ }
37
+ #usageEntry(chat) {
38
+ return {
39
+ type: "main",
40
+ model: this.#provider.getModel(),
41
+ unit: "tokens",
42
+ inputMissTokens: chat.inputMissTokens ?? 0,
43
+ inputCacheTokens: chat.inputCacheTokens ?? 0,
44
+ outputTokens: chat.outputTokens ?? 0,
45
+ };
46
+ }
47
+ async run(input, streamCallback, previousMessages) {
48
+ const tools = await this.#getToolSchemas();
49
+ const toolsArg = tools.length ? tools : undefined;
50
+ const messages = previousMessages
51
+ ? [...previousMessages, { role: "user", content: input }]
52
+ : [
53
+ { role: "system", content: this.#safetyPolicies },
54
+ { role: "system", content: this.#instruction },
55
+ { role: "user", content: input },
56
+ ];
57
+ const chat = await this.#provider.chat(messages, streamCallback, toolsArg);
58
+ const usage = [this.#usageEntry(chat)];
59
+ const requestedCalls = chat.toolCalls ?? [];
60
+ messages.push({
61
+ role: "assistant",
62
+ content: chat.content,
63
+ ...(requestedCalls.length ? { toolCalls: requestedCalls } : {}),
64
+ });
65
+ if (requestedCalls.length === 0) {
66
+ return { content: chat.content, toolCalls: [], usage, messages };
67
+ }
68
+ const dispatched = [];
69
+ for (const call of requestedCalls) {
70
+ dispatched.push(await this.#dispatchTool(call));
71
+ }
72
+ for (const result of dispatched) {
73
+ messages.push({ role: "tool", content: result.resultText, toolCallId: result.id, toolName: result.name });
74
+ }
75
+ return { content: chat.content, toolCalls: dispatched, usage, messages };
76
+ }
77
+ }
78
+ export default StatelessAgent;
79
+ //# sourceMappingURL=stateless-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateless-agent.js","sourceRoot":"","sources":["../../src/core/stateless-agent.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,10 @@ export { resolveThinkEffortLevel, clampThinkEffort } from "./core/think-effort.j
4
4
  export type { ThinkEffortLevel } from "./core/think-effort.js";
5
5
  export { BaseAgent } from "./core/base-agent.js";
6
6
  export type { ExtractedSegment, ParsedToolCall } from "./core/base-agent.js";
7
+ export { StatelessAgent } from "./core/stateless-agent.js";
8
+ export type { StatelessAgentProps, StatelessAgentResult, DispatchedToolCall } from "./core/stateless-agent.js";
9
+ export { AIASK } from "./core/ai-ask.js";
10
+ export type { AIAskProps, AIAskResult, AIAskOutputField, AIAskOutputStructure } from "./core/ai-ask.js";
7
11
  export { DeepSeekProvider } from "./core/deepseek-provider.js";
8
12
  export { OpenAIProvider } from "./core/openai-provider.js";
9
13
  export { AnthropicProvider } from "./core/anthropic-provider.js";
@@ -26,6 +30,8 @@ export { MCPFSStorage } from "./core/mcp-fs-storage.js";
26
30
  export { MCPOutputFilter, MCPFilter } from "./core/mcp-filter.js";
27
31
  export { MCPExecutionPolicy, MCPBypassExecutionPolicy } from "./core/mcp-execution-policy.js";
28
32
  export type { MCPToolCallRequest } from "./core/mcp-execution-policy.js";
33
+ export { MCPAutoExecutionPolicy } from "./core/mcp-auto-execution-policy.js";
34
+ export type { MCPAutoExecutionPolicyProps, MCPAutoExecutionPolicyVerdict } from "./core/mcp-auto-execution-policy.js";
29
35
  export { SimpleAgent } from "./templates/simple.js";
30
36
  export { SwarmBase } from "./core/swarm-base.js";
31
37
  export type { SwarmBaseProps, SwarmRunOptions, SwarmState, SwarmAgentState, SwarmStreamChunk, SwarmStreamCallback, SwarmAgentFailure } from "./core/swarm-base.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  export { AIProvider } from "./core/ai-provider.js";
2
2
  export { resolveThinkEffortLevel, clampThinkEffort } from "./core/think-effort.js";
3
3
  export { BaseAgent } from "./core/base-agent.js";
4
+ export { StatelessAgent } from "./core/stateless-agent.js";
5
+ export { AIASK } from "./core/ai-ask.js";
4
6
  export { DeepSeekProvider } from "./core/deepseek-provider.js";
5
7
  export { OpenAIProvider } from "./core/openai-provider.js";
6
8
  export { AnthropicProvider } from "./core/anthropic-provider.js";
@@ -20,6 +22,7 @@ export { MCPStorage } from "./core/mcp-storage.js";
20
22
  export { MCPFSStorage } from "./core/mcp-fs-storage.js";
21
23
  export { MCPOutputFilter, MCPFilter } from "./core/mcp-filter.js";
22
24
  export { MCPExecutionPolicy, MCPBypassExecutionPolicy } from "./core/mcp-execution-policy.js";
25
+ export { MCPAutoExecutionPolicy } from "./core/mcp-auto-execution-policy.js";
23
26
  export { SimpleAgent } from "./templates/simple.js";
24
27
  export { SwarmBase } from "./core/swarm-base.js";
25
28
  export { AgentDefinition, applyTextOverride, selectTools } from "./core/agent-definition.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ai-ask.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-ask.test.d.ts","sourceRoot":"","sources":["../../../src/tests/core/ai-ask.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
1
+ import { test, describe } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { AIASK } from "../../index.js";
4
+ import { ScriptedProvider } from "./scripted-provider.js";
5
+ describe("core/ai-ask", () => {
6
+ test("run(): a valid first attempt returns immediately with valid:true, attempts:1", async () => {
7
+ const provider = new ScriptedProvider("p", () => ({
8
+ toolCalls: [{ name: "submit_answer", inputs: { valid: true, score: 7 } }],
9
+ }));
10
+ const ask = new AIASK({
11
+ instruction: "classify the input",
12
+ aiModel: provider,
13
+ outputStructure: [
14
+ { name: "valid", type: "boolean", description: "whether it's valid" },
15
+ { name: "score", type: "number", description: "confidence 0-10" },
16
+ ],
17
+ });
18
+ const result = await ask.run("check this");
19
+ assert.deepStrictEqual(result.output, { valid: true, score: 7 });
20
+ assert.strictEqual(result.valid, true);
21
+ assert.strictEqual(result.attempts, 1);
22
+ assert.strictEqual(result.errors, undefined);
23
+ });
24
+ test("run(): a missing required field triggers a retry, and a corrected 2nd attempt succeeds", async () => {
25
+ const provider = new ScriptedProvider("p", [
26
+ () => ({ toolCalls: [{ name: "submit_answer", inputs: { valid: true } }] }), // 1st attempt, missing "score"
27
+ () => ({ toolCalls: [{ name: "submit_answer", inputs: { valid: true, score: 9 } }] }), // 2nd attempt, corrected
28
+ ]);
29
+ const ask = new AIASK({
30
+ instruction: "classify the input",
31
+ aiModel: provider,
32
+ outputStructure: [
33
+ { name: "valid", type: "boolean", description: "whether it's valid" },
34
+ { name: "score", type: "number", description: "confidence 0-10" },
35
+ ],
36
+ });
37
+ const result = await ask.run("check this");
38
+ assert.deepStrictEqual(result.output, { valid: true, score: 9 });
39
+ assert.strictEqual(result.valid, true);
40
+ assert.strictEqual(result.attempts, 2);
41
+ });
42
+ test("run(): a wrong-typed field is rejected as invalid", async () => {
43
+ const provider = new ScriptedProvider("p", () => ({
44
+ toolCalls: [{ name: "submit_answer", inputs: { valid: "yes" } }], // should be boolean
45
+ }));
46
+ const ask = new AIASK({
47
+ instruction: "x",
48
+ aiModel: provider,
49
+ outputStructure: [{ name: "valid", type: "boolean", description: "d" }],
50
+ });
51
+ const result = await ask.run("go");
52
+ assert.strictEqual(result.valid, false);
53
+ assert.strictEqual(result.attempts, 3);
54
+ assert.match(result.errors[0], /should be boolean/);
55
+ });
56
+ test("run(): plain text instead of calling the tool counts as a failed attempt and retries", async () => {
57
+ const provider = new ScriptedProvider("p", [
58
+ () => ({ content: "I think it's valid" }), // no tool call at all
59
+ () => ({ toolCalls: [{ name: "submit_answer", inputs: { valid: true } }] }),
60
+ ]);
61
+ const ask = new AIASK({
62
+ instruction: "x",
63
+ aiModel: provider,
64
+ outputStructure: [{ name: "valid", type: "boolean", description: "d" }],
65
+ });
66
+ const result = await ask.run("go");
67
+ assert.strictEqual(result.valid, true);
68
+ assert.strictEqual(result.attempts, 2);
69
+ });
70
+ test("run(): gives up after 3 attempts, returning the last best-effort output with valid:false", async () => {
71
+ const provider = new ScriptedProvider("p", () => ({ content: "nope, just text" }));
72
+ const ask = new AIASK({
73
+ instruction: "x",
74
+ aiModel: provider,
75
+ outputStructure: [{ name: "valid", type: "boolean", description: "d" }],
76
+ });
77
+ const result = await ask.run("go");
78
+ assert.strictEqual(result.valid, false);
79
+ assert.strictEqual(result.attempts, 3);
80
+ assert.deepStrictEqual(result.output, {});
81
+ assert.strictEqual(result.errors.length, 1);
82
+ assert.strictEqual(provider.getCallCount(), 3, "one chat() call per attempt, no automatic follow-up");
83
+ });
84
+ test("run(): an optional field (required: false) may be omitted without failing validation", async () => {
85
+ const provider = new ScriptedProvider("p", () => ({
86
+ toolCalls: [{ name: "submit_answer", inputs: { valid: true } }],
87
+ }));
88
+ const ask = new AIASK({
89
+ instruction: "x",
90
+ aiModel: provider,
91
+ outputStructure: [
92
+ { name: "valid", type: "boolean", description: "d" },
93
+ { name: "note", type: "string", description: "d", required: false },
94
+ ],
95
+ });
96
+ const result = await ask.run("go");
97
+ assert.strictEqual(result.valid, true);
98
+ assert.strictEqual(result.attempts, 1);
99
+ });
100
+ });
101
+ //# sourceMappingURL=ai-ask.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-ask.test.js","sourceRoot":"","sources":["../../../src/tests/core/ai-ask.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp-auto-execution-policy.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-auto-execution-policy.test.d.ts","sourceRoot":"","sources":["../../../src/tests/core/mcp-auto-execution-policy.test.ts"],"names":[],"mappings":""}