auxilo-mcp 0.2.0 → 0.8.1
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/README.md +49 -14
- package/bin/auxilo-cli.js +425 -0
- package/lib/installer.js +601 -0
- package/lib/review.js +124 -0
- package/lib/sensitivity-filter.js +382 -0
- package/mcp-server.js +454 -48
- package/package.json +22 -5
- package/prompts/auxilo-learning-claude-code.md +250 -0
- package/prompts/auxilo-learning-generic.md +327 -0
- package/prompts/auxilo-learning-schema.json +98 -0
- package/scripts/hooks/auxilo-extract.sh +49 -0
- package/scripts/runner.js +843 -0
- package/scripts/sources/claude-code.js +182 -0
- package/scripts/sources/openclaw.js +171 -0
- package/scripts/sources/source.interface.js +85 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Auxilo Learning Submission",
|
|
4
|
+
"description": "Structured output schema for autonomous learning extraction and publishing.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["title", "body", "category", "tags", "task_context", "outcome", "contributor_wallet"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"title": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 10,
|
|
11
|
+
"maxLength": 200,
|
|
12
|
+
"description": "Concise, searchable title for the learning."
|
|
13
|
+
},
|
|
14
|
+
"body": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 50,
|
|
17
|
+
"maxLength": 50000,
|
|
18
|
+
"description": "Full learning content. Must be standalone -- a reader should not need the original conversation."
|
|
19
|
+
},
|
|
20
|
+
"category": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"enum": [
|
|
23
|
+
"data-processing", "web-interaction", "code-execution",
|
|
24
|
+
"communication", "storage-state", "content-generation",
|
|
25
|
+
"payment-financial", "monitoring"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"tags": {
|
|
29
|
+
"type": "array",
|
|
30
|
+
"items": { "type": "string", "pattern": "^[a-z0-9-]+$" },
|
|
31
|
+
"minItems": 1,
|
|
32
|
+
"maxItems": 10
|
|
33
|
+
},
|
|
34
|
+
"task_context": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"minLength": 10,
|
|
37
|
+
"description": "What problem or task produced this learning."
|
|
38
|
+
},
|
|
39
|
+
"outcome": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"enum": ["success", "partial", "failure", "workaround"]
|
|
42
|
+
},
|
|
43
|
+
"contributor_wallet": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"pattern": "^0x[a-fA-F0-9]{40}$"
|
|
46
|
+
},
|
|
47
|
+
"contributor_agent": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"default": "unknown"
|
|
50
|
+
},
|
|
51
|
+
"related_skills": {
|
|
52
|
+
"type": "array",
|
|
53
|
+
"items": { "type": "string" },
|
|
54
|
+
"default": []
|
|
55
|
+
},
|
|
56
|
+
"unlock_price": {
|
|
57
|
+
"type": "number",
|
|
58
|
+
"minimum": 0.005,
|
|
59
|
+
"maximum": 1.00,
|
|
60
|
+
"default": 0.005
|
|
61
|
+
},
|
|
62
|
+
"quality_self_assessment": {
|
|
63
|
+
"type": "object",
|
|
64
|
+
"properties": {
|
|
65
|
+
"specificity": { "type": "integer", "minimum": 1, "maximum": 5 },
|
|
66
|
+
"actionability": { "type": "integer", "minimum": 1, "maximum": 5 },
|
|
67
|
+
"novelty": { "type": "integer", "minimum": 1, "maximum": 5 },
|
|
68
|
+
"completeness": { "type": "integer", "minimum": 1, "maximum": 5 },
|
|
69
|
+
"total": { "type": "integer", "minimum": 4, "maximum": 20 },
|
|
70
|
+
"reasoning": { "type": "string" },
|
|
71
|
+
"extraction_confidence": { "type": "number", "minimum": 0.0, "maximum": 1.0 }
|
|
72
|
+
},
|
|
73
|
+
"required": ["specificity", "actionability", "novelty", "completeness", "total"]
|
|
74
|
+
},
|
|
75
|
+
"extraction_context": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"trigger": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"enum": ["problem_solved", "undocumented_behavior", "synthesis", "bug_fix", "user_request"]
|
|
81
|
+
},
|
|
82
|
+
"conversation_turns": { "type": "integer", "minimum": 0 },
|
|
83
|
+
"dedup_check_status": {
|
|
84
|
+
"type": "string",
|
|
85
|
+
"enum": ["checked", "skipped", "error"]
|
|
86
|
+
},
|
|
87
|
+
"dedup_similar_ids": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": { "type": "string" }
|
|
90
|
+
},
|
|
91
|
+
"source_type": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"enum": ["conversation", "memory_file", "code_review", "synthesis"]
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Auxilo SessionEnd hook — packaged template (LW-12).
|
|
3
|
+
#
|
|
4
|
+
# Preferred install path: `npx auxilo setup` GENERATES a copy of this hook at
|
|
5
|
+
# ~/.auxilo/bin/auxilo-extract.sh with absolute paths embedded (lib/installer.js
|
|
6
|
+
# renderHookScript). This template is the $HOME-relative fallback used by the
|
|
7
|
+
# legacy `scripts/runner.js --install-hooks` copy step.
|
|
8
|
+
#
|
|
9
|
+
# Reads the Claude Code SessionEnd JSON from stdin, extracts the transcript
|
|
10
|
+
# path, and spawns the extraction runner detached so shutdown is not blocked.
|
|
11
|
+
# Runner location per P1-13: executable surface lives in ~/.auxilo/bin —
|
|
12
|
+
# NEVER under ~/Documents (macOS TCC blocks launchd/hook execution there).
|
|
13
|
+
|
|
14
|
+
set -u
|
|
15
|
+
|
|
16
|
+
# Kill-switch: runner fires only if the consent sentinel exists.
|
|
17
|
+
# enable: npx auxilo setup (consent step) disable: npx auxilo disable
|
|
18
|
+
if [ ! -f "$HOME/.auxilo/autonomous-enabled" ]; then
|
|
19
|
+
exit 0
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# Recursion guard: bail if we're already inside an extraction chain.
|
|
23
|
+
if [ "${AUXILO_EXTRACTING:-0}" = "1" ]; then
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
input_json=$(cat)
|
|
28
|
+
|
|
29
|
+
transcript_path=$(printf '%s' "$input_json" | /usr/bin/env node -e 'let d="";process.stdin.on("data",c=>d+=c).on("end",()=>{try{process.stdout.write(JSON.parse(d).transcript_path||"")}catch{}})' 2>/dev/null)
|
|
30
|
+
|
|
31
|
+
if [ -z "$transcript_path" ] || [ ! -f "$transcript_path" ]; then
|
|
32
|
+
exit 0
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
RUNNER="$HOME/.auxilo/bin/scripts/runner.js"
|
|
36
|
+
if [ ! -f "$RUNNER" ]; then
|
|
37
|
+
exit 0
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
mkdir -p "$HOME/.auxilo"
|
|
41
|
+
LOG="$HOME/.auxilo/extract.log"
|
|
42
|
+
|
|
43
|
+
# Spawn detached — do not block session teardown.
|
|
44
|
+
# P1-13 lesson: do NOT set AUXILO_EXTRACTING here — runner.js's own recursion
|
|
45
|
+
# guard would trip and silently no-op every run. The runner sets it itself
|
|
46
|
+
# for child processes.
|
|
47
|
+
nohup /usr/bin/env node "$RUNNER" --transcript "$transcript_path" >> "$LOG" 2>&1 &
|
|
48
|
+
|
|
49
|
+
exit 0
|