You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2026/03/21 21:31:17 UTC
[M] Change in asterixdb[phoenix]: [NO ISSUE][HYR] Add annotation for citation for AI contributions
From Michael Blow <mb...@apache.org>:
Michael Blow has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21044?usp=email )
Change subject: [NO ISSUE][HYR] Add annotation for citation for AI contributions
......................................................................
[NO ISSUE][HYR] Add annotation for citation for AI contributions
Change-Id: I00907d92d85ba9460b183794704a06ff73612329
---
A hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java
1 file changed, 173 insertions(+), 0 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/44/21044/1
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java
new file mode 100644
index 0000000..e3fc808
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/annotations/AiProvenance.java
@@ -0,0 +1,173 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.hyracks.util.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ *
+ */
+@Retention(RetentionPolicy.SOURCE)
+@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD})
+public @interface AiProvenance {
+ Agent agent();
+ Interface aiInterface();
+ AiContributionKind contributionKind();
+ String notes() default "";
+
+ enum AiContributionKind {
+ GENERATED,
+ ASSISTED,
+ REFACTORED,
+ TEST_GENERATED,
+ DOC_GENERATED
+ }
+
+ enum Agent {
+ // OpenAI
+ GPT_5_4("openai", "gpt-5.4", "GPT-5.4"),
+ GPT_5_3("openai", "gpt-5.3", "GPT-5.3"),
+ GPT_5_2("openai", "gpt-5.2", "GPT-5.2"),
+ GPT_4_1("openai", "gpt-4.1", "GPT-4.1"),
+ GPT_4O("openai", "gpt-4o", "GPT-4o"),
+ GPT_4O_MINI("openai", "gpt-4o-mini", "GPT-4o Mini"),
+
+ // Anthropic
+ CLAUDE_OPUS_3("anthropic", "claude-3-opus", "Claude 3 Opus"),
+ CLAUDE_SONNET_3_5("anthropic", "claude-3.5-sonnet", "Claude 3.5 Sonnet"),
+ CLAUDE_HAIKU_3("anthropic", "claude-3-haiku", "Claude 3 Haiku"),
+
+ // Google
+ GEMINI_1_5_PRO("google", "gemini-1.5-pro", "Gemini 1.5 Pro"),
+ GEMINI_1_5_FLASH("google", "gemini-1.5-flash", "Gemini 1.5 Flash"),
+
+ // Meta
+ LLAMA_3_70B("meta", "llama-3-70b", "LLaMA 3 70B"),
+ LLAMA_3_8B("meta", "llama-3-8b", "LLaMA 3 8B"),
+
+ // Mistral
+ MISTRAL_LARGE("mistral", "mistral-large", "Mistral Large"),
+ MISTRAL_SMALL("mistral", "mistral-small", "Mistral Small"),
+ MIXTRAL_8X7B("mistral", "mixtral-8x7b", "Mixtral 8x7B"),
+
+ // Cohere
+ COMMAND_R_PLUS("cohere", "command-r-plus", "Command R+"),
+ COMMAND_R("cohere", "command-r", "Command R"),
+
+ // OSS / local
+ DEEPSEEK_CHAT("deepseek", "deepseek-chat", "DeepSeek Chat"),
+ DEEPSEEK_CODER("deepseek", "deepseek-coder", "DeepSeek Coder"),
+ QWEN_2("alibaba", "qwen-2", "Qwen 2"),
+ PHI_3("microsoft", "phi-3", "Phi-3"),
+
+ // Fallback
+ OTHER("other", "other", "Other");
+
+ private final String provider;
+ private final String modelId;
+ private final String displayName;
+
+ Agent(String provider, String modelId, String displayName) {
+ this.provider = provider;
+ this.modelId = modelId;
+ this.displayName = displayName;
+ }
+
+ public String provider() {
+ return provider;
+ }
+
+ public String modelId() {
+ return modelId;
+ }
+
+ public String displayName() {
+ return displayName;
+ }
+ }
+
+ enum Interface {
+
+ // Web / Chat UIs
+ CHATGPT_UI("openai", "chatgpt-ui", "ChatGPT"),
+ CLAUDE_UI("anthropic", "claude-ui", "Claude UI"),
+ GEMINI_UI("google", "gemini-ui", "Gemini UI"),
+ PERPLEXITY("perplexity", "perplexity", "Perplexity"),
+
+ // IDE integrations
+ GITHUB_COPILOT("github", "copilot", "GitHub Copilot"),
+ GEMINI_CODE_ASSIST("google", "gemini-code-assist", "Gemini Code Assist"),
+ CURSOR("cursor", "cursor", "Cursor"),
+ WINDSURF("windsurf", "windsurf", "Windsurf"),
+ INTELLIJ_AI_ASSISTANT("jetbrains", "ai-assistant", "JetBrains AI Assistant"),
+ VSCODE_AI_EXTENSION("microsoft", "vscode-ai", "VS Code AI Extension"),
+
+ // APIs / SDK usage
+ OPENAI_API("openai", "api", "OpenAI API"),
+ ANTHROPIC_API("anthropic", "api", "Anthropic API"),
+ GOOGLE_AI_API("google", "api", "Google AI API"),
+ GENERIC_API("generic", "api", "Generic API"),
+
+ // Agent / orchestration platforms
+ FACTORY("factory", "factory-ai", "Factory.ai"),
+ LANGCHAIN("langchain", "langchain", "LangChain"),
+ LLAMAINDEX("llamaindex", "llamaindex", "LlamaIndex"),
+ CUSTOM_AGENT("custom", "custom-agent", "Custom Agent Runtime"),
+
+ // CLI tools
+ OPENAI_CLI("openai", "cli", "OpenAI CLI"),
+ ANTHROPIC_CLI("anthropic", "cli", "Anthropic CLI"),
+ FACTORY_CLI("factory", "factory-cli", "Factory.ai CLI"),
+
+ // Fallback
+ OTHER("other", "other", "Other");
+
+ private final String provider;
+ private final String id;
+ private final String displayName;
+
+ Interface(String provider, String id, String displayName) {
+ this.provider = provider;
+ this.id = id;
+ this.displayName = displayName;
+ }
+
+ public String provider() {
+ return provider;
+ }
+
+ public String id() {
+ return id;
+ }
+
+ public String displayName() {
+ return displayName;
+ }
+
+ /**
+ * Useful for logging / tagging (e.g. "factory/factory-cli")
+ */
+ public String qualifiedName() {
+ return provider + "/" + id;
+ }
+ }
+}
\ No newline at end of file
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21044?usp=email
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: phoenix
Gerrit-Change-Id: I00907d92d85ba9460b183794704a06ff73612329
Gerrit-Change-Number: 21044
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>