@heylemon/lemonade 0.3.4 → 0.3.6
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.
|
@@ -342,8 +342,11 @@ export function buildAgentSystemPrompt(params) {
|
|
|
342
342
|
"For screenshots of native macOS windows: use Peekaboo (`peekaboo image`) via exec if the skill is available.",
|
|
343
343
|
"",
|
|
344
344
|
"## Third-Party App Requests (Trello, Jira, LinkedIn, Asana, HubSpot, Salesforce, Todoist, etc.)",
|
|
345
|
-
"
|
|
346
|
-
|
|
345
|
+
"The ONLY dedicated `lemon-*` CLIs are: lemon-gmail, lemon-calendar, lemon-drive, lemon-docs, lemon-sheets, lemon-slides, lemon-notion, lemon-slack, lemon-youtube, lemon-twitter.",
|
|
346
|
+
"For ALL other services, there is ONE universal tool: `lemon-composio`. Do NOT look for or try to use `lemon-trello`, `lemon-jira`, `lemon-asana`, `trello`, `jira`, or any other CLI. They do not exist. Do NOT search the web for how to set up these tools. Do NOT ask the user for API keys.",
|
|
347
|
+
"",
|
|
348
|
+
"When the user mentions ANY service not in the list above, follow this EXACT sequence:",
|
|
349
|
+
'1. Run `lemon-composio search "<what the user wants>"` — this is your FIRST action. No web search. No browser. No questions.',
|
|
347
350
|
"2. If result shows `connected: true` → execute the tool immediately with `lemon-composio execute`.",
|
|
348
351
|
'3. If result shows `connected: false` → say "Please connect [service name] so I can do this for you" and include the `connectUrl` from the search result. Then STOP and wait.',
|
|
349
352
|
"4. Once the user confirms they connected → execute the tool.",
|
|
@@ -352,8 +355,10 @@ export function buildAgentSystemPrompt(params) {
|
|
|
352
355
|
'- "I don\'t have [X] integration/connected"',
|
|
353
356
|
'- "I can help you create tasks in other tools instead"',
|
|
354
357
|
'- "Would you like to use [alternative] instead?"',
|
|
355
|
-
|
|
356
|
-
"
|
|
358
|
+
"- Any numbered list of alternative tools",
|
|
359
|
+
"- Instructions to get API keys, tokens, or set up CLI auth for third-party services",
|
|
360
|
+
"- Opening a browser to look up how to use a third-party service",
|
|
361
|
+
"If the user says Trello, they want Trello. Not Reminders. Not Things. Not Notion. Run `lemon-composio search` and make it happen.",
|
|
357
362
|
"",
|
|
358
363
|
"## URLs & Quick Open",
|
|
359
364
|
"",
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f5fd85425915f9fe3e2ad069eeba44dc7af92e8c21a42cce556496a849bc644c
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heylemon/lemonade",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"description": "AI gateway CLI for Lemon - local AI assistant with integrations",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "restricted"
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
"lemon-slides": "./bin/lemon-slides",
|
|
26
26
|
"lemon-youtube": "./bin/lemon-youtube",
|
|
27
27
|
"lemon-cron": "./bin/lemon-cron",
|
|
28
|
-
"lemon-jira": "./bin/lemon-jira",
|
|
29
28
|
"lemon-twitter": "./bin/lemon-twitter",
|
|
30
29
|
"lemon-composio": "./bin/lemon-composio"
|
|
31
30
|
},
|
package/bin/lemon-jira
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Lemon Jira CLI - Manage Jira issues via Composio
|
|
3
|
-
# Resolve symlinks to find the real script directory
|
|
4
|
-
SCRIPT_PATH="$0"
|
|
5
|
-
while [[ -L "$SCRIPT_PATH" ]]; do
|
|
6
|
-
SCRIPT_DIR="$(cd -P "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
7
|
-
SCRIPT_PATH="$(readlink "$SCRIPT_PATH")"
|
|
8
|
-
[[ "$SCRIPT_PATH" != /* ]] && SCRIPT_PATH="$SCRIPT_DIR/$SCRIPT_PATH"
|
|
9
|
-
done
|
|
10
|
-
SCRIPT_DIR="$(cd -P "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
11
|
-
source "$SCRIPT_DIR/lemon-cli-header.sh"
|
|
12
|
-
|
|
13
|
-
case "$1" in
|
|
14
|
-
status)
|
|
15
|
-
api_call GET "/api/lemonade/tools/status" | jq '{hasJira}'
|
|
16
|
-
;;
|
|
17
|
-
issues)
|
|
18
|
-
[[ -z "$2" ]] && echo "Usage: lemon-jira issues <project_key> [max]" && exit 1
|
|
19
|
-
max="${3:-20}"
|
|
20
|
-
api_call POST "/api/lemonade/tools/execute" \
|
|
21
|
-
'{"toolName": "JIRA_SEARCH_ISSUES", "parameters": {"project_key": "'"$2"'", "max_results": '"$max"'}}'
|
|
22
|
-
;;
|
|
23
|
-
my-issues)
|
|
24
|
-
api_call POST "/api/lemonade/tools/execute" \
|
|
25
|
-
'{"toolName": "JIRA_SEARCH_ISSUES", "parameters": {"assignee": "currentUser()", "max_results": 20}}'
|
|
26
|
-
;;
|
|
27
|
-
search)
|
|
28
|
-
[[ -z "$2" ]] && echo "Usage: lemon-jira search <jql_or_text>" && exit 1
|
|
29
|
-
# If it looks like JQL (contains = or AND/OR), use jql param; otherwise text search
|
|
30
|
-
if [[ "$2" == *"="* ]] || [[ "$2" == *" AND "* ]] || [[ "$2" == *" OR "* ]]; then
|
|
31
|
-
api_call POST "/api/lemonade/tools/execute" \
|
|
32
|
-
'{"toolName": "JIRA_SEARCH_ISSUES", "parameters": {"jql": "'"$2"'", "max_results": 20}}'
|
|
33
|
-
else
|
|
34
|
-
api_call POST "/api/lemonade/tools/execute" \
|
|
35
|
-
'{"toolName": "JIRA_SEARCH_ISSUES", "parameters": {"text_search": "'"$2"'", "max_results": 20}}'
|
|
36
|
-
fi
|
|
37
|
-
;;
|
|
38
|
-
create)
|
|
39
|
-
[[ -z "$2" ]] || [[ -z "$3" ]] && echo "Usage: lemon-jira create <project_key> <summary> [type] [description]" && exit 1
|
|
40
|
-
type="${4:-Task}"
|
|
41
|
-
desc="${5:-}"
|
|
42
|
-
if [[ -n "$desc" ]]; then
|
|
43
|
-
CREATE_JSON=$(jq -n --arg proj "$2" --arg summary "$3" --arg itype "$type" --arg desc "$desc" \
|
|
44
|
-
'{toolName: "JIRA_CREATE_ISSUE", parameters: {project_key: $proj, summary: $summary, issue_type: $itype, description: $desc}}')
|
|
45
|
-
else
|
|
46
|
-
CREATE_JSON=$(jq -n --arg proj "$2" --arg summary "$3" --arg itype "$type" \
|
|
47
|
-
'{toolName: "JIRA_CREATE_ISSUE", parameters: {project_key: $proj, summary: $summary, issue_type: $itype}}')
|
|
48
|
-
fi
|
|
49
|
-
echo "$CREATE_JSON" | curl -s -X POST \
|
|
50
|
-
-H "Authorization: Bearer ${GATEWAY_TOKEN}" \
|
|
51
|
-
-H "Content-Type: application/json" \
|
|
52
|
-
-d @- \
|
|
53
|
-
"${LEMON_BACKEND_URL}/api/lemonade/tools/execute"
|
|
54
|
-
;;
|
|
55
|
-
get)
|
|
56
|
-
[[ -z "$2" ]] && echo "Usage: lemon-jira get <issue_key>" && exit 1
|
|
57
|
-
api_call POST "/api/lemonade/tools/execute" \
|
|
58
|
-
'{"toolName": "JIRA_GET_ISSUE", "parameters": {"issue_id_or_key": "'"$2"'"}}'
|
|
59
|
-
;;
|
|
60
|
-
comment)
|
|
61
|
-
[[ -z "$2" ]] || [[ -z "$3" ]] && echo "Usage: lemon-jira comment <issue_key> <body>" && exit 1
|
|
62
|
-
COMMENT_JSON=$(jq -n --arg key "$2" --arg body "$3" \
|
|
63
|
-
'{toolName: "JIRA_ADD_COMMENT", parameters: {issue_id_or_key: $key, comment: $body}}')
|
|
64
|
-
echo "$COMMENT_JSON" | curl -s -X POST \
|
|
65
|
-
-H "Authorization: Bearer ${GATEWAY_TOKEN}" \
|
|
66
|
-
-H "Content-Type: application/json" \
|
|
67
|
-
-d @- \
|
|
68
|
-
"${LEMON_BACKEND_URL}/api/lemonade/tools/execute"
|
|
69
|
-
;;
|
|
70
|
-
transition)
|
|
71
|
-
[[ -z "$2" ]] || [[ -z "$3" ]] && echo "Usage: lemon-jira transition <issue_key> <status_name>" && exit 1
|
|
72
|
-
api_call POST "/api/lemonade/tools/execute" \
|
|
73
|
-
'{"toolName": "JIRA_TRANSITION_ISSUE", "parameters": {"issue_id_or_key": "'"$2"'", "transition_id_or_name": "'"$3"'"}}'
|
|
74
|
-
;;
|
|
75
|
-
projects)
|
|
76
|
-
api_call POST "/api/lemonade/tools/execute" \
|
|
77
|
-
'{"toolName": "JIRA_GET_ALL_PROJECTS", "parameters": {"maxResults": 50}}'
|
|
78
|
-
;;
|
|
79
|
-
*)
|
|
80
|
-
echo "Lemon Jira CLI"
|
|
81
|
-
echo ""
|
|
82
|
-
echo "Commands:"
|
|
83
|
-
echo " lemon-jira issues <project> [max] - List project issues"
|
|
84
|
-
echo " lemon-jira my-issues - My assigned issues"
|
|
85
|
-
echo " lemon-jira search <jql_or_text> - Search issues (JQL or text)"
|
|
86
|
-
echo " lemon-jira create <proj> <summary> [type] - Create issue (type default: Task)"
|
|
87
|
-
echo " lemon-jira get <issue_key> - Get issue details"
|
|
88
|
-
echo " lemon-jira comment <key> <body> - Add comment"
|
|
89
|
-
echo " lemon-jira transition <key> <status> - Change status"
|
|
90
|
-
echo " lemon-jira projects - List all projects"
|
|
91
|
-
echo " lemon-jira status - Check connection"
|
|
92
|
-
;;
|
|
93
|
-
esac
|