-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathopenclaw.plugin.json
More file actions
134 lines (134 loc) · 7.23 KB
/
Copy pathopenclaw.plugin.json
File metadata and controls
134 lines (134 loc) · 7.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
{
"id": "openclaw-linear",
"name": "Linear Agent",
"description": "Linear integration with OAuth support, agent pipeline, and webhook-driven AI agent lifecycle",
"version": "0.9.24",
"activation": {
"onStartup": true
},
"contracts": {
"tools": [
"cli_codex",
"cli_claude",
"cli_gemini",
"spawn_agent",
"ask_agent",
"linear_issues",
"steer_agent",
"capture_agent_output",
"abort_agent",
"plan_create_issue",
"plan_link_issues",
"plan_get_project",
"plan_update_issue",
"plan_audit",
"dispatch_history"
]
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"clientId": { "type": "string", "description": "Linear OAuth Client ID" },
"clientSecret": { "type": "string", "description": "Linear OAuth Client Secret", "sensitive": true },
"redirectUri": { "type": "string", "description": "Linear OAuth Redirect URI (optional, defaults to gateway URL)" },
"accessToken": { "type": "string", "description": "Linear API access token for agent activities", "sensitive": true },
"defaultAgentId": { "type": "string", "description": "OpenClaw agent ID to use for pipeline stages" },
"enableAudit": { "type": "boolean", "description": "Run auditor stage after implementation", "default": true },
"codexBaseRepo": { "type": "string", "description": "Path to git repo for Codex worktrees", "default": "/home/claw/ai-workspace" },
"codexBin": { "type": "string", "description": "Path to the Codex CLI binary used by codex_run diagnostics and tools" },
"claudeBin": { "type": "string", "description": "Path to the Claude CLI binary used by claude_run diagnostics and tools" },
"geminiBin": { "type": "string", "description": "Path to the Gemini CLI binary used by gemini_run diagnostics and tools" },
"enableOrchestration": { "type": "boolean", "description": "Allow agents to spawn sub-agents via spawn_agent/ask_agent tools", "default": true },
"worktreeBaseDir": { "type": "string", "description": "Base directory for persistent git worktrees (default: ~/.openclaw/worktrees)" },
"repos": {
"type": "object",
"description": "Multi-repo map — each key is a repo name, value is a path string or object with path + GitHub identity",
"additionalProperties": {
"oneOf": [
{ "type": "string", "description": "Filesystem path (backward compat)" },
{
"type": "object",
"required": ["path"],
"properties": {
"path": { "type": "string", "description": "Absolute filesystem path to git repo" },
"github": { "type": "string", "description": "GitHub owner/repo (e.g. 'calltelemetry/cisco-cdr')" },
"hostname": { "type": "string", "description": "Git host (default: 'github.com')", "default": "github.com" }
}
}
]
}
},
"teamMappings": {
"type": "object",
"description": "Map Linear team keys to repos, agents, and team-specific context",
"additionalProperties": {
"type": "object",
"properties": {
"repos": {
"type": "array",
"items": { "type": "string" },
"description": "Repo names (keys in 'repos' config) for this team"
},
"defaultAgent": {
"type": "string",
"description": "OpenClaw agent ID to handle issues from this team"
},
"context": {
"type": "string",
"description": "Extra context injected into worker/audit prompts for this team"
}
}
}
},
"dispatchStatePath": { "type": "string", "description": "Path to dispatch state JSON file (default: ~/.openclaw/linear-dispatch-state.json)" },
"planningStatePath": { "type": "string", "description": "Path to planning state JSON file (default: ~/.openclaw/linear-planning-state.json)" },
"notifications": {
"type": "object",
"description": "Dispatch lifecycle notification config — fan-out to any combination of channels",
"properties": {
"targets": {
"type": "array",
"description": "Notification targets — each routes to an OpenClaw channel",
"items": {
"type": "object",
"required": ["channel", "target"],
"properties": {
"channel": { "type": "string", "description": "OpenClaw channel name: discord, slack, telegram, signal, etc." },
"target": { "type": "string", "description": "Channel/group/user ID to send to" },
"accountId": { "type": "string", "description": "Account ID for multi-account channel setups (optional)" }
}
}
},
"events": {
"type": "object",
"description": "Per-event-type toggles (all default true, set false to suppress)",
"properties": {
"dispatch": { "type": "boolean" },
"working": { "type": "boolean" },
"auditing": { "type": "boolean" },
"audit_pass": { "type": "boolean" },
"audit_fail": { "type": "boolean" },
"escalation": { "type": "boolean" },
"stuck": { "type": "boolean" },
"watchdog_kill": { "type": "boolean" }
}
},
"richFormat": { "type": "boolean", "description": "Send rich embeds (Discord) and HTML (Telegram) instead of plain text", "default": false }
}
},
"promptsPath": { "type": "string", "description": "Override path for prompts.yaml (default: ships with plugin)" },
"maxReworkAttempts": { "type": "number", "description": "Max audit failures before escalation", "default": 2 },
"inactivitySec": { "type": "number", "description": "Kill sessions with no I/O for this many seconds (default: 120)", "default": 120 },
"maxTotalSec": { "type": "number", "description": "Max total runtime for agent sessions in seconds (default: 7200)", "default": 7200 },
"toolTimeoutSec": { "type": "number", "description": "Max runtime for a single code_run CLI invocation in seconds (default: 600)", "default": 600 },
"claudeApiKey": { "type": "string", "description": "Anthropic API key for Claude CLI backend (passed as ANTHROPIC_API_KEY env var)", "sensitive": true },
"enableGuidance": { "type": "boolean", "description": "Inject Linear workspace/team guidance into agent prompts (default: true)", "default": true },
"teamGuidanceOverrides": { "type": "object", "description": "Per-team guidance toggle. Key = Linear team ID, value = boolean. Unset teams inherit enableGuidance.", "additionalProperties": { "type": "boolean" } },
"enableTmux": { "type": "boolean", "default": true, "description": "Enable tmux wrapping for code_run CLI backends (enables steering)" },
"enableRetro": { "type": "boolean", "default": true, "description": "Enable post-task retrospective analysis" },
"retroDir": { "type": "string", "description": "Override path for coding retrospective files (default: {stateDir}/shared/coding)" }
}
}
}