@adityaaria/spark 6.0.16 → 6.0.17
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.
- package/bin/spark-install.sh +20 -14
- package/package.json +1 -1
- package/skills/using-spark/SKILL.md +7 -3
package/bin/spark-install.sh
CHANGED
|
@@ -23,10 +23,11 @@ readonly LOCK_FILE_NAME=".spark-lock.json"
|
|
|
23
23
|
if [ -t 1 ]; then
|
|
24
24
|
readonly C_RESET='\033[0m'
|
|
25
25
|
readonly C_BOLD='\033[1m'
|
|
26
|
-
readonly C_GREEN='\033[
|
|
27
|
-
readonly C_YELLOW='\033[
|
|
28
|
-
readonly C_RED='\033[
|
|
29
|
-
readonly C_CYAN='\033[
|
|
26
|
+
readonly C_GREEN='\033[38;5;46m' # 8-bit neon green
|
|
27
|
+
readonly C_YELLOW='\033[38;5;226m' # 8-bit bright yellow
|
|
28
|
+
readonly C_RED='\033[38;5;196m' # 8-bit bright red
|
|
29
|
+
readonly C_CYAN='\033[38;5;51m' # 8-bit cyan
|
|
30
|
+
readonly C_MAGENTA='\033[38;5;201m' # 8-bit magenta
|
|
30
31
|
readonly C_DIM='\033[2m'
|
|
31
32
|
else
|
|
32
33
|
readonly C_RESET=''
|
|
@@ -35,6 +36,7 @@ else
|
|
|
35
36
|
readonly C_YELLOW=''
|
|
36
37
|
readonly C_RED=''
|
|
37
38
|
readonly C_CYAN=''
|
|
39
|
+
readonly C_MAGENTA=''
|
|
38
40
|
readonly C_DIM=''
|
|
39
41
|
fi
|
|
40
42
|
|
|
@@ -46,15 +48,19 @@ readonly EXIT_NO_REPO=3
|
|
|
46
48
|
readonly EXIT_INSTALL_FAILED=4
|
|
47
49
|
|
|
48
50
|
# =============================================================================
|
|
49
|
-
# Output helpers
|
|
51
|
+
# Output helpers (8-Bit Theme)
|
|
50
52
|
# =============================================================================
|
|
51
53
|
|
|
52
|
-
info() { printf "${C_CYAN}
|
|
53
|
-
success() { printf "${C_GREEN}
|
|
54
|
-
warn() { printf "${C_YELLOW}
|
|
55
|
-
error() { printf "${C_RED}
|
|
56
|
-
step() { printf "${
|
|
57
|
-
header() {
|
|
54
|
+
info() { printf "${C_CYAN}►${C_RESET} %s\n" "$*"; }
|
|
55
|
+
success() { printf "${C_GREEN}★${C_RESET} %s\n" "$*"; }
|
|
56
|
+
warn() { printf "${C_YELLOW}▲${C_RESET} %s\n" "$*" >&2; }
|
|
57
|
+
error() { printf "${C_RED}[X]${C_RESET} %s\n" "$*" >&2; }
|
|
58
|
+
step() { printf "${C_MAGENTA}[LVL %s/%s]${C_RESET} %s\n" "$1" "$2" "$3"; }
|
|
59
|
+
header() {
|
|
60
|
+
printf "\n${C_MAGENTA}▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄${C_RESET}\n"
|
|
61
|
+
printf "${C_MAGENTA}█${C_RESET} ${C_BOLD}%-35s${C_RESET} ${C_MAGENTA}█${C_RESET}\n" " $1 "
|
|
62
|
+
printf "${C_MAGENTA}▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀${C_RESET}\n\n"
|
|
63
|
+
}
|
|
58
64
|
|
|
59
65
|
# =============================================================================
|
|
60
66
|
# Argument parsing
|
|
@@ -310,7 +316,7 @@ detect_agents() {
|
|
|
310
316
|
info "Detected $detected_count agent(s):"
|
|
311
317
|
for i in "${!AGENT_IDS[@]}"; do
|
|
312
318
|
if [ "${AGENT_DETECTED[$i]}" = "true" ]; then
|
|
313
|
-
printf " ${C_GREEN}
|
|
319
|
+
printf " ${C_GREEN}■${C_RESET} %-15s ${C_DIM}(%s)${C_RESET}\n" "${AGENT_LABELS[$i]}" "${AGENT_REASONS[$i]}"
|
|
314
320
|
fi
|
|
315
321
|
done
|
|
316
322
|
fi
|
|
@@ -765,7 +771,7 @@ print_summary() {
|
|
|
765
771
|
method="$(echo "$entry" | cut -d: -f2)"
|
|
766
772
|
local target_dir
|
|
767
773
|
target_dir="$(get_target_dir "$agent_id")"
|
|
768
|
-
printf " ${C_GREEN}
|
|
774
|
+
printf " ${C_GREEN}■${C_RESET} %-15s → %s ${C_DIM}(%s)${C_RESET}\n" "$agent_id" "$target_dir" "$method"
|
|
769
775
|
done
|
|
770
776
|
fi
|
|
771
777
|
|
|
@@ -773,7 +779,7 @@ print_summary() {
|
|
|
773
779
|
echo ""
|
|
774
780
|
echo " Errors:"
|
|
775
781
|
for entry in "${INSTALL_ERRORS[@]}"; do
|
|
776
|
-
printf " ${C_RED}
|
|
782
|
+
printf " ${C_RED}■${C_RESET} %s\n" "$entry"
|
|
777
783
|
done
|
|
778
784
|
fi
|
|
779
785
|
|
package/package.json
CHANGED
|
@@ -49,6 +49,10 @@ Skills speak in actions ("dispatch a subagent", "create a todo", "read a file")
|
|
|
49
49
|
|
|
50
50
|
**Invoke relevant or requested skills BEFORE any response or action.** Even a 1% chance a skill might apply means that you should invoke the skill to check. If an invoked skill turns out to be wrong for the situation, you don't need to use it.
|
|
51
51
|
|
|
52
|
+
## Announcement Format
|
|
53
|
+
When you invoke a skill, you MUST announce it to the developer using exactly this format as the very first thing you say:
|
|
54
|
+
`spark detection 💥 Using [skill] to [purpose]`
|
|
55
|
+
|
|
52
56
|
```dot
|
|
53
57
|
digraph skill_flow {
|
|
54
58
|
"User message received" [shape=doublecircle];
|
|
@@ -57,7 +61,7 @@ digraph skill_flow {
|
|
|
57
61
|
"Invoke brainstorming skill" [shape=box];
|
|
58
62
|
"Might any skill apply?" [shape=diamond];
|
|
59
63
|
"Invoke the skill" [shape=box];
|
|
60
|
-
"Announce: 'Using [skill]
|
|
64
|
+
"Announce: 'spark detection 💥 Using [skill]...'" [shape=box];
|
|
61
65
|
"Has checklist?" [shape=diamond];
|
|
62
66
|
"Create a todo per item" [shape=box];
|
|
63
67
|
"Follow skill exactly" [shape=box];
|
|
@@ -71,8 +75,8 @@ digraph skill_flow {
|
|
|
71
75
|
"User message received" -> "Might any skill apply?";
|
|
72
76
|
"Might any skill apply?" -> "Invoke the skill" [label="yes, even 1%"];
|
|
73
77
|
"Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];
|
|
74
|
-
"Invoke the skill" -> "Announce: 'Using [skill]
|
|
75
|
-
"Announce: 'Using [skill]
|
|
78
|
+
"Invoke the skill" -> "Announce: 'spark detection 💥 Using [skill]...'";
|
|
79
|
+
"Announce: 'spark detection 💥 Using [skill]...'" -> "Has checklist?";
|
|
76
80
|
"Has checklist?" -> "Create a todo per item" [label="yes"];
|
|
77
81
|
"Has checklist?" -> "Follow skill exactly" [label="no"];
|
|
78
82
|
"Create a todo per item" -> "Follow skill exactly";
|