azclaude-copilot 0.5.2 → 0.5.3
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 +2 -2
- package/package.json +1 -1
- package/templates/scripts/statusline.js +30 -0
package/README.md
CHANGED
|
@@ -758,11 +758,11 @@ An agent is a sub-process. Use one when work must happen **in parallel** or **in
|
|
|
758
758
|
|
|
759
759
|
## Verified
|
|
760
760
|
|
|
761
|
-
|
|
761
|
+
1767 tests. Every template, command, capability, agent, hook, and CLI feature verified.
|
|
762
762
|
|
|
763
763
|
```bash
|
|
764
764
|
bash tests/test-features.sh
|
|
765
|
-
# Results:
|
|
765
|
+
# Results: 1767 passed, 0 failed, 1767 total
|
|
766
766
|
```
|
|
767
767
|
|
|
768
768
|
---
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "azclaude-copilot",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "AI coding environment — 39 commands, 10 skills, 15 agents, memory, reflexes, evolution. Install: npx azclaude-copilot@latest, then open Claude Code.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"azclaude": "bin/cli.js",
|
|
@@ -33,6 +33,30 @@ process.stdin.on('end', () => {
|
|
|
33
33
|
const cachWrite = data.context_window?.current_usage?.cache_creation_input_tokens || 0;
|
|
34
34
|
const cachRead = data.context_window?.current_usage?.cache_read_input_tokens || 0;
|
|
35
35
|
|
|
36
|
+
// ── Agent + Skill usage (from observations.jsonl — tracked by post-tool-use hook) ──
|
|
37
|
+
const fs = require('fs');
|
|
38
|
+
const path = require('path');
|
|
39
|
+
const projectDir = data.workspace?.current_dir || data.workspace?.project_dir || process.cwd();
|
|
40
|
+
const sessionPid = process.ppid || process.pid;
|
|
41
|
+
let agentCount = 0, skillCount = 0;
|
|
42
|
+
try {
|
|
43
|
+
const obsPath = path.join(projectDir, '.claude', 'memory', 'reflexes', 'observations.jsonl');
|
|
44
|
+
if (fs.existsSync(obsPath)) {
|
|
45
|
+
const lines = fs.readFileSync(obsPath, 'utf8').split('\n').filter(Boolean);
|
|
46
|
+
for (const line of lines) {
|
|
47
|
+
try {
|
|
48
|
+
const obs = JSON.parse(line);
|
|
49
|
+
// Count only this session's observations
|
|
50
|
+
if (String(obs.session) !== String(sessionPid)) continue;
|
|
51
|
+
if (obs.tool === 'Agent' || obs.tool === 'Task') agentCount++;
|
|
52
|
+
if (obs.tool === 'Skill') skillCount++;
|
|
53
|
+
// Also count Read calls on SKILL.md files as skill usage
|
|
54
|
+
if (obs.tool === 'Read' && obs.file && /skills\/.*SKILL\.md/.test(obs.file)) skillCount++;
|
|
55
|
+
} catch (_) {}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
} catch (_) {}
|
|
59
|
+
|
|
36
60
|
// ── Format helpers ──
|
|
37
61
|
const durSec = Math.floor(durMs / 1000);
|
|
38
62
|
const mins = Math.floor(durSec / 60);
|
|
@@ -134,6 +158,12 @@ process.stdin.on('end', () => {
|
|
|
134
158
|
line2 += `${DIM}In:${fmtTok(inputTok)} Out:${fmtTok(outputTok)}${RESET} `;
|
|
135
159
|
}
|
|
136
160
|
|
|
161
|
+
// Agent + Skill counts (only show if > 0 — means AZCLAUDE is being used)
|
|
162
|
+
if (agentCount > 0 || skillCount > 0) {
|
|
163
|
+
if (agentCount > 0) line2 += `${CYAN}A:${agentCount}${RESET} `;
|
|
164
|
+
if (skillCount > 0) line2 += `${CYAN}S:${skillCount}${RESET} `;
|
|
165
|
+
}
|
|
166
|
+
|
|
137
167
|
// Duration
|
|
138
168
|
line2 += `${DIM}${mins}m${secs}s${RESET}`;
|
|
139
169
|
|