Skip to content

Commit 2af8afd

Browse files
authored
Merge pull request #192 from scottslewis/master
Added A2A tooling bundle and updated to 3.16.3
2 parents 70bea13 + cf1b41f commit 2af8afd

File tree

43 files changed

+614
-55
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+614
-55
lines changed

doc/bundles/org.eclipse.ecf.doc/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
<additionalArgument>-Xdoclint:none</additionalArgument>
3131
<additionalArgument>-splitindex</additionalArgument>
3232
<additionalArgument>-use</additionalArgument>
33-
<additionalArgument>-doctitle "Eclipse Communication Framework (ECF) 3.16.2 API"</additionalArgument>
34-
<additionalArgument>-windowtitle "Eclipse Communication Framework (ECF) 3.16.2 API"</additionalArgument>
33+
<additionalArgument>-doctitle "Eclipse Communication Framework (ECF) 3.16.3 API"</additionalArgument>
34+
<additionalArgument>-windowtitle "Eclipse Communication Framework (ECF) 3.16.3 API"</additionalArgument>
3535
<additionalArgument>-link https://docs.oracle.com/en/java/javase/11/docs/api/</additionalArgument>
3636
<additionalArgument>-link https://docs.osgi.org/javadoc/osgi.core/7.0.0/</additionalArgument>
3737
<additionalArgument>-tag 'noimplement:a:Restriction:'</additionalArgument>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
4+
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5+
<classpathentry kind="src" path="src"/>
6+
<classpathentry kind="output" path="bin"/>
7+
</classpath>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>org.eclipse.ecf.ai.a2a</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
<buildCommand>
14+
<name>org.eclipse.pde.ManifestBuilder</name>
15+
<arguments>
16+
</arguments>
17+
</buildCommand>
18+
<buildCommand>
19+
<name>org.eclipse.pde.SchemaBuilder</name>
20+
<arguments>
21+
</arguments>
22+
</buildCommand>
23+
</buildSpec>
24+
<natures>
25+
<nature>org.eclipse.pde.PluginNature</nature>
26+
<nature>org.eclipse.jdt.core.javanature</nature>
27+
</natures>
28+
</projectDescription>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
eclipse.preferences.version=1
2+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
3+
org.eclipse.jdt.core.compiler.compliance=17
4+
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
5+
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
6+
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7+
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
8+
org.eclipse.jdt.core.compiler.release=enabled
9+
org.eclipse.jdt.core.compiler.source=17
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
eclipse.preferences.version=1
2+
pluginProject.extensions=false
3+
resolve.requirebundle=false
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Manifest-Version: 1.0
2+
Bundle-ManifestVersion: 2
3+
Bundle-Name: %bundle.name
4+
Bundle-SymbolicName: org.eclipse.ecf.ai.a2a;singleton:=true
5+
Bundle-Version: 1.0.0.qualifier
6+
Export-Package: org.eclipse.ecf.ai.a2a.annotations;version="1.0.0",
7+
org.eclipse.ecf.ai.a2a.service;version="1.0.0",
8+
org.eclipse.ecf.ai.a2a.util;version="1.0.0"
9+
Bundle-Vendor: %bundle.provider
10+
Automatic-Module-Name: org.eclipse.ecf.ai.a2a
11+
Bundle-RequiredExecutionEnvironment: JavaSE-17
12+
Bundle-Localization: plugin
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3+
<html xmlns="http://www.w3.org/1999/xhtml">
4+
<head>
5+
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
6+
<title>About</title>
7+
</head>
8+
<body lang="EN-US">
9+
<h2>About This Content</h2>
10+
11+
<p>June 25, 2008</p>
12+
<h3>License</h3>
13+
14+
<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
15+
indicated below, the Content is provided to you under the terms and conditions of the
16+
Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
17+
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
18+
For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
19+
20+
<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
21+
being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
22+
apply to your use of any object code in the Content. Check the Redistributor's license that was
23+
provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
24+
indicated below, the terms and conditions of the EPL still apply to any source code in the Content
25+
and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
26+
27+
</body>
28+
</html>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
source.. = src/
2+
output.. = bin/
3+
bin.includes = META-INF/,\
4+
.,\
5+
plugin.properties,\
6+
about.html
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
############################################################################
2+
# Copyright (c) 2025 Composent Inc., and others.
3+
#
4+
# This program and the accompanying materials are made
5+
# available under the terms of the Eclipse Public License 2.0
6+
# which is available at https://www.eclipse.org/legal/epl-2.0/
7+
#
8+
# SPDX-License-Identifier: EPL-2.0
9+
############################################################################
10+
bundle.name=ECF AI Agent-to-Agent Tools Support
11+
bundle.provider=Eclipse.org - ECF
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<groupId>org.eclipse.ecf</groupId>
7+
<artifactId>ecf-parent</artifactId>
8+
<version>1.0.0-SNAPSHOT</version>
9+
<relativePath>../../../</relativePath>
10+
</parent>
11+
12+
<artifactId>org.eclipse.ecf.ai.a2a</artifactId>
13+
<version>1.0.0-SNAPSHOT</version>
14+
<packaging>eclipse-plugin</packaging>
15+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/****************************************************************************
2+
* Copyright (c) 2025 Composent, Inc.
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which is available at https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*****************************************************************************/
10+
package org.eclipse.ecf.ai.a2a.annotations;
11+
12+
import java.lang.annotation.ElementType;
13+
import java.lang.annotation.Retention;
14+
import java.lang.annotation.RetentionPolicy;
15+
import java.lang.annotation.Target;
16+
17+
@Retention(RetentionPolicy.RUNTIME)
18+
@Target(ElementType.TYPE)
19+
public @interface AgentAuthentication {
20+
21+
String[] schemes() default {};
22+
String credentials() default "";
23+
24+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/****************************************************************************
2+
* Copyright (c) 2025 Composent, Inc.
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which is available at https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*****************************************************************************/
10+
package org.eclipse.ecf.ai.a2a.annotations;
11+
12+
import java.lang.annotation.ElementType;
13+
import java.lang.annotation.Retention;
14+
import java.lang.annotation.RetentionPolicy;
15+
import java.lang.annotation.Target;
16+
17+
@Retention(RetentionPolicy.RUNTIME)
18+
@Target(ElementType.TYPE)
19+
public @interface AgentCapabilities {
20+
21+
boolean pushNotifications() default false;
22+
boolean stateTransitionHistory() default false;
23+
boolean streaming() default false;
24+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/****************************************************************************
2+
* Copyright (c) 2025 Composent, Inc.
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which is available at https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*****************************************************************************/
10+
package org.eclipse.ecf.ai.a2a.annotations;
11+
12+
import java.lang.annotation.ElementType;
13+
import java.lang.annotation.Retention;
14+
import java.lang.annotation.RetentionPolicy;
15+
import java.lang.annotation.Target;
16+
17+
@Retention(RetentionPolicy.RUNTIME)
18+
@Target(ElementType.TYPE)
19+
public @interface AgentCard {
20+
21+
AgentCapabilities capabilities() default @AgentCapabilities;
22+
23+
String[] defaultInputModes() default {"text"};
24+
25+
String[] defaultOutputModes() default {"text"};
26+
27+
String description() default "";
28+
29+
String documentationUrl() default "";
30+
31+
String iconUrl() default "";
32+
33+
String name();
34+
35+
boolean supportsAuthenticatedExtendedCard() default false;
36+
37+
String url() default "";
38+
39+
String version() default "1.0.0";
40+
41+
AgentProvider provider() default @AgentProvider;
42+
43+
AgentSkill[] skills() default {};
44+
45+
AgentAuthentication authentication() default @AgentAuthentication;
46+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/****************************************************************************
2+
* Copyright (c) 2025 Composent, Inc.
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which is available at https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*****************************************************************************/
10+
package org.eclipse.ecf.ai.a2a.annotations;
11+
12+
import java.lang.annotation.ElementType;
13+
import java.lang.annotation.Retention;
14+
import java.lang.annotation.RetentionPolicy;
15+
import java.lang.annotation.Target;
16+
17+
@Retention(RetentionPolicy.RUNTIME)
18+
@Target(ElementType.TYPE)
19+
public @interface AgentProvider {
20+
21+
String organization() default "";
22+
String url() default "";
23+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/****************************************************************************
2+
* Copyright (c) 2025 Composent, Inc.
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which is available at https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*****************************************************************************/
10+
package org.eclipse.ecf.ai.a2a.annotations;
11+
12+
import java.lang.annotation.ElementType;
13+
import java.lang.annotation.Retention;
14+
import java.lang.annotation.RetentionPolicy;
15+
import java.lang.annotation.Target;
16+
17+
@Retention(RetentionPolicy.RUNTIME)
18+
@Target(ElementType.TYPE)
19+
public @interface AgentSkill {
20+
21+
String description() default "";
22+
23+
String[] examples() default {};
24+
25+
String id();
26+
27+
String[] inputModes() default {};
28+
29+
String name() default "";
30+
31+
String[] outputModes() default {};
32+
33+
String[] tags() default {};
34+
35+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package org.eclipse.ecf.ai.a2a.annotations;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/****************************************************************************
2+
* Copyright (c) 2025 Composent, Inc.
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which is available at https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*****************************************************************************/
10+
package org.eclipse.ecf.ai.a2a.service;
11+
12+
import org.eclipse.ecf.ai.a2a.util.AgentCardDescription;
13+
14+
public interface AgentCardService {
15+
16+
default AgentCardDescription getAgentCardDescription(String serviceClass) {
17+
return AgentCardDescription.fromService(this, serviceClass);
18+
}
19+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package org.eclipse.ecf.ai.a2a.service;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/****************************************************************************
2+
* Copyright (c) 2025 Composent, Inc.
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which is available at https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*****************************************************************************/
10+
package org.eclipse.ecf.ai.a2a.util;
11+
12+
import java.util.List;
13+
14+
public record AgentAuthenticationDescription(
15+
List<String> schemes,
16+
String credentials) {
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/****************************************************************************
2+
* Copyright (c) 2025 Composent, Inc.
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which is available at https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*****************************************************************************/
10+
package org.eclipse.ecf.ai.a2a.util;
11+
12+
public record AgentCapabilitiesDescription(
13+
boolean pushNotifications,
14+
boolean stateTransitionHistory,
15+
boolean streaming) {
16+
}

0 commit comments

Comments
 (0)