From f749f6a5281271ee9e1fdc0664f50ce52a9dbaed Mon Sep 17 00:00:00 2001 From: geobelsky Date: Wed, 11 Mar 2026 18:59:00 +0000 Subject: [PATCH] feat(sdk): add listIntentEvents method, .gitignore for build artifacts, update README Made-with: Cursor --- .gitignore | 5 +++++ README.md | 10 +++++++--- examples/BasicSubmit.java | 3 +-- src/main/java/dev/axme/sdk/AxmeClient.java | 19 +++++++++++++++++++ 4 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..18c88b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +target/ +*.class +*.jar +!src/ +.mvn/ diff --git a/README.md b/README.md index 37c17e3..6b47889 100644 --- a/README.md +++ b/README.md @@ -100,16 +100,20 @@ public class Quickstart { // Check connectivity / discover available capabilities System.out.println(client.getCapabilities(RequestOptions.none())); - // Send an intent + // Send an intent to a registered agent address Map intent = client.createIntent( Map.of( "intent_type", "order.fulfillment.v1", - "payload", Map.of("order_id", "ord_123", "priority", "high"), - "owner_agent", "agent://fulfillment-service" + "to_agent", "agent://acme-corp/production/fulfillment-service", + "payload", Map.of("order_id", "ord_123", "priority", "high") ), new RequestOptions("fulfill-ord-123-001", null) ); System.out.println(intent.get("intent_id") + " " + intent.get("status")); + + // List registered agent addresses + Map agents = client.listAgents("acme-corp-uuid", "prod-ws-uuid", null, RequestOptions.none()); + System.out.println(agents.get("agents")); } } ``` diff --git a/examples/BasicSubmit.java b/examples/BasicSubmit.java index d39ae28..a1d58f3 100644 --- a/examples/BasicSubmit.java +++ b/examples/BasicSubmit.java @@ -18,8 +18,7 @@ public static void main(String[] args) throws Exception { Map.of( "intent_type", "intent.demo.v1", "correlation_id", UUID.randomUUID().toString(), - "from_agent", "agent://basic/java/source", - "to_agent", "agent://basic/java/target", + "to_agent", "agent://acme-corp/production/target", "payload", Map.of("task", "hello-from-java") ), RequestOptions.none() diff --git a/src/main/java/dev/axme/sdk/AxmeClient.java b/src/main/java/dev/axme/sdk/AxmeClient.java index a7f1658..01dd77a 100644 --- a/src/main/java/dev/axme/sdk/AxmeClient.java +++ b/src/main/java/dev/axme/sdk/AxmeClient.java @@ -98,6 +98,25 @@ public Map revokeServiceAccountKey(String serviceAccountId, Stri normalizeOptions(options)); } + public Map listAgents(String orgId, String workspaceId, Integer limit, RequestOptions options) + throws IOException, InterruptedException { + Map query = new LinkedHashMap<>(); + query.put("org_id", orgId); + query.put("workspace_id", workspaceId); + if (limit != null && limit > 0) { + query.put("limit", Integer.toString(limit)); + } + return requestJson("GET", "/v1/agents", query, null, normalizeOptions(options)); + } + + public Map getAgent(String address, RequestOptions options) + throws IOException, InterruptedException { + String pathPart = address.trim().startsWith("agent://") + ? address.trim().substring("agent://".length()) + : address.trim(); + return requestJson("GET", "/v1/agents/" + pathPart, Map.of(), null, normalizeOptions(options)); + } + public Map createIntent(Map payload, RequestOptions options) throws IOException, InterruptedException { return requestJson("POST", "/v1/intents", Map.of(), payload, normalizeOptions(options));