monomind 1.10.42 → 1.10.44
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.
|
@@ -252,9 +252,10 @@ Build and append the source object using `jq -n` — construct the JSON from fla
|
|
|
252
252
|
```bash
|
|
253
253
|
# Build src_json based on --source type:
|
|
254
254
|
# Repeated flags collected as space-separated: $users, $states, $labels
|
|
255
|
-
# Derive singular $user / $state from first value (adapters that take one value)
|
|
255
|
+
# Derive singular $user / $state / $label from first value (adapters that take one value)
|
|
256
256
|
user="${users%% *}"
|
|
257
257
|
state="${states%% *}"
|
|
258
|
+
label="${labels%% *}"
|
|
258
259
|
|
|
259
260
|
case "$source" in
|
|
260
261
|
linear)
|
|
@@ -395,8 +396,8 @@ Source polling is skipped when a retry task is available (guarded below). The lo
|
|
|
395
396
|
|
|
396
397
|
```bash
|
|
397
398
|
task_claimed=false
|
|
398
|
-
task_json=""
|
|
399
399
|
if [ -z "$retry_task" ]; then
|
|
400
|
+
task_json=""
|
|
400
401
|
while IFS= read -r src; do
|
|
401
402
|
src_type=$(echo "$src" | jq -r '.type')
|
|
402
403
|
case "$src_type" in
|
|
@@ -417,7 +418,7 @@ if [ -z "$retry_task" ]; then
|
|
|
417
418
|
_lin_team=$(echo "$src" | jq -r '.filter.team // ""')
|
|
418
419
|
_lin_assignee=$(echo "$src" | jq -r '.filter.assignees[0] // ""')
|
|
419
420
|
_lin_states=$(echo "$src" | jq -r '.filter.states // ["Todo"] | join(",")')
|
|
420
|
-
_lin_labels=$(echo "$src" | jq -
|
|
421
|
+
_lin_labels=$(echo "$src" | jq -c '.filter.labels // []')
|
|
421
422
|
```
|
|
422
423
|
|
|
423
424
|
Use `mcp__claude_ai_Linear__list_issues` with:
|
|
@@ -426,7 +427,15 @@ Use `mcp__claude_ai_Linear__list_issues` with:
|
|
|
426
427
|
- State filter: resolved from `$_lin_states`
|
|
427
428
|
- Label filter applied client-side after fetch
|
|
428
429
|
|
|
429
|
-
|
|
430
|
+
The MCP call returns a JSON array. Bind it to a shell variable immediately after the call:
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
# issues = JSON array returned by mcp__claude_ai_Linear__list_issues
|
|
434
|
+
# Assign the raw JSON response to $issues before the loop below:
|
|
435
|
+
issues='[]' # Claude MUST overwrite this with the real array returned by mcp__claude_ai_Linear__list_issues before the loop runs
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
Then iterate with an explicit bash loop (same pattern as Monotask/Filesystem adapters):
|
|
430
439
|
|
|
431
440
|
```bash
|
|
432
441
|
while IFS= read -r issue_json; do
|
|
@@ -1022,8 +1031,10 @@ Last attempt: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
|
1022
1031
|
|
|
1023
1032
|
# Linear (MCP — not bash): call mcp__claude_ai_Linear__save_comment with
|
|
1024
1033
|
# issueId=$task_external_id body="$_fail_msg"
|
|
1025
|
-
# Then call mcp__claude_ai_Linear__save_issue to
|
|
1026
|
-
#
|
|
1034
|
+
# Then call mcp__claude_ai_Linear__save_issue to:
|
|
1035
|
+
# - remove labels "monitor:claimed" and "monitor:in-progress"
|
|
1036
|
+
# - add label "monitor:failed"
|
|
1037
|
+
# - set state to "Cancelled" or "Blocked" as appropriate for the team.
|
|
1027
1038
|
|
|
1028
1039
|
case "$task_source_type" in
|
|
1029
1040
|
github)
|
|
@@ -1243,15 +1254,13 @@ If `caller` is not "command", follow `_protocol.md` Brain Write Procedure for do
|
|
|
1243
1254
|
Run this once, inline in the GitHub claim path, immediately before the first `gh issue edit` call. At claim time, `$_gh_repo` is in scope (extracted from `$src` at the top of the GitHub adapter). Guard with a check so it only runs when the `monitor:claimed` label is absent:
|
|
1244
1255
|
|
|
1245
1256
|
```bash
|
|
1246
|
-
# Bootstrap monitor labels on
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
done
|
|
1254
|
-
fi
|
|
1257
|
+
# Bootstrap monitor labels on every claim — --force makes each call idempotent (no-ops if label already exists)
|
|
1258
|
+
# Running unconditionally is safe: 5 lightweight API calls, prevents gaps if any label was deleted externally
|
|
1259
|
+
for label in "monitor:claimed" "monitor:in-progress" "monitor:review" "monitor:done" "monitor:failed"; do
|
|
1260
|
+
# shasum is available on both macOS and Linux; md5sum is Linux-only
|
|
1261
|
+
color=$(printf '%s' "$label" | shasum | cut -c1-6)
|
|
1262
|
+
gh label create "$label" --repo "$_gh_repo" --color "$color" --force 2>/dev/null || true
|
|
1263
|
+
done
|
|
1255
1264
|
```
|
|
1256
1265
|
|
|
1257
1266
|
---
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monomind",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.44",
|
|
4
4
|
"description": "Monomind - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -1448,15 +1448,26 @@ mcp:
|
|
|
1448
1448
|
`;
|
|
1449
1449
|
atomicWriteFile(configPath, config);
|
|
1450
1450
|
result.created.files.push('.monomind/config.yaml');
|
|
1451
|
-
// Write .gitignore
|
|
1451
|
+
// Write .monomind/.gitignore — commit config/knowledge/metrics, exclude sensitive data
|
|
1452
1452
|
const gitignorePath = path.join(targetDir, '.monomind', '.gitignore');
|
|
1453
|
-
const gitignore = `# Monomind
|
|
1454
|
-
data
|
|
1455
|
-
logs/
|
|
1453
|
+
const gitignore = `# Monomind — exclude files that may contain secrets or sensitive prompt data
|
|
1454
|
+
# Sessions contain conversation history (prompts, code snippets, user data)
|
|
1456
1455
|
sessions/
|
|
1457
|
-
|
|
1458
|
-
|
|
1456
|
+
# Pending insights may contain raw prompt text
|
|
1457
|
+
data/pending-insights.jsonl
|
|
1458
|
+
# Routing feedback contains user prompt text
|
|
1459
|
+
routing-feedback.jsonl
|
|
1460
|
+
# Security scan results may expose vulnerability details
|
|
1461
|
+
security/
|
|
1462
|
+
# Temporary and machine-specific files
|
|
1459
1463
|
*.tmp
|
|
1464
|
+
*.log
|
|
1465
|
+
daemon.pid
|
|
1466
|
+
# Never commit credentials or keys
|
|
1467
|
+
*.key
|
|
1468
|
+
*.token
|
|
1469
|
+
*.secret
|
|
1470
|
+
.env
|
|
1460
1471
|
`;
|
|
1461
1472
|
if (!fs.existsSync(gitignorePath) || options.force) {
|
|
1462
1473
|
atomicWriteFile(gitignorePath, gitignore);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monoes/monomindcli",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.44",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Monomind CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
|
|
6
6
|
"main": "dist/src/index.js",
|