@agentvoy/core 0.2.0 → 0.3.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.
@@ -89,48 +89,50 @@ def create_client() -> anthropic.Anthropic:
89
89
 
90
90
 
91
91
  def run_agent(prompt: str) -> str:
92
- """Run the agent with an agentic loop."""
92
+ """Run the agent with an agentic loop, enforcing agent.guard.yml at runtime."""
93
+ from agentvoy_guard import Guard
94
+ guard = Guard.from_config()
95
+
93
96
  client = create_client()
94
97
  tools = get_tools()
95
98
  messages = [{"role": "user", "content": prompt}]
96
99
 
97
- iteration = 0
98
- max_iterations = ${maxIterations}
99
-
100
- while iteration < max_iterations:
101
- iteration += 1
102
-
103
- response = client.messages.create(
104
- model="${model}",
105
- max_tokens=8096,
106
- tools=tools,
107
- messages=messages,
108
- )
109
-
110
- # Add assistant response to messages
111
- messages.append({"role": "assistant", "content": response.content})
112
-
113
- # If no tool calls, we're done
114
- if response.stop_reason == "end_turn":
115
- # Extract final text response
116
- for block in response.content:
117
- if hasattr(block, "text"):
118
- return block.text
119
- return "Done."
120
-
121
- # Process tool calls
122
- if response.stop_reason == "tool_use":
123
- tool_results = []
124
- for block in response.content:
125
- if block.type == "tool_use":
126
- result = process_tool_call(block.name, block.input)
127
- tool_results.append({
128
- "type": "tool_result",
129
- "tool_use_id": block.id,
130
- "content": str(result),
131
- })
132
-
133
- messages.append({"role": "user", "content": tool_results})
100
+ with guard.session() as session:
101
+ session.check_input(prompt)
102
+
103
+ while True:
104
+ session.tick()
105
+
106
+ response = client.messages.create(
107
+ model="${model}",
108
+ max_tokens=8096,
109
+ tools=tools,
110
+ messages=messages,
111
+ )
112
+
113
+ session.track_usage(response.usage)
114
+ messages.append({"role": "assistant", "content": response.content})
115
+
116
+ if response.stop_reason == "end_turn":
117
+ for block in response.content:
118
+ if hasattr(block, "text"):
119
+ session.check_output(block.text)
120
+ print(f"[guard] {guard.last_summary}")
121
+ return block.text
122
+ return "Done."
123
+
124
+ if response.stop_reason == "tool_use":
125
+ tool_results = []
126
+ for block in response.content:
127
+ if block.type == "tool_use":
128
+ session.tick_tool()
129
+ result = process_tool_call(block.name, block.input)
130
+ tool_results.append({
131
+ "type": "tool_result",
132
+ "tool_use_id": block.id,
133
+ "content": str(result),
134
+ })
135
+ messages.append({"role": "user", "content": tool_results})
134
136
 
135
137
  return "Max iterations reached."
136
138
  `;
@@ -242,6 +244,7 @@ if __name__ == "__main__":
242
244
  function generateRequirements() {
243
245
  return `anthropic>=0.40.0
244
246
  python-dotenv>=1.0.0
247
+ agentvoy-guard>=0.1.0
245
248
  `;
246
249
  }
247
250
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/adapters/anthropic.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,4CAAqD;AAExC,QAAA,gBAAgB,GAAqB;IAChD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,QAAQ;IAElB,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,MAAM,KAAK,GAAoB;YAC7B;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;aACjC;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,oBAAoB,EAAE;aAChC;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,uCAAuC;aACjD;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,IAAA,iCAAqB,EAC5B,MAAM,CAAC,WAAW,EAClB,WAAW,EACX,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,0BAA0B,CACjD;aACF;SACF,CAAC;QAEF,OAAO;YACL,KAAK;YACL,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE,eAAe;aACvB;YACD,uBAAuB,EAAE;gBACvB,iCAAiC;gBACjC,sBAAsB;gBACtB,oCAAoC;gBACpC,eAAe;aAChB;SACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAwB;QACrC,MAAM,MAAM,GAAyC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAyC,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,gEAAgE,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG;aAClG,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAED,eAAe;QACb,OAAO;YACL,SAAS,EAAE,UAAU;YACrB,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAAsB;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,0BAA0B,CAAC;IAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,IAAI,EAAE,CAAC;IAExE,OAAO;EACP,MAAM,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;uBAoBG,aAAa;;;;;;qBAMf,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCzB,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgER,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,MAAsB;IAC7C,OAAO;UACC,MAAM,CAAC,WAAW;;;;;;;;;;mBAUT,MAAM,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;CAER,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/adapters/anthropic.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,4CAAqD;AAExC,QAAA,gBAAgB,GAAqB;IAChD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,QAAQ;IAElB,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,MAAM,KAAK,GAAoB;YAC7B;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;aACjC;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,oBAAoB,EAAE;aAChC;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,uCAAuC;aACjD;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,IAAA,iCAAqB,EAC5B,MAAM,CAAC,WAAW,EAClB,WAAW,EACX,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,0BAA0B,CACjD;aACF;SACF,CAAC;QAEF,OAAO;YACL,KAAK;YACL,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE,eAAe;aACvB;YACD,uBAAuB,EAAE;gBACvB,iCAAiC;gBACjC,sBAAsB;gBACtB,oCAAoC;gBACpC,eAAe;aAChB;SACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAwB;QACrC,MAAM,MAAM,GAAyC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAyC,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,gEAAgE,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG;aAClG,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAED,eAAe;QACb,OAAO;YACL,SAAS,EAAE,UAAU;YACrB,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAAsB;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,0BAA0B,CAAC;IAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,IAAI,EAAE,CAAC;IAExE,OAAO;EACP,MAAM,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA6BK,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B7B,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgER,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,MAAsB;IAC7C,OAAO;UACC,MAAM,CAAC,WAAW;;;;;;;;;;mBAUT,MAAM,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;;CAGR,CAAC;AACF,CAAC"}
@@ -197,18 +197,25 @@ def main():
197
197
  print("\\nšŸš€ ${config.projectName} — Powered by AgentVoy")
198
198
  print("=" * 50)
199
199
 
200
+ from agentvoy_guard import Guard
201
+ guard = Guard.from_config()
202
+
200
203
  topic = input("\\nEnter a topic to research: ")
201
204
  if not topic.strip():
202
205
  print("No topic provided. Exiting.")
203
206
  return
204
207
 
205
- crew = create_crew()
206
- result = crew.kickoff(inputs={"topic": topic})
208
+ with guard.session() as session:
209
+ session.check_input(topic)
210
+ crew = create_crew()
211
+ result = crew.kickoff(inputs={"topic": topic})
212
+ session.check_output(str(result))
207
213
 
208
214
  print("\\n" + "=" * 50)
209
215
  print("RESULT:")
210
216
  print("=" * 50)
211
217
  print(result)
218
+ print(f"\\n[guard] {guard.last_summary}")
212
219
 
213
220
 
214
221
  if __name__ == "__main__":
@@ -219,6 +226,7 @@ function generateRequirements() {
219
226
  return `crewai>=0.80.0
220
227
  crewai-tools>=0.14.0
221
228
  python-dotenv>=1.0.0
229
+ agentvoy-guard>=0.1.0
222
230
  `;
223
231
  }
224
232
  function generateEnvExample(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"crewai.js","sourceRoot":"","sources":["../../src/adapters/crewai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crewai.js","sourceRoot":"","sources":["../../src/adapters/crewai.ts"],"names":[],"mappings":"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"}
@@ -141,6 +141,7 @@ def read_file(path: str) -> dict:
141
141
  function generateRequirements() {
142
142
  return `google-adk>=1.0.0
143
143
  python-dotenv>=1.0.0
144
+ agentvoy-guard>=0.1.0
144
145
  `;
145
146
  }
146
147
  //# sourceMappingURL=google-adk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"google-adk.js","sourceRoot":"","sources":["../../src/adapters/google-adk.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,4CAAqD;AAExC,QAAA,gBAAgB,GAAqB;IAChD,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,YAAY;IACzB,QAAQ,EAAE,QAAQ;IAElB,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAoB;YAC7B;gBACE,IAAI,EAAE,GAAG,QAAQ,cAAc;gBAC/B,OAAO,EAAE,EAAE;aACZ;YACD;gBACE,IAAI,EAAE,GAAG,QAAQ,WAAW;gBAC5B,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,GAAG,QAAQ,WAAW;gBAC5B,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,oBAAoB,EAAE;aAChC;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,oCAAoC;aAC9C;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,IAAA,iCAAqB,EAC5B,MAAM,CAAC,WAAW,EAClB,QAAQ,EACR,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,CACzC;aACF;SACF,CAAC;QAEF,OAAO;YACL,KAAK;YACL,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE,WAAW,QAAQ,EAAE;gBAC5B,GAAG,EAAE,WAAW,QAAQ,EAAE;aAC3B;YACD,uBAAuB,EAAE;gBACvB,iCAAiC;gBACjC,sBAAsB;gBACtB,iCAAiC;gBACjC,WAAW,QAAQ,EAAE;gBACrB,8BAA8B,QAAQ,EAAE;aACzC;SACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAwB;QACrC,MAAM,MAAM,GAAyC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAyC,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,sDAAsD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG;aACxF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAED,eAAe;QACb,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAAsB;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,CAAC;IAEvD,OAAO;EACP,MAAM,CAAC,WAAW;;;;;;;;YAQR,MAAM,CAAC,WAAW;aACjB,KAAK;;;;;;;;;;;CAWjB,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCR,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;CAER,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"google-adk.js","sourceRoot":"","sources":["../../src/adapters/google-adk.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,4CAAqD;AAExC,QAAA,gBAAgB,GAAqB;IAChD,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,YAAY;IACzB,QAAQ,EAAE,QAAQ;IAElB,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAoB;YAC7B;gBACE,IAAI,EAAE,GAAG,QAAQ,cAAc;gBAC/B,OAAO,EAAE,EAAE;aACZ;YACD;gBACE,IAAI,EAAE,GAAG,QAAQ,WAAW;gBAC5B,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,GAAG,QAAQ,WAAW;gBAC5B,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,oBAAoB,EAAE;aAChC;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,oCAAoC;aAC9C;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,IAAA,iCAAqB,EAC5B,MAAM,CAAC,WAAW,EAClB,QAAQ,EACR,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,CACzC;aACF;SACF,CAAC;QAEF,OAAO;YACL,KAAK;YACL,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE,WAAW,QAAQ,EAAE;gBAC5B,GAAG,EAAE,WAAW,QAAQ,EAAE;aAC3B;YACD,uBAAuB,EAAE;gBACvB,iCAAiC;gBACjC,sBAAsB;gBACtB,iCAAiC;gBACjC,WAAW,QAAQ,EAAE;gBACrB,8BAA8B,QAAQ,EAAE;aACzC;SACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAwB;QACrC,MAAM,MAAM,GAAyC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAyC,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,sDAAsD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG;aACxF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAED,eAAe;QACb,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAAsB;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,CAAC;IAEvD,OAAO;EACP,MAAM,CAAC,WAAW;;;;;;;;YAQR,MAAM,CAAC,WAAW;aACjB,KAAK;;;;;;;;;;;CAWjB,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCR,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;;CAGR,CAAC;AACF,CAAC"}
@@ -262,10 +262,13 @@ Run the ${config.projectName} agent.
262
262
  """
263
263
 
264
264
  from dotenv import load_dotenv
265
+ from agentvoy_guard import Guard
265
266
  from agent import run_agent
266
267
 
267
268
  load_dotenv()
268
269
 
270
+ guard = Guard.from_config()
271
+
269
272
 
270
273
  def main():
271
274
  print("\\nšŸš€ ${config.projectName} — Powered by AgentVoy")
@@ -282,8 +285,12 @@ def main():
282
285
  continue
283
286
 
284
287
  print("\\nThinking...\\n")
285
- result = run_agent(prompt)
288
+ with guard.session() as session:
289
+ session.check_input(prompt)
290
+ result = run_agent(prompt)
291
+ session.check_output(result)
286
292
  print(f"\\n{result}\\n")
293
+ print(f"[guard] {guard.last_summary}")
287
294
  except KeyboardInterrupt:
288
295
  print("\\n\\nGoodbye!")
289
296
  break
@@ -300,6 +307,7 @@ langchain>=0.3.0
300
307
  langchain-core>=0.3.0
301
308
  ${langchainPkg}>=0.2.0
302
309
  python-dotenv>=1.0.0
310
+ agentvoy-guard>=0.1.0
303
311
  `;
304
312
  }
305
313
  function generateEnvExample(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"langgraph.js","sourceRoot":"","sources":["../../src/adapters/langgraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"langgraph.js","sourceRoot":"","sources":["../../src/adapters/langgraph.ts"],"names":[],"mappings":"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"}
@@ -104,14 +104,25 @@ Follow these guidelines:
104
104
 
105
105
 
106
106
  async def run_agent(prompt: str) -> str:
107
- """Run the agent with the given prompt."""
108
- agent = create_agent()
109
- result = await Runner.run(
110
- agent,
111
- prompt,
112
- max_turns=${maxTurns},
113
- )
114
- return result.final_output
107
+ """Run the agent with the given prompt, enforcing agent.guard.yml at runtime."""
108
+ from agentvoy_guard import Guard
109
+ guard = Guard.from_config()
110
+
111
+ with guard.session() as session:
112
+ session.check_input(prompt)
113
+
114
+ agent = create_agent()
115
+ result = await Runner.run(
116
+ agent,
117
+ prompt,
118
+ max_turns=${maxTurns},
119
+ )
120
+
121
+ final = result.final_output or ""
122
+ session.check_output(final)
123
+
124
+ print(f"[guard] {guard.last_summary}")
125
+ return final
115
126
  `;
116
127
  }
117
128
  function generateToolsFile(_config) {
@@ -188,6 +199,7 @@ if __name__ == "__main__":
188
199
  function generateRequirements() {
189
200
  return `openai-agents>=0.1.0
190
201
  python-dotenv>=1.0.0
202
+ agentvoy-guard>=0.1.0
191
203
  `;
192
204
  }
193
205
  //# sourceMappingURL=openai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,4CAAqD;AAExC,QAAA,aAAa,GAAqB;IAC7C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,mBAAmB;IAChC,QAAQ,EAAE,QAAQ;IAElB,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,MAAM,KAAK,GAAoB;YAC7B;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;aACjC;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,oBAAoB,EAAE;aAChC;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,oCAAoC;aAC9C;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,IAAA,iCAAqB,EAC5B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,KAAK,CAAC,QAAQ,EACrB,MAAM,CAAC,KAAK,CAAC,KAAK,CACnB;aACF;SACF,CAAC;QAEF,OAAO;YACL,KAAK;YACL,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE,eAAe;aACvB;YACD,uBAAuB,EAAE;gBACvB,iCAAiC;gBACjC,sBAAsB;gBACtB,iCAAiC;gBACjC,eAAe;aAChB;SACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAwB;QACrC,MAAM,MAAM,GAAyC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAyC,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,0DAA0D,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG;aAC5F,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAED,eAAe;QACb,OAAO;YACL,eAAe,EAAE,SAAS;YAC1B,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAAsB;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC;IAChD,MAAM,QAAQ,GAAG,WAAW,EAAE,cAAc,IAAI,EAAE,CAAC;IAEnD,OAAO;EACP,MAAM,CAAC,WAAW;;;;;;;;;;;;;gBAaJ,MAAM,CAAC,WAAW;;;;;;;;iBAQjB,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ;;;;;;;;;;;;;oBAa3B,QAAQ;;;CAG3B,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BR,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,MAAsB;IAC7C,OAAO;UACC,MAAM,CAAC,WAAW;;;;;;;;;;;;mBAYT,MAAM,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;CAER,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,4CAAqD;AAExC,QAAA,aAAa,GAAqB;IAC7C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,mBAAmB;IAChC,QAAQ,EAAE,QAAQ;IAElB,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,MAAM,KAAK,GAAoB;YAC7B;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;aACnC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;aACjC;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,oBAAoB,EAAE;aAChC;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,oCAAoC;aAC9C;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,IAAA,iCAAqB,EAC5B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,KAAK,CAAC,QAAQ,EACrB,MAAM,CAAC,KAAK,CAAC,KAAK,CACnB;aACF;SACF,CAAC;QAEF,OAAO;YACL,KAAK;YACL,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,EAAE;YACnB,OAAO,EAAE;gBACP,KAAK,EAAE,eAAe;aACvB;YACD,uBAAuB,EAAE;gBACvB,iCAAiC;gBACjC,sBAAsB;gBACtB,iCAAiC;gBACjC,eAAe;aAChB;SACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAwB;QACrC,MAAM,MAAM,GAAyC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAyC,EAAE,CAAC;QAE1D,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,0DAA0D,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG;aAC5F,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAED,eAAe;QACb,OAAO;YACL,eAAe,EAAE,SAAS;YAC1B,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAAsB;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC;IAChD,MAAM,QAAQ,GAAG,WAAW,EAAE,cAAc,IAAI,EAAE,CAAC;IAEnD,OAAO;EACP,MAAM,CAAC,WAAW;;;;;;;;;;;;;gBAaJ,MAAM,CAAC,WAAW;;;;;;;;iBAQjB,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ;;;;;;;;;;;;;;;;;;;wBAmBvB,QAAQ;;;;;;;;CAQ/B,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB;IAChD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BR,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,MAAsB;IAC7C,OAAO;UACC,MAAM,CAAC,WAAW;;;;;;;;;;;;mBAYT,MAAM,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;CAuBpC,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;;CAGR,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentvoy/core",
3
- "version": "0.2.0",
3
+ "version": "0.3.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",
@@ -108,48 +108,50 @@ def create_client() -> anthropic.Anthropic:
108
108
 
109
109
 
110
110
  def run_agent(prompt: str) -> str:
111
- """Run the agent with an agentic loop."""
111
+ """Run the agent with an agentic loop, enforcing agent.guard.yml at runtime."""
112
+ from agentvoy_guard import Guard
113
+ guard = Guard.from_config()
114
+
112
115
  client = create_client()
113
116
  tools = get_tools()
114
117
  messages = [{"role": "user", "content": prompt}]
115
118
 
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})
119
+ with guard.session() as session:
120
+ session.check_input(prompt)
121
+
122
+ while True:
123
+ session.tick()
124
+
125
+ response = client.messages.create(
126
+ model="${model}",
127
+ max_tokens=8096,
128
+ tools=tools,
129
+ messages=messages,
130
+ )
131
+
132
+ session.track_usage(response.usage)
133
+ messages.append({"role": "assistant", "content": response.content})
134
+
135
+ if response.stop_reason == "end_turn":
136
+ for block in response.content:
137
+ if hasattr(block, "text"):
138
+ session.check_output(block.text)
139
+ print(f"[guard] {guard.last_summary}")
140
+ return block.text
141
+ return "Done."
142
+
143
+ if response.stop_reason == "tool_use":
144
+ tool_results = []
145
+ for block in response.content:
146
+ if block.type == "tool_use":
147
+ session.tick_tool()
148
+ result = process_tool_call(block.name, block.input)
149
+ tool_results.append({
150
+ "type": "tool_result",
151
+ "tool_use_id": block.id,
152
+ "content": str(result),
153
+ })
154
+ messages.append({"role": "user", "content": tool_results})
153
155
 
154
156
  return "Max iterations reached."
155
157
  `;
@@ -264,5 +266,6 @@ if __name__ == "__main__":
264
266
  function generateRequirements(): string {
265
267
  return `anthropic>=0.40.0
266
268
  python-dotenv>=1.0.0
269
+ agentvoy-guard>=0.1.0
267
270
  `;
268
271
  }
@@ -220,18 +220,25 @@ def main():
220
220
  print("\\nšŸš€ ${config.projectName} — Powered by AgentVoy")
221
221
  print("=" * 50)
222
222
 
223
+ from agentvoy_guard import Guard
224
+ guard = Guard.from_config()
225
+
223
226
  topic = input("\\nEnter a topic to research: ")
224
227
  if not topic.strip():
225
228
  print("No topic provided. Exiting.")
226
229
  return
227
230
 
228
- crew = create_crew()
229
- result = crew.kickoff(inputs={"topic": topic})
231
+ with guard.session() as session:
232
+ session.check_input(topic)
233
+ crew = create_crew()
234
+ result = crew.kickoff(inputs={"topic": topic})
235
+ session.check_output(str(result))
230
236
 
231
237
  print("\\n" + "=" * 50)
232
238
  print("RESULT:")
233
239
  print("=" * 50)
234
240
  print(result)
241
+ print(f"\\n[guard] {guard.last_summary}")
235
242
 
236
243
 
237
244
  if __name__ == "__main__":
@@ -243,6 +250,7 @@ function generateRequirements(): string {
243
250
  return `crewai>=0.80.0
244
251
  crewai-tools>=0.14.0
245
252
  python-dotenv>=1.0.0
253
+ agentvoy-guard>=0.1.0
246
254
  `;
247
255
  }
248
256
 
@@ -163,5 +163,6 @@ def read_file(path: str) -> dict:
163
163
  function generateRequirements(): string {
164
164
  return `google-adk>=1.0.0
165
165
  python-dotenv>=1.0.0
166
+ agentvoy-guard>=0.1.0
166
167
  `;
167
168
  }
@@ -288,10 +288,13 @@ Run the ${config.projectName} agent.
288
288
  """
289
289
 
290
290
  from dotenv import load_dotenv
291
+ from agentvoy_guard import Guard
291
292
  from agent import run_agent
292
293
 
293
294
  load_dotenv()
294
295
 
296
+ guard = Guard.from_config()
297
+
295
298
 
296
299
  def main():
297
300
  print("\\nšŸš€ ${config.projectName} — Powered by AgentVoy")
@@ -308,8 +311,12 @@ def main():
308
311
  continue
309
312
 
310
313
  print("\\nThinking...\\n")
311
- result = run_agent(prompt)
314
+ with guard.session() as session:
315
+ session.check_input(prompt)
316
+ result = run_agent(prompt)
317
+ session.check_output(result)
312
318
  print(f"\\n{result}\\n")
319
+ print(f"[guard] {guard.last_summary}")
313
320
  except KeyboardInterrupt:
314
321
  print("\\n\\nGoodbye!")
315
322
  break
@@ -327,6 +334,7 @@ langchain>=0.3.0
327
334
  langchain-core>=0.3.0
328
335
  ${langchainPkg}>=0.2.0
329
336
  python-dotenv>=1.0.0
337
+ agentvoy-guard>=0.1.0
330
338
  `;
331
339
  }
332
340
 
@@ -123,14 +123,25 @@ Follow these guidelines:
123
123
 
124
124
 
125
125
  async def run_agent(prompt: str) -> str:
126
- """Run the agent with the given prompt."""
127
- agent = create_agent()
128
- result = await Runner.run(
129
- agent,
130
- prompt,
131
- max_turns=${maxTurns},
132
- )
133
- return result.final_output
126
+ """Run the agent with the given prompt, enforcing agent.guard.yml at runtime."""
127
+ from agentvoy_guard import Guard
128
+ guard = Guard.from_config()
129
+
130
+ with guard.session() as session:
131
+ session.check_input(prompt)
132
+
133
+ agent = create_agent()
134
+ result = await Runner.run(
135
+ agent,
136
+ prompt,
137
+ max_turns=${maxTurns},
138
+ )
139
+
140
+ final = result.final_output or ""
141
+ session.check_output(final)
142
+
143
+ print(f"[guard] {guard.last_summary}")
144
+ return final
134
145
  `;
135
146
  }
136
147
 
@@ -210,5 +221,6 @@ if __name__ == "__main__":
210
221
  function generateRequirements(): string {
211
222
  return `openai-agents>=0.1.0
212
223
  python-dotenv>=1.0.0
224
+ agentvoy-guard>=0.1.0
213
225
  `;
214
226
  }