Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
fabd8a9
feat(a2a-mcp): Implement auth framework, thread-specific tools, and r…
hashangit Jun 9, 2025
0e44256
feat(mcp): Implement comprehensive MCP management system
hashangit Jun 9, 2025
133a024
feat(mcp): Implement comprehensive MCP client with JSON-RPC protocol …
hashangit Jun 9, 2025
df6b250
feat(a2a): Define A2ATask type system - Task 9 completed
hashangit Jun 9, 2025
9a562bf
feat(a2a): Implement TaskStatusRepository for A2A task persistence - …
hashangit Jun 9, 2025
637d8f1
feat(a2a): Implement Task Delegation Logic (Subtask 14.4) - Complete …
hashangit Jun 9, 2025
be82ac0
feat(a2a): Complete A2A Results Integration into Synthesis (Task 14.5…
hashangit Jun 9, 2025
8fcc461
feat(auth): Implement GenericOAuthStrategy with comprehensive OAuth 2…
hashangit Jun 9, 2025
e3f1945
feat(auth): Implement ZyntopiaOAuthStrategy with environment-specific…
hashangit Jun 9, 2025
dfca85e
feat(react-chatbot): Implement ZyntopiaWebChat UI with full ART Frame…
hashangit Jun 16, 2025
e81948e
feat(react-chatbot): fix ZyntopiaWebChat collapsible thoughts, file u…
hashangit Jun 16, 2025
126fdd9
refactor(react-chatbot): remove ArtChatbot exports from index.ts - Cl…
hashangit Jun 16, 2025
7ac52e8
feat(react-chatbot): add remark-gfm support for markdown rendering - …
hashangit Jun 16, 2025
2b38bc8
refactor(react-chatbot): update demo configurations and remove deprec…
hashangit Jun 16, 2025
aa0fe0e
feat(react-chatbot): enhance ZyntopiaWebChat with file upload handlin…
hashangit Jun 16, 2025
00f6d8f
refactor(react-chatbot): improve response parsing in ZyntopiaWebChat …
hashangit Jun 16, 2025
56c8721
feat(react-chatbot): enhance metadata aggregation in ZyntopiaWebChat …
hashangit Jun 16, 2025
c30a125
feat(react-chatbot): add last response data handling in ZyntopiaWebCh…
hashangit Jun 16, 2025
2a685fb
feat(react-chatbot): update storage adapter and enhance message loadi…
hashangit Jun 16, 2025
9c11bcc
feat(react-chatbot): refactor ZyntopiaWebChat for improved structure …
hashangit Jun 17, 2025
b58d41d
feat(react-chatbot): enhance ZyntopiaWebChat with chat history manage…
hashangit Jun 17, 2025
fb66035
feat(react-chatbot): implement dynamic thread title management in Zyn…
hashangit Jun 17, 2025
369bf9c
feat(react-chatbot): improve UI layout and responsiveness in Zyntopia…
hashangit Jun 17, 2025
c85199d
feat(mcp): add TODO for dynamic management of stdio-based MCP servers…
hashangit Jun 17, 2025
fad62e7
feat(mcp): enhance MCP integration with dynamic server management and…
hashangit Jun 18, 2025
ccb394a
Implement PKCE OAuth 2.0 authentication strategy with token managemen…
hashangit Aug 19, 2025
97c473f
feat: Implement ART WebChat component with chat functionality and fil…
hashangit Aug 19, 2025
4508d97
feat(storage): add SupabaseStorageAdapter; align A2A tasks across ada…
hashangit Aug 24, 2025
89838e8
feat(example): add Supabase login, encrypted provider keys, and Supab…
hashangit Aug 24, 2025
96a537c
refactor: remove package-lock.json and update documentation for promp…
hashangit Aug 24, 2025
22e08ff
feat(docs): enhance system prompt hierarchy and output contract docum…
hashangit Aug 24, 2025
685dd48
feat(output): implement JSON-first parsing for planning output in Out…
hashangit Aug 24, 2025
2118751
feat(react-chatbot): integrate MCP discovery and management features
hashangit Aug 28, 2025
90ca7a5
feat(mcp): integrate art-mcp-permission-manager for enhanced CORS han…
hashangit Aug 31, 2025
4550a34
chore: remove deprecated debug and setup scripts for Tavily MCP
hashangit Aug 31, 2025
0fe977d
chore: remove obsolete documentation and test files
hashangit Aug 31, 2025
2e8cddb
chore: remove obsolete .windsurfrules file and update import paths
hashangit Aug 31, 2025
fe46dfa
feat(errors): enhance error handling and documentation across the fra…
hashangit Aug 31, 2025
7c197b8
feat(release): update version to 0.3.0 and enhance framework description
hashangit Aug 31, 2025
5d8d17e
feat(output): improve output parsing and error handling in OutputParser
hashangit Aug 31, 2025
7bc2148
feat(docs): expand and refine ART framework documentation
hashangit Aug 31, 2025
6b19096
feat(persona): introduce agent persona configuration for enhanced cus…
hashangit Sep 1, 2025
8e3fe6c
feat(persona): update agent persona configuration in README and index.ts
hashangit Sep 1, 2025
e4c184b
feat(persona): refine agent persona configuration and documentation
hashangit Sep 1, 2025
34f7711
feat(docs): update documentation for various components and interfaces
hashangit Sep 1, 2025
85795a9
chore: remove deprecated example files from react-chatbot
hashangit Sep 3, 2025
df337ba
feat(tests): add unit tests for agent persona configuration and outpu…
hashangit Sep 3, 2025
cc2aeea
chore(release): bump version to 0.3.1 and update README
hashangit Sep 3, 2025
ffca341
feat(docs): enhance ART framework documentation and structure
hashangit Sep 3, 2025
23fefd4
chore(docs): update README to include logo and improve layout
hashangit Sep 3, 2025
23cd294
feat(docs): expand UI integration guide for ART framework
hashangit Sep 3, 2025
a528ed9
feat(docs): add comprehensive reasoning view section to UI system doc…
hashangit Sep 3, 2025
baf0c13
feat(docs): enhance UI system and connection guide with structured me…
hashangit Sep 3, 2025
8021fa5
chore(release): bump version to 0.3.2 and update README
hashangit Sep 3, 2025
8ff9b14
chore: update file permissions and remove obsolete learnings document
hashangit Sep 6, 2025
f6f219a
fix(docs): clarify content structure requirements in PESAgent documen…
hashangit Sep 6, 2025
1e49ae9
chore(release): bump version to 0.3.4 and update README
hashangit Sep 6, 2025
69731e8
chore: update file permissions and improve documentation structure
hashangit Sep 6, 2025
35bc019
docs: update GeminiAdapter documentation with new links and clarify u…
hashangit Sep 6, 2025
2d1d3f8
chore(release): bump version to 0.3.6 and update documentation
hashangit Sep 6, 2025
cc2d53b
docs: refine Gemini Thinking Tokens section and enhance API guide cla…
hashangit Sep 7, 2025
389c66e
docs: add rendering execution metadata section to API guide
hashangit Sep 8, 2025
6ae4cb8
docs: update various component documentation and interfaces
hashangit Sep 8, 2025
e6f489e
chore(release): bump version to 0.3.7 and update documentation
hashangit Sep 8, 2025
d9ee219
Add PES Agent concept documentation, state management overview, agent…
hashangit Sep 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# API Keys (Required to enable respective provider)
ANTHROPIC_API_KEY="your_anthropic_api_key_here" # Required: Format: sk-ant-api03-...
PERPLEXITY_API_KEY="your_perplexity_api_key_here" # Optional: Format: pplx-...
OPENAI_API_KEY="your_openai_api_key_here" # Optional, for OpenAI/OpenRouter models. Format: sk-proj-...
GOOGLE_API_KEY="your_google_api_key_here" # Optional, for Google Gemini models.
MISTRAL_API_KEY="your_mistral_key_here" # Optional, for Mistral AI models.
XAI_API_KEY="YOUR_XAI_KEY_HERE" # Optional, for xAI AI models.
AZURE_OPENAI_API_KEY="your_azure_key_here" # Optional, for Azure OpenAI models (requires endpoint in .taskmaster/config.json).
OLLAMA_API_KEY="your_ollama_api_key_here" # Optional: For remote Ollama servers that require authentication.
Empty file modified .eslintrc.json
100644 → 100755
Empty file.
22 changes: 21 additions & 1 deletion .gitignore
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,24 @@ yarn-error.log*

# Cache
.cache/
.temp/
.temp/

# Added by Task Master AI
logs
dev-debug.log
# Dependency directories
# Environment variables
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# OS specific
# Task files
tasks.json
tasks/
.taskmaster/
.cursor/
17 changes: 17 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
node_modules/
src/
examples/
docs/
playwright.config.ts
tsconfig.json
tsup.config.ts
typedoc.json
CONTRIBUTING.md
.gitignore
.github/
.roo/
.env
.env.example
.prettierrc
.roomodes

Empty file modified .prettierrc
100644 → 100755
Empty file.
3 changes: 3 additions & 0 deletions .roo/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"mcpServers": {}
}
93 changes: 93 additions & 0 deletions .roo/rules-architect/architect-rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
**Core Directives & Agentivity:**
# 1. Adhere strictly to the rules defined below.
# 2. Use tools sequentially, one per message. Adhere strictly to the rules defined below.
# 3. CRITICAL: ALWAYS wait for user confirmation of success after EACH tool use before proceeding. Do not assume success.
# 4. Operate iteratively: Analyze task -> Plan steps -> Execute steps one by one.
# 5. Use <thinking> tags for *internal* analysis before tool use (context, tool choice, required params).
# 6. **DO NOT DISPLAY XML TOOL TAGS IN THE OUTPUT.**
# 7. **DO NOT DISPLAY YOUR THINKING IN THE OUTPUT.**

**Architectural Design & Planning Role (Delegated Tasks):**

Your primary role when activated via `new_task` by the Boomerang orchestrator is to perform specific architectural, design, or planning tasks, focusing on the instructions provided in the delegation message and referencing the relevant `taskmaster-ai` task ID.

1. **Analyze Delegated Task:** Carefully examine the `message` provided by Boomerang. This message contains the specific task scope, context (including the `taskmaster-ai` task ID), and constraints.
2. **Information Gathering (As Needed):** Use analysis tools to fulfill the task:
* `list_files`: Understand project structure.
* `read_file`: Examine specific code, configuration, or documentation files relevant to the architectural task.
* `list_code_definition_names`: Analyze code structure and relationships.
* `use_mcp_tool` (taskmaster-ai): Use `get_task` or `analyze_project_complexity` *only if explicitly instructed* by Boomerang in the delegation message to gather further context beyond what was provided.
3. **Task Execution (Design & Planning):** Focus *exclusively* on the delegated architectural task, which may involve:
* Designing system architecture, component interactions, or data models.
* Planning implementation steps or identifying necessary subtasks (to be reported back).
* Analyzing technical feasibility, complexity, or potential risks.
* Defining interfaces, APIs, or data contracts.
* Reviewing existing code/architecture against requirements or best practices.
4. **Reporting Completion:** Signal completion using `attempt_completion`. Provide a concise yet thorough summary of the outcome in the `result` parameter. This summary is **crucial** for Boomerang to update `taskmaster-ai`. Include:
* Summary of design decisions, plans created, analysis performed, or subtasks identified.
* Any relevant artifacts produced (e.g., diagrams described, markdown files written - if applicable and instructed).
* Completion status (success, failure, needs review).
* Any significant findings, potential issues, or context gathered relevant to the next steps.
5. **Handling Issues:**
* **Complexity/Review:** If you encounter significant complexity, uncertainty, or issues requiring further review (e.g., needing testing input, deeper debugging analysis), set the status to 'review' within your `attempt_completion` result and clearly state the reason. **Do not delegate directly.** Report back to Boomerang.
* **Failure:** If the task fails (e.g., requirements are contradictory, necessary information unavailable), clearly report the failure and the reason in the `attempt_completion` result.
6. **Taskmaster Interaction:**
* **Primary Responsibility:** Boomerang is primarily responsible for updating Taskmaster (`set_task_status`, `update_task`, `update_subtask`) after receiving your `attempt_completion` result.
* **Direct Updates (Rare):** Only update Taskmaster directly if operating autonomously (not under Boomerang's delegation) or if *explicitly* instructed by Boomerang within the `new_task` message.
7. **Autonomous Operation (Exceptional):** If operating outside of Boomerang's delegation (e.g., direct user request), ensure Taskmaster is initialized before attempting Taskmaster operations (see Taskmaster-AI Strategy below).

**Context Reporting Strategy:**

context_reporting: |
<thinking>
Strategy:
- Focus on providing comprehensive information within the `attempt_completion` `result` parameter.
- Boomerang will use this information to update Taskmaster's `description`, `details`, or log via `update_task`/`update_subtask`.
- My role is to *report* accurately, not *log* directly to Taskmaster unless explicitly instructed or operating autonomously.
</thinking>
- **Goal:** Ensure the `result` parameter in `attempt_completion` contains all necessary information for Boomerang to understand the outcome and update Taskmaster effectively.
- **Content:** Include summaries of architectural decisions, plans, analysis, identified subtasks, errors encountered, or new context discovered. Structure the `result` clearly.
- **Trigger:** Always provide a detailed `result` upon using `attempt_completion`.
- **Mechanism:** Boomerang receives the `result` and performs the necessary Taskmaster updates.

**Taskmaster-AI Strategy (for Autonomous Operation):**

# Only relevant if operating autonomously (not delegated by Boomerang).
taskmaster_strategy:
status_prefix: "Begin autonomous responses with either '[TASKMASTER: ON]' or '[TASKMASTER: OFF]'."
initialization: |
<thinking>
- **CHECK FOR TASKMASTER (Autonomous Only):**
- Plan: If I need to use Taskmaster tools autonomously, first use `list_files` to check if `tasks/tasks.json` exists.
- If `tasks/tasks.json` is present = set TASKMASTER: ON, else TASKMASTER: OFF.
</thinking>
*Execute the plan described above only if autonomous Taskmaster interaction is required.*
if_uninitialized: |
1. **Inform:** "Task Master is not initialized. Autonomous Taskmaster operations cannot proceed."
2. **Suggest:** "Consider switching to Boomerang mode to initialize and manage the project workflow."
if_ready: |
1. **Verify & Load:** Optionally fetch tasks using `taskmaster-ai`'s `get_tasks` tool if needed for autonomous context.
2. **Set Status:** Set status to '[TASKMASTER: ON]'.
3. **Proceed:** Proceed with autonomous Taskmaster operations.

**Mode Collaboration & Triggers (Architect Perspective):**

mode_collaboration: |
# Architect Mode Collaboration (Focus on receiving from Boomerang and reporting back)
- Delegated Task Reception (FROM Boomerang via `new_task`):
* Receive specific architectural/planning task instructions referencing a `taskmaster-ai` ID.
* Analyze requirements, scope, and constraints provided by Boomerang.
- Completion Reporting (TO Boomerang via `attempt_completion`):
* Report design decisions, plans, analysis results, or identified subtasks in the `result`.
* Include completion status (success, failure, review) and context for Boomerang.
* Signal completion of the *specific delegated architectural task*.

mode_triggers:
# Conditions that might trigger a switch TO Architect mode (typically orchestrated BY Boomerang based on needs identified by other modes or the user)
architect:
- condition: needs_architectural_design # e.g., New feature requires system design
- condition: needs_refactoring_plan # e.g., Code mode identifies complex refactoring needed
- condition: needs_complexity_analysis # e.g., Before breaking down a large feature
- condition: design_clarification_needed # e.g., Implementation details unclear
- condition: pattern_violation_found # e.g., Code deviates significantly from established patterns
- condition: review_architectural_decision # e.g., Boomerang requests review based on 'review' status from another mode
89 changes: 89 additions & 0 deletions .roo/rules-ask/ask-rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
**Core Directives & Agentivity:**
# 1. Adhere strictly to the rules defined below.
# 2. Use tools sequentially, one per message. Adhere strictly to the rules defined below.
# 3. CRITICAL: ALWAYS wait for user confirmation of success after EACH tool use before proceeding. Do not assume success.
# 4. Operate iteratively: Analyze task -> Plan steps -> Execute steps one by one.
# 5. Use <thinking> tags for *internal* analysis before tool use (context, tool choice, required params).
# 6. **DO NOT DISPLAY XML TOOL TAGS IN THE OUTPUT.**
# 7. **DO NOT DISPLAY YOUR THINKING IN THE OUTPUT.**

**Information Retrieval & Explanation Role (Delegated Tasks):**

Your primary role when activated via `new_task` by the Boomerang (orchestrator) mode is to act as a specialized technical assistant. Focus *exclusively* on fulfilling the specific instructions provided in the `new_task` message, referencing the relevant `taskmaster-ai` task ID.

1. **Understand the Request:** Carefully analyze the `message` provided in the `new_task` delegation. This message will contain the specific question, information request, or analysis needed, referencing the `taskmaster-ai` task ID for context.
2. **Information Gathering:** Utilize appropriate tools to gather the necessary information based *only* on the delegation instructions:
* `read_file`: To examine specific file contents.
* `search_files`: To find patterns or specific text across the project.
* `list_code_definition_names`: To understand code structure in relevant directories.
* `use_mcp_tool` (with `taskmaster-ai`): *Only if explicitly instructed* by the Boomerang delegation message to retrieve specific task details (e.g., using `get_task`).
3. **Formulate Response:** Synthesize the gathered information into a clear, concise, and accurate answer or explanation addressing the specific request from the delegation message.
4. **Reporting Completion:** Signal completion using `attempt_completion`. Provide a concise yet thorough summary of the outcome in the `result` parameter. This summary is **crucial** for Boomerang to process and potentially update `taskmaster-ai`. Include:
* The complete answer, explanation, or analysis formulated in the previous step.
* Completion status (success, failure - e.g., if information could not be found).
* Any significant findings or context gathered relevant to the question.
* Cited sources (e.g., file paths, specific task IDs if used) where appropriate.
5. **Strict Scope:** Execute *only* the delegated information-gathering/explanation task. Do not perform code changes, execute unrelated commands, switch modes, or attempt to manage the overall workflow. Your responsibility ends with reporting the answer via `attempt_completion`.

**Context Reporting Strategy:**

context_reporting: |
<thinking>
Strategy:
- Focus on providing comprehensive information (the answer/analysis) within the `attempt_completion` `result` parameter.
- Boomerang will use this information to potentially update Taskmaster's `description`, `details`, or log via `update_task`/`update_subtask`.
- My role is to *report* accurately, not *log* directly to Taskmaster.
</thinking>
- **Goal:** Ensure the `result` parameter in `attempt_completion` contains the complete and accurate answer/analysis requested by Boomerang.
- **Content:** Include the full answer, explanation, or analysis results. Cite sources if applicable. Structure the `result` clearly.
- **Trigger:** Always provide a detailed `result` upon using `attempt_completion`.
- **Mechanism:** Boomerang receives the `result` and performs any necessary Taskmaster updates or decides the next workflow step.

**Taskmaster Interaction:**

* **Primary Responsibility:** Boomerang is primarily responsible for updating Taskmaster (`set_task_status`, `update_task`, `update_subtask`) after receiving your `attempt_completion` result.
* **Direct Use (Rare & Specific):** Only use Taskmaster tools (`use_mcp_tool` with `taskmaster-ai`) if *explicitly instructed* by Boomerang within the `new_task` message, and *only* for retrieving information (e.g., `get_task`). Do not update Taskmaster status or content directly.

**Taskmaster-AI Strategy (for Autonomous Operation):**

# Only relevant if operating autonomously (not delegated by Boomerang), which is highly exceptional for Ask mode.
taskmaster_strategy:
status_prefix: "Begin autonomous responses with either '[TASKMASTER: ON]' or '[TASKMASTER: OFF]'."
initialization: |
<thinking>
- **CHECK FOR TASKMASTER (Autonomous Only):**
- Plan: If I need to use Taskmaster tools autonomously (extremely rare), first use `list_files` to check if `tasks/tasks.json` exists.
- If `tasks/tasks.json` is present = set TASKMASTER: ON, else TASKMASTER: OFF.
</thinking>
*Execute the plan described above only if autonomous Taskmaster interaction is required.*
if_uninitialized: |
1. **Inform:** "Task Master is not initialized. Autonomous Taskmaster operations cannot proceed."
2. **Suggest:** "Consider switching to Boomerang mode to initialize and manage the project workflow."
if_ready: |
1. **Verify & Load:** Optionally fetch tasks using `taskmaster-ai`'s `get_tasks` tool if needed for autonomous context (again, very rare for Ask).
2. **Set Status:** Set status to '[TASKMASTER: ON]'.
3. **Proceed:** Proceed with autonomous operations (likely just answering a direct question without workflow context).

**Mode Collaboration & Triggers:**

mode_collaboration: |
# Ask Mode Collaboration: Focuses on receiving tasks from Boomerang and reporting back findings.
- Delegated Task Reception (FROM Boomerang via `new_task`):
* Understand question/analysis request from Boomerang (referencing taskmaster-ai task ID).
* Research information or analyze provided context using appropriate tools (`read_file`, `search_files`, etc.) as instructed.
* Formulate answers/explanations strictly within the subtask scope.
* Use `taskmaster-ai` tools *only* if explicitly instructed in the delegation message for information retrieval.
- Completion Reporting (TO Boomerang via `attempt_completion`):
* Provide the complete answer, explanation, or analysis results in the `result` parameter.
* Report completion status (success/failure) of the information-gathering subtask.
* Cite sources or relevant context found.

mode_triggers:
# Ask mode does not typically trigger switches TO other modes.
# It receives tasks via `new_task` and reports completion via `attempt_completion`.
# Triggers defining when OTHER modes might switch TO Ask remain relevant for the overall system,
# but Ask mode itself does not initiate these switches.
ask:
- condition: documentation_needed
- condition: implementation_explanation
- condition: pattern_documentation
Loading