@agentvoy/core 0.2.0 → 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 (92) hide show
  1. package/README.md +65 -0
  2. package/dist/adapters/anthropic.d.ts.map +1 -1
  3. package/dist/adapters/anthropic.js +75 -75
  4. package/dist/adapters/anthropic.js.map +1 -1
  5. package/dist/adapters/app-scaffold.d.ts +12 -0
  6. package/dist/adapters/app-scaffold.d.ts.map +1 -0
  7. package/dist/adapters/app-scaffold.js +49 -0
  8. package/dist/adapters/app-scaffold.js.map +1 -0
  9. package/dist/adapters/autogen.d.ts +8 -0
  10. package/dist/adapters/autogen.d.ts.map +1 -0
  11. package/dist/adapters/autogen.js +259 -0
  12. package/dist/adapters/autogen.js.map +1 -0
  13. package/dist/adapters/crewai.d.ts.map +1 -1
  14. package/dist/adapters/crewai.js +80 -52
  15. package/dist/adapters/crewai.js.map +1 -1
  16. package/dist/adapters/google-adk.d.ts.map +1 -1
  17. package/dist/adapters/google-adk.js +73 -37
  18. package/dist/adapters/google-adk.js.map +1 -1
  19. package/dist/adapters/index.js +4 -0
  20. package/dist/adapters/index.js.map +1 -1
  21. package/dist/adapters/langgraph.d.ts.map +1 -1
  22. package/dist/adapters/langgraph.js +41 -42
  23. package/dist/adapters/langgraph.js.map +1 -1
  24. package/dist/adapters/llamaindex.d.ts +8 -0
  25. package/dist/adapters/llamaindex.d.ts.map +1 -0
  26. package/dist/adapters/llamaindex.js +230 -0
  27. package/dist/adapters/llamaindex.js.map +1 -0
  28. package/dist/adapters/openai.d.ts.map +1 -1
  29. package/dist/adapters/openai.js +76 -53
  30. package/dist/adapters/openai.js.map +1 -1
  31. package/dist/deployers/api-wrapper.d.ts +11 -0
  32. package/dist/deployers/api-wrapper.d.ts.map +1 -0
  33. package/dist/deployers/api-wrapper.js +86 -0
  34. package/dist/deployers/api-wrapper.js.map +1 -0
  35. package/dist/deployers/aws-lambda.d.ts +3 -0
  36. package/dist/deployers/aws-lambda.d.ts.map +1 -0
  37. package/dist/deployers/aws-lambda.js +101 -0
  38. package/dist/deployers/aws-lambda.js.map +1 -0
  39. package/dist/deployers/docker.d.ts +3 -0
  40. package/dist/deployers/docker.d.ts.map +1 -0
  41. package/dist/deployers/docker.js +123 -0
  42. package/dist/deployers/docker.js.map +1 -0
  43. package/dist/deployers/fly-io.d.ts +3 -0
  44. package/dist/deployers/fly-io.d.ts.map +1 -0
  45. package/dist/deployers/fly-io.js +84 -0
  46. package/dist/deployers/fly-io.js.map +1 -0
  47. package/dist/deployers/gcp-cloud-run.d.ts +3 -0
  48. package/dist/deployers/gcp-cloud-run.d.ts.map +1 -0
  49. package/dist/deployers/gcp-cloud-run.js +75 -0
  50. package/dist/deployers/gcp-cloud-run.js.map +1 -0
  51. package/dist/deployers/guard-mapper.d.ts +6 -0
  52. package/dist/deployers/guard-mapper.d.ts.map +1 -0
  53. package/dist/deployers/guard-mapper.js +63 -0
  54. package/dist/deployers/guard-mapper.js.map +1 -0
  55. package/dist/deployers/index.d.ts +6 -0
  56. package/dist/deployers/index.d.ts.map +1 -0
  57. package/dist/deployers/index.js +30 -0
  58. package/dist/deployers/index.js.map +1 -0
  59. package/dist/deployers/pipeline.d.ts +9 -0
  60. package/dist/deployers/pipeline.d.ts.map +1 -0
  61. package/dist/deployers/pipeline.js +55 -0
  62. package/dist/deployers/pipeline.js.map +1 -0
  63. package/dist/deployers/railway.d.ts +3 -0
  64. package/dist/deployers/railway.d.ts.map +1 -0
  65. package/dist/deployers/railway.js +53 -0
  66. package/dist/deployers/railway.js.map +1 -0
  67. package/dist/deployers/registry.d.ts +7 -0
  68. package/dist/deployers/registry.d.ts.map +1 -0
  69. package/dist/deployers/registry.js +29 -0
  70. package/dist/deployers/registry.js.map +1 -0
  71. package/dist/deployers/streamlit-app.d.ts +10 -0
  72. package/dist/deployers/streamlit-app.d.ts.map +1 -0
  73. package/dist/deployers/streamlit-app.js +80 -0
  74. package/dist/deployers/streamlit-app.js.map +1 -0
  75. package/dist/index.d.ts +2 -1
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +13 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/types.d.ts +41 -0
  80. package/dist/types.d.ts.map +1 -1
  81. package/package.json +17 -1
  82. package/src/adapters/anthropic.ts +0 -268
  83. package/src/adapters/crewai.ts +0 -254
  84. package/src/adapters/google-adk.ts +0 -167
  85. package/src/adapters/index.ts +0 -21
  86. package/src/adapters/langgraph.ts +0 -336
  87. package/src/adapters/openai.ts +0 -214
  88. package/src/adapters/registry.ts +0 -37
  89. package/src/config.ts +0 -315
  90. package/src/index.ts +0 -54
  91. package/src/types.ts +0 -203
  92. package/tsconfig.json +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamlit-app.d.ts","sourceRoot":"","sources":["../../src/deployers/streamlit-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAgFpE"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateStreamlitApp = generateStreamlitApp;
4
+ function generateStreamlitApp(config) {
5
+ const { projectName, agentMode, agentNames, port } = config;
6
+ const pipelineSteps = agentMode === "multi" && agentNames && agentNames.length > 0
7
+ ? agentNames.map((n) => `"${n}"`).join(", ")
8
+ : "";
9
+ const pipelineSection = agentMode === "multi"
10
+ ? `
11
+ if data.get("stages"):
12
+ with st.expander("Pipeline stages", expanded=False):
13
+ for stage in data["stages"]:
14
+ st.write(f"\\u2713 {stage}")
15
+ `
16
+ : "";
17
+ return `"""
18
+ Chat UI — Generated by AgentVoy
19
+ Streamlit app that talks to the FastAPI server.
20
+
21
+ Run (with server already running on port ${port}):
22
+ streamlit run streamlit_app.py
23
+ """
24
+ import streamlit as st
25
+ import requests
26
+
27
+ API_URL = "http://localhost:${port}"
28
+
29
+ st.set_page_config(
30
+ page_title="${projectName}",
31
+ page_icon="šŸ¤–",
32
+ layout="centered",
33
+ )
34
+ st.title("${projectName}")
35
+ st.caption("Powered by AgentVoy")
36
+
37
+ ${agentMode === "multi" && pipelineSteps ? `with st.sidebar:\n st.subheader("Pipeline")\n for stage in [${pipelineSteps}]:\n st.write(f"• {stage}")` : ""}
38
+
39
+ if "messages" not in st.session_state:
40
+ st.session_state.messages = []
41
+
42
+ for msg in st.session_state.messages:
43
+ with st.chat_message(msg["role"]):
44
+ st.write(msg["content"])
45
+
46
+ if prompt := st.chat_input("Ask your agent..."):
47
+ st.session_state.messages.append({"role": "user", "content": prompt})
48
+ with st.chat_message("user"):
49
+ st.write(prompt)
50
+
51
+ with st.chat_message("assistant"):
52
+ with st.spinner("Thinking..."):
53
+ try:
54
+ resp = requests.post(
55
+ f"{API_URL}/run",
56
+ json={"prompt": prompt},
57
+ timeout=120,
58
+ )
59
+ resp.raise_for_status()
60
+ data = resp.json()
61
+ st.write(data["response"])
62
+ ${pipelineSection}
63
+ if data.get("guard_summary"):
64
+ with st.sidebar:
65
+ st.subheader("Guard summary")
66
+ st.json(data["guard_summary"])
67
+
68
+ except requests.exceptions.ConnectionError:
69
+ st.error(f"Cannot connect to agent server at {API_URL}. Is it running?")
70
+ st.code(f"uvicorn server:app --port ${port}")
71
+ data = {"response": ""}
72
+ except Exception as e:
73
+ st.error(f"Error: {e}")
74
+ data = {"response": ""}
75
+
76
+ if data.get("response"):
77
+ st.session_state.messages.append({"role": "assistant", "content": data["response"]})
78
+ `;
79
+ }
80
+ //# sourceMappingURL=streamlit-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamlit-app.js","sourceRoot":"","sources":["../../src/deployers/streamlit-app.ts"],"names":[],"mappings":";;AASA,oDAgFC;AAhFD,SAAgB,oBAAoB,CAAC,MAAuB;IAC1D,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAE5D,MAAM,aAAa,GACjB,SAAS,KAAK,OAAO,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAC1D,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,eAAe,GACnB,SAAS,KAAK,OAAO;QACnB,CAAC,CAAC;;;;;CAKP;QACK,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;;;;2CAIkC,IAAI;;;;;;8BAMjB,IAAI;;;kBAGhB,WAAW;;;;YAIjB,WAAW;;;EAGrB,SAAS,KAAK,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,qEAAqE,aAAa,oCAAoC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;EAyBpK,eAAe;;;;;;;;sDAQqC,IAAI;;;;;;;;CAQzD,CAAC;AACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,8 @@
6
6
  *
7
7
  * https://github.com/agentvoy
8
8
  */
9
- export type { Framework, ModelProvider, AgentGuardConfig, AgentIdentity, ModelConfig, PermissionsConfig, NetworkPermissions, FilesystemPermissions, ToolPermissions, ExecutionPermissions, GuardrailsConfig, InputGuardrails, OutputGuardrails, BehaviorGuardrails, AuthConfig, ObservabilityConfig, FrameworkAdapter, ScaffoldConfig, ScaffoldResult, GeneratedFile, ValidationResult, ValidationError, ValidationWarning, ProjectConfig, } from "./types.js";
9
+ export type { Framework, ModelProvider, AgentGuardConfig, AgentIdentity, ModelConfig, PermissionsConfig, NetworkPermissions, FilesystemPermissions, ToolPermissions, ExecutionPermissions, GuardrailsConfig, InputGuardrails, OutputGuardrails, BehaviorGuardrails, AuthConfig, ObservabilityConfig, FrameworkAdapter, ScaffoldConfig, ScaffoldResult, GeneratedFile, ValidationResult, ValidationError, ValidationWarning, ProjectConfig, BuildMode, AgentMode, DeploymentTarget, DeploymentAdapter, DeployConfig, CloudConfig, DeploymentFiles, DeployValidationResult, } from "./types.js";
10
10
  export { loadConfig, findConfigFile, validateConfig, generateDefaultConfig, ConfigError, } from "./config.js";
11
11
  export { registerAdapter, getAdapter, listAdapters, listFrameworks, hasAdapter, } from "./adapters/index.js";
12
+ export { registerDeployer, getDeployer, listDeployers, listTargets, hasDeployer, mapGuardToCloudConfig, describeGuardMapping, generateServerPy, generateStreamlitApp, generatePipelinePy, } from "./deployers/index.js";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@
8
8
  * https://github.com/agentvoy
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.hasAdapter = exports.listFrameworks = exports.listAdapters = exports.getAdapter = exports.registerAdapter = exports.ConfigError = exports.generateDefaultConfig = exports.validateConfig = exports.findConfigFile = exports.loadConfig = void 0;
11
+ exports.generatePipelinePy = exports.generateStreamlitApp = exports.generateServerPy = exports.describeGuardMapping = exports.mapGuardToCloudConfig = exports.hasDeployer = exports.listTargets = exports.listDeployers = exports.getDeployer = exports.registerDeployer = exports.hasAdapter = exports.listFrameworks = exports.listAdapters = exports.getAdapter = exports.registerAdapter = exports.ConfigError = exports.generateDefaultConfig = exports.validateConfig = exports.findConfigFile = exports.loadConfig = void 0;
12
12
  // Config
13
13
  var config_js_1 = require("./config.js");
14
14
  Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_js_1.loadConfig; } });
@@ -23,4 +23,16 @@ Object.defineProperty(exports, "getAdapter", { enumerable: true, get: function (
23
23
  Object.defineProperty(exports, "listAdapters", { enumerable: true, get: function () { return index_js_1.listAdapters; } });
24
24
  Object.defineProperty(exports, "listFrameworks", { enumerable: true, get: function () { return index_js_1.listFrameworks; } });
25
25
  Object.defineProperty(exports, "hasAdapter", { enumerable: true, get: function () { return index_js_1.hasAdapter; } });
26
+ // Deployers
27
+ var index_js_2 = require("./deployers/index.js");
28
+ Object.defineProperty(exports, "registerDeployer", { enumerable: true, get: function () { return index_js_2.registerDeployer; } });
29
+ Object.defineProperty(exports, "getDeployer", { enumerable: true, get: function () { return index_js_2.getDeployer; } });
30
+ Object.defineProperty(exports, "listDeployers", { enumerable: true, get: function () { return index_js_2.listDeployers; } });
31
+ Object.defineProperty(exports, "listTargets", { enumerable: true, get: function () { return index_js_2.listTargets; } });
32
+ Object.defineProperty(exports, "hasDeployer", { enumerable: true, get: function () { return index_js_2.hasDeployer; } });
33
+ Object.defineProperty(exports, "mapGuardToCloudConfig", { enumerable: true, get: function () { return index_js_2.mapGuardToCloudConfig; } });
34
+ Object.defineProperty(exports, "describeGuardMapping", { enumerable: true, get: function () { return index_js_2.describeGuardMapping; } });
35
+ Object.defineProperty(exports, "generateServerPy", { enumerable: true, get: function () { return index_js_2.generateServerPy; } });
36
+ Object.defineProperty(exports, "generateStreamlitApp", { enumerable: true, get: function () { return index_js_2.generateStreamlitApp; } });
37
+ Object.defineProperty(exports, "generatePipelinePy", { enumerable: true, get: function () { return index_js_2.generatePipelinePy; } });
26
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA8BH,SAAS;AACT,yCAMqB;AALnB,uGAAA,UAAU,OAAA;AACV,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,kHAAA,qBAAqB,OAAA;AACrB,wGAAA,WAAW,OAAA;AAGb,WAAW;AACX,gDAM6B;AAL3B,2GAAA,eAAe,OAAA;AACf,sGAAA,UAAU,OAAA;AACV,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,sGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAsCH,SAAS;AACT,yCAMqB;AALnB,uGAAA,UAAU,OAAA;AACV,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,kHAAA,qBAAqB,OAAA;AACrB,wGAAA,WAAW,OAAA;AAGb,WAAW;AACX,gDAM6B;AAL3B,2GAAA,eAAe,OAAA;AACf,sGAAA,UAAU,OAAA;AACV,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,sGAAA,UAAU,OAAA;AAGZ,YAAY;AACZ,iDAW8B;AAV5B,4GAAA,gBAAgB,OAAA;AAChB,uGAAA,WAAW,OAAA;AACX,yGAAA,aAAa,OAAA;AACb,uGAAA,WAAW,OAAA;AACX,uGAAA,WAAW,OAAA;AACX,iHAAA,qBAAqB,OAAA;AACrB,gHAAA,oBAAoB,OAAA;AACpB,4GAAA,gBAAgB,OAAA;AAChB,gHAAA,oBAAoB,OAAA;AACpB,8GAAA,kBAAkB,OAAA"}
package/dist/types.d.ts CHANGED
@@ -109,11 +109,52 @@ export interface FrameworkAdapter {
109
109
  /** Get the list of dependencies required for this framework */
110
110
  getDependencies(): Record<string, string>;
111
111
  }
112
+ export type BuildMode = "agent" | "app";
113
+ export type AgentMode = "single" | "multi";
114
+ export type DeploymentTarget = "docker" | "fly-io" | "railway" | "gcp-cloud-run" | "aws-lambda";
115
+ export interface DeploymentAdapter {
116
+ readonly target: DeploymentTarget;
117
+ readonly displayName: string;
118
+ readonly requiredCLI?: string;
119
+ generateFiles(config: DeployConfig): Promise<DeploymentFiles>;
120
+ validate(config: DeployConfig): Promise<DeployValidationResult>;
121
+ }
122
+ export interface DeployConfig {
123
+ projectName: string;
124
+ projectDir: string;
125
+ target: DeploymentTarget;
126
+ framework: Framework;
127
+ guard: AgentGuardConfig;
128
+ port: number;
129
+ envVars: string[];
130
+ cloudConfig?: CloudConfig;
131
+ }
132
+ export interface CloudConfig {
133
+ region?: string;
134
+ memory?: string;
135
+ timeout?: string;
136
+ minInstances?: number;
137
+ maxInstances?: number;
138
+ }
139
+ export interface DeploymentFiles {
140
+ files: GeneratedFile[];
141
+ instructions: string[];
142
+ }
143
+ export interface DeployValidationResult {
144
+ valid: boolean;
145
+ errors: ValidationError[];
146
+ warnings: ValidationWarning[];
147
+ missingTools?: string[];
148
+ }
112
149
  export interface ScaffoldConfig {
113
150
  projectName: string;
114
151
  projectDir: string;
115
152
  framework: Framework;
116
153
  model: ModelConfig;
154
+ buildMode: BuildMode;
155
+ agentMode?: AgentMode;
156
+ agentNames?: string[];
157
+ deployTarget?: DeploymentTarget;
117
158
  guardrails?: GuardrailsConfig;
118
159
  auth?: AuthConfig;
119
160
  features?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentvoy/core",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Core engine for AgentVoy — guardrails config parser, framework adapters, and agent runtime utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,5 +19,21 @@
19
19
  "typescript": "^5.7.0",
20
20
  "@types/node": "^20.0.0"
21
21
  },
22
+ "files": [
23
+ "dist",
24
+ "README.md"
25
+ ],
26
+ "author": "Chinmay Murugkar <cthecm@gmail.com>",
27
+ "bugs": {
28
+ "url": "https://github.com/agentvoy/agentvoy/issues"
29
+ },
30
+ "engines": {
31
+ "node": ">=20"
32
+ },
33
+ "homepage": "https://agentvoy.com",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/agentvoy/agentvoy.git"
37
+ },
22
38
  "license": "Apache-2.0"
23
39
  }
@@ -1,268 +0,0 @@
1
- /**
2
- * Anthropic SDK Adapter
3
- *
4
- * Scaffolds projects using the Anthropic Agent SDK (Python).
5
- */
6
-
7
- import type {
8
- FrameworkAdapter,
9
- ScaffoldConfig,
10
- ScaffoldResult,
11
- AgentGuardConfig,
12
- ValidationResult,
13
- GeneratedFile,
14
- } from "../types.js";
15
- import { generateDefaultConfig } from "../config.js";
16
-
17
- export const anthropicAdapter: FrameworkAdapter = {
18
- name: "anthropic",
19
- displayName: "Anthropic SDK",
20
- language: "python",
21
-
22
- async scaffold(config: ScaffoldConfig): Promise<ScaffoldResult> {
23
- const files: GeneratedFile[] = [
24
- {
25
- path: "agent.py",
26
- content: generateAgentFile(config),
27
- },
28
- {
29
- path: "tools.py",
30
- content: generateToolsFile(config),
31
- },
32
- {
33
- path: "run.py",
34
- content: generateRunFile(config),
35
- },
36
- {
37
- path: "requirements.txt",
38
- content: generateRequirements(),
39
- },
40
- {
41
- path: ".env.example",
42
- content: "ANTHROPIC_API_KEY=your-api-key-here\n",
43
- },
44
- {
45
- path: "agent.guard.yml",
46
- content: generateDefaultConfig(
47
- config.projectName,
48
- "anthropic",
49
- config.model.model || "claude-sonnet-4-20250514"
50
- ),
51
- },
52
- ];
53
-
54
- return {
55
- files,
56
- dependencies: {},
57
- devDependencies: {},
58
- scripts: {
59
- start: "python run.py",
60
- },
61
- postInstallInstructions: [
62
- "pip install -r requirements.txt",
63
- "cp .env.example .env",
64
- "Add your ANTHROPIC_API_KEY to .env",
65
- "python run.py",
66
- ],
67
- };
68
- },
69
-
70
- validateConfig(config: AgentGuardConfig): ValidationResult {
71
- const errors: { field: string; message: string }[] = [];
72
- const warnings: { field: string; message: string }[] = [];
73
-
74
- if (config.model.provider !== "anthropic") {
75
- warnings.push({
76
- field: "model.provider",
77
- message: `Anthropic adapter works best with provider "anthropic", got "${config.model.provider}"`,
78
- });
79
- }
80
-
81
- return { valid: errors.length === 0, errors, warnings };
82
- },
83
-
84
- getDependencies() {
85
- return {
86
- anthropic: ">=0.40.0",
87
- "python-dotenv": ">=1.0.0",
88
- };
89
- },
90
- };
91
-
92
- function generateAgentFile(config: ScaffoldConfig): string {
93
- const model = config.model.model || "claude-sonnet-4-20250514";
94
- const maxIterations = config.guardrails?.behavior?.max_iterations || 20;
95
-
96
- return `"""
97
- ${config.projectName} — Built with AgentVoy
98
- https://github.com/agentvoy
99
- """
100
-
101
- import anthropic
102
- from tools import get_tools, process_tool_call
103
-
104
-
105
- def create_client() -> anthropic.Anthropic:
106
- """Create the Anthropic client."""
107
- return anthropic.Anthropic()
108
-
109
-
110
- def run_agent(prompt: str) -> str:
111
- """Run the agent with an agentic loop."""
112
- client = create_client()
113
- tools = get_tools()
114
- messages = [{"role": "user", "content": prompt}]
115
-
116
- iteration = 0
117
- max_iterations = ${maxIterations}
118
-
119
- while iteration < max_iterations:
120
- iteration += 1
121
-
122
- response = client.messages.create(
123
- model="${model}",
124
- max_tokens=8096,
125
- tools=tools,
126
- messages=messages,
127
- )
128
-
129
- # Add assistant response to messages
130
- messages.append({"role": "assistant", "content": response.content})
131
-
132
- # If no tool calls, we're done
133
- if response.stop_reason == "end_turn":
134
- # Extract final text response
135
- for block in response.content:
136
- if hasattr(block, "text"):
137
- return block.text
138
- return "Done."
139
-
140
- # Process tool calls
141
- if response.stop_reason == "tool_use":
142
- tool_results = []
143
- for block in response.content:
144
- if block.type == "tool_use":
145
- result = process_tool_call(block.name, block.input)
146
- tool_results.append({
147
- "type": "tool_result",
148
- "tool_use_id": block.id,
149
- "content": str(result),
150
- })
151
-
152
- messages.append({"role": "user", "content": tool_results})
153
-
154
- return "Max iterations reached."
155
- `;
156
- }
157
-
158
- function generateToolsFile(_config: ScaffoldConfig): string {
159
- return `"""
160
- Agent tools — add your custom tools here.
161
- """
162
-
163
-
164
- def get_tools() -> list:
165
- """Return tool definitions for the Anthropic API."""
166
- return [
167
- {
168
- "name": "search_web",
169
- "description": "Search the web for information on a given topic.",
170
- "input_schema": {
171
- "type": "object",
172
- "properties": {
173
- "query": {
174
- "type": "string",
175
- "description": "The search query.",
176
- }
177
- },
178
- "required": ["query"],
179
- },
180
- },
181
- {
182
- "name": "read_file",
183
- "description": "Read the contents of a file.",
184
- "input_schema": {
185
- "type": "object",
186
- "properties": {
187
- "path": {
188
- "type": "string",
189
- "description": "Path to the file to read.",
190
- }
191
- },
192
- "required": ["path"],
193
- },
194
- },
195
- ]
196
-
197
-
198
- def process_tool_call(tool_name: str, tool_input: dict) -> str:
199
- """Execute a tool call and return the result."""
200
- if tool_name == "search_web":
201
- return _search_web(tool_input["query"])
202
- elif tool_name == "read_file":
203
- return _read_file(tool_input["path"])
204
- else:
205
- return f"Unknown tool: {tool_name}"
206
-
207
-
208
- def _search_web(query: str) -> str:
209
- """Search the web for information."""
210
- # TODO: Implement your search logic (e.g., Tavily, Serper, Brave Search)
211
- return f"Search results for: {query}"
212
-
213
-
214
- def _read_file(path: str) -> str:
215
- """Read a file's contents."""
216
- try:
217
- with open(path, "r") as f:
218
- return f.read()
219
- except FileNotFoundError:
220
- return f"File not found: {path}"
221
- except PermissionError:
222
- return f"Permission denied: {path}"
223
- `;
224
- }
225
-
226
- function generateRunFile(config: ScaffoldConfig): string {
227
- return `"""
228
- Run the ${config.projectName} agent.
229
- """
230
-
231
- from dotenv import load_dotenv
232
- from agent import run_agent
233
-
234
- load_dotenv()
235
-
236
-
237
- def main():
238
- print("\\nšŸš€ ${config.projectName} — Powered by AgentVoy")
239
- print("=" * 50)
240
- print("Type your prompt (or 'quit' to exit):\\n")
241
-
242
- while True:
243
- try:
244
- prompt = input("> ")
245
- if prompt.lower() in ("quit", "exit", "q"):
246
- print("\\nGoodbye!")
247
- break
248
- if not prompt.strip():
249
- continue
250
-
251
- print("\\nThinking...\\n")
252
- result = run_agent(prompt)
253
- print(f"\\n{result}\\n")
254
- except KeyboardInterrupt:
255
- print("\\n\\nGoodbye!")
256
- break
257
-
258
-
259
- if __name__ == "__main__":
260
- main()
261
- `;
262
- }
263
-
264
- function generateRequirements(): string {
265
- return `anthropic>=0.40.0
266
- python-dotenv>=1.0.0
267
- `;
268
- }