@opengoat/core 2026.2.9 → 2026.2.14

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.
Files changed (199) hide show
  1. package/README.md +3 -3
  2. package/dist/core/acp/application/acp-agent.js +4 -8
  3. package/dist/core/acp/application/acp-agent.js.map +1 -1
  4. package/dist/core/agents/application/agent-manifest.service.d.ts +1 -4
  5. package/dist/core/agents/application/agent-manifest.service.js +39 -52
  6. package/dist/core/agents/application/agent-manifest.service.js.map +1 -1
  7. package/dist/core/agents/application/agent.service.d.ts +43 -4
  8. package/dist/core/agents/application/agent.service.js +476 -55
  9. package/dist/core/agents/application/agent.service.js.map +1 -1
  10. package/dist/core/agents/domain/agent-manifest.d.ts +10 -4
  11. package/dist/core/agents/domain/agent-manifest.js +118 -25
  12. package/dist/core/agents/domain/agent-manifest.js.map +1 -1
  13. package/dist/core/agents/index.d.ts +1 -3
  14. package/dist/core/agents/index.js +1 -3
  15. package/dist/core/agents/index.js.map +1 -1
  16. package/dist/core/boards/application/board.service.d.ts +64 -0
  17. package/dist/core/boards/application/board.service.js +590 -0
  18. package/dist/core/boards/application/board.service.js.map +1 -0
  19. package/dist/core/boards/domain/board.d.ts +30 -0
  20. package/dist/core/boards/domain/board.js +2 -0
  21. package/dist/core/boards/domain/board.js.map +1 -0
  22. package/dist/core/boards/index.d.ts +2 -0
  23. package/dist/core/boards/index.js +2 -0
  24. package/dist/core/boards/index.js.map +1 -0
  25. package/dist/core/bootstrap/application/bootstrap.service.d.ts +5 -2
  26. package/dist/core/bootstrap/application/bootstrap.service.js +32 -17
  27. package/dist/core/bootstrap/application/bootstrap.service.js.map +1 -1
  28. package/dist/core/domain/agent-id.d.ts +1 -1
  29. package/dist/core/domain/agent-id.js +1 -1
  30. package/dist/core/domain/agent-id.js.map +1 -1
  31. package/dist/core/domain/agent.d.ts +31 -8
  32. package/dist/core/domain/opengoat-paths.d.ts +1 -0
  33. package/dist/core/opengoat/application/opengoat.service.d.ts +111 -27
  34. package/dist/core/opengoat/application/opengoat.service.js +1048 -136
  35. package/dist/core/opengoat/application/opengoat.service.js.map +1 -1
  36. package/dist/core/opengoat/index.d.ts +1 -0
  37. package/dist/core/orchestration/application/orchestration.service.d.ts +8 -21
  38. package/dist/core/orchestration/application/orchestration.service.js +59 -871
  39. package/dist/core/orchestration/application/orchestration.service.js.map +1 -1
  40. package/dist/core/orchestration/application/routing.service.js +10 -8
  41. package/dist/core/orchestration/application/routing.service.js.map +1 -1
  42. package/dist/core/orchestration/domain/routing.d.ts +0 -17
  43. package/dist/core/orchestration/domain/run-events.d.ts +1 -1
  44. package/dist/core/orchestration/index.d.ts +0 -2
  45. package/dist/core/orchestration/index.js +0 -1
  46. package/dist/core/orchestration/index.js.map +1 -1
  47. package/dist/core/providers/application/provider.service.d.ts +16 -32
  48. package/dist/core/providers/application/provider.service.js +178 -202
  49. package/dist/core/providers/application/provider.service.js.map +1 -1
  50. package/dist/core/providers/cli-provider.d.ts +1 -0
  51. package/dist/core/providers/cli-provider.js +66 -1
  52. package/dist/core/providers/cli-provider.js.map +1 -1
  53. package/dist/core/providers/image-input.d.ts +16 -0
  54. package/dist/core/providers/image-input.js +158 -0
  55. package/dist/core/providers/image-input.js.map +1 -0
  56. package/dist/core/providers/index.d.ts +1 -7
  57. package/dist/core/providers/index.js +0 -13
  58. package/dist/core/providers/index.js.map +1 -1
  59. package/dist/core/providers/loader.js +1 -95
  60. package/dist/core/providers/loader.js.map +1 -1
  61. package/dist/core/providers/providers/openclaw/provider.js +213 -32
  62. package/dist/core/providers/providers/openclaw/provider.js.map +1 -1
  63. package/dist/core/providers/types.d.ts +8 -3
  64. package/dist/core/scenarios/application/scenario-runner.service.d.ts +0 -1
  65. package/dist/core/scenarios/application/scenario-runner.service.js +30 -87
  66. package/dist/core/scenarios/application/scenario-runner.service.js.map +1 -1
  67. package/dist/core/scenarios/domain/scenario.d.ts +0 -15
  68. package/dist/core/sessions/application/session.service.d.ts +10 -4
  69. package/dist/core/sessions/application/session.service.js +87 -89
  70. package/dist/core/sessions/application/session.service.js.map +1 -1
  71. package/dist/core/sessions/domain/session.d.ts +3 -3
  72. package/dist/core/sessions/domain/transcript.d.ts +1 -1
  73. package/dist/core/sessions/index.d.ts +1 -1
  74. package/dist/core/sessions/index.js.map +1 -1
  75. package/dist/core/skills/application/skill.service.d.ts +2 -3
  76. package/dist/core/skills/application/skill.service.js +153 -56
  77. package/dist/core/skills/application/skill.service.js.map +1 -1
  78. package/dist/core/skills/domain/skill.d.ts +2 -2
  79. package/dist/core/skills/domain/skill.js +4 -2
  80. package/dist/core/skills/domain/skill.js.map +1 -1
  81. package/dist/core/templates/assets/ceo/BOOTSTRAP.md +41 -0
  82. package/dist/core/templates/assets/ceo/ROLE.md +15 -0
  83. package/dist/core/templates/assets/organization/MISSION.md +73 -0
  84. package/dist/core/templates/assets/organization/STRATEGY.md +107 -0
  85. package/dist/core/templates/assets/organization/VISION.md +80 -0
  86. package/dist/core/templates/assets/organization/wiki/index.md +15 -0
  87. package/dist/core/templates/assets/skills/og-board-individual/SKILL.md +148 -0
  88. package/dist/core/templates/assets/skills/og-board-manager/SKILL.md +140 -0
  89. package/dist/core/templates/default-templates.d.ts +17 -14
  90. package/dist/core/templates/default-templates.js +115 -212
  91. package/dist/core/templates/default-templates.js.map +1 -1
  92. package/dist/index.d.ts +1 -4
  93. package/dist/index.js +1 -4
  94. package/dist/index.js.map +1 -1
  95. package/dist/platform/node/node-path.port.js +1 -0
  96. package/dist/platform/node/node-path.port.js.map +1 -1
  97. package/package.json +16 -13
  98. package/dist/core/agents/application/workspace-context.service.d.ts +0 -28
  99. package/dist/core/agents/application/workspace-context.service.js +0 -157
  100. package/dist/core/agents/application/workspace-context.service.js.map +0 -1
  101. package/dist/core/agents/domain/workspace-context.d.ts +0 -13
  102. package/dist/core/agents/domain/workspace-context.js +0 -14
  103. package/dist/core/agents/domain/workspace-context.js.map +0 -1
  104. package/dist/core/gateway/domain/protocol.d.ts +0 -113
  105. package/dist/core/gateway/domain/protocol.js +0 -394
  106. package/dist/core/gateway/domain/protocol.js.map +0 -1
  107. package/dist/core/gateway/index.d.ts +0 -2
  108. package/dist/core/gateway/index.js +0 -2
  109. package/dist/core/gateway/index.js.map +0 -1
  110. package/dist/core/llm/application/vercel-ai-text-runtime.d.ts +0 -26
  111. package/dist/core/llm/application/vercel-ai-text-runtime.js +0 -223
  112. package/dist/core/llm/application/vercel-ai-text-runtime.js.map +0 -1
  113. package/dist/core/llm/domain/text-runtime.d.ts +0 -22
  114. package/dist/core/llm/domain/text-runtime.js +0 -2
  115. package/dist/core/llm/domain/text-runtime.js.map +0 -1
  116. package/dist/core/llm/index.d.ts +0 -2
  117. package/dist/core/llm/index.js +0 -2
  118. package/dist/core/llm/index.js.map +0 -1
  119. package/dist/core/orchestration/application/orchestration-planner.service.d.ts +0 -28
  120. package/dist/core/orchestration/application/orchestration-planner.service.js +0 -279
  121. package/dist/core/orchestration/application/orchestration-planner.service.js.map +0 -1
  122. package/dist/core/orchestration/domain/loop.d.ts +0 -119
  123. package/dist/core/orchestration/domain/loop.js +0 -2
  124. package/dist/core/orchestration/domain/loop.js.map +0 -1
  125. package/dist/core/plugins/application/plugin.service.d.ts +0 -32
  126. package/dist/core/plugins/application/plugin.service.js +0 -236
  127. package/dist/core/plugins/application/plugin.service.js.map +0 -1
  128. package/dist/core/plugins/domain/openclaw-compat.d.ts +0 -60
  129. package/dist/core/plugins/domain/openclaw-compat.js +0 -9
  130. package/dist/core/plugins/domain/openclaw-compat.js.map +0 -1
  131. package/dist/core/plugins/index.d.ts +0 -3
  132. package/dist/core/plugins/index.js +0 -3
  133. package/dist/core/plugins/index.js.map +0 -1
  134. package/dist/core/providers/onboarding.d.ts +0 -13
  135. package/dist/core/providers/onboarding.js +0 -149
  136. package/dist/core/providers/onboarding.js.map +0 -1
  137. package/dist/core/providers/providers/claude/index.d.ts +0 -4
  138. package/dist/core/providers/providers/claude/index.js +0 -19
  139. package/dist/core/providers/providers/claude/index.js.map +0 -1
  140. package/dist/core/providers/providers/claude/provider.d.ts +0 -8
  141. package/dist/core/providers/providers/claude/provider.js +0 -106
  142. package/dist/core/providers/providers/claude/provider.js.map +0 -1
  143. package/dist/core/providers/providers/codex/index.d.ts +0 -4
  144. package/dist/core/providers/providers/codex/index.js +0 -19
  145. package/dist/core/providers/providers/codex/index.js.map +0 -1
  146. package/dist/core/providers/providers/codex/provider.d.ts +0 -7
  147. package/dist/core/providers/providers/codex/provider.js +0 -31
  148. package/dist/core/providers/providers/codex/provider.js.map +0 -1
  149. package/dist/core/providers/providers/cursor/index.d.ts +0 -4
  150. package/dist/core/providers/providers/cursor/index.js +0 -19
  151. package/dist/core/providers/providers/cursor/index.js.map +0 -1
  152. package/dist/core/providers/providers/cursor/provider.d.ts +0 -11
  153. package/dist/core/providers/providers/cursor/provider.js +0 -90
  154. package/dist/core/providers/providers/cursor/provider.js.map +0 -1
  155. package/dist/core/providers/providers/extended-http/catalog.d.ts +0 -40
  156. package/dist/core/providers/providers/extended-http/catalog.js +0 -728
  157. package/dist/core/providers/providers/extended-http/catalog.js.map +0 -1
  158. package/dist/core/providers/providers/extended-http/index.d.ts +0 -5
  159. package/dist/core/providers/providers/extended-http/index.js +0 -13
  160. package/dist/core/providers/providers/extended-http/index.js.map +0 -1
  161. package/dist/core/providers/providers/extended-http/provider.d.ts +0 -31
  162. package/dist/core/providers/providers/extended-http/provider.js +0 -580
  163. package/dist/core/providers/providers/extended-http/provider.js.map +0 -1
  164. package/dist/core/providers/providers/gemini/index.d.ts +0 -4
  165. package/dist/core/providers/providers/gemini/index.js +0 -37
  166. package/dist/core/providers/providers/gemini/index.js.map +0 -1
  167. package/dist/core/providers/providers/gemini/provider.d.ts +0 -7
  168. package/dist/core/providers/providers/gemini/provider.js +0 -59
  169. package/dist/core/providers/providers/gemini/provider.js.map +0 -1
  170. package/dist/core/providers/providers/grok/index.d.ts +0 -4
  171. package/dist/core/providers/providers/grok/index.js +0 -41
  172. package/dist/core/providers/providers/grok/index.js.map +0 -1
  173. package/dist/core/providers/providers/grok/provider.d.ts +0 -13
  174. package/dist/core/providers/providers/grok/provider.js +0 -95
  175. package/dist/core/providers/providers/grok/provider.js.map +0 -1
  176. package/dist/core/providers/providers/openai/index.d.ts +0 -4
  177. package/dist/core/providers/providers/openai/index.js +0 -45
  178. package/dist/core/providers/providers/openai/index.js.map +0 -1
  179. package/dist/core/providers/providers/openai/provider.d.ts +0 -14
  180. package/dist/core/providers/providers/openai/provider.js +0 -203
  181. package/dist/core/providers/providers/openai/provider.js.map +0 -1
  182. package/dist/core/providers/providers/opencode/index.d.ts +0 -4
  183. package/dist/core/providers/providers/opencode/index.js +0 -23
  184. package/dist/core/providers/providers/opencode/index.js.map +0 -1
  185. package/dist/core/providers/providers/opencode/provider.d.ts +0 -11
  186. package/dist/core/providers/providers/opencode/provider.js +0 -215
  187. package/dist/core/providers/providers/opencode/provider.js.map +0 -1
  188. package/dist/core/providers/providers/openrouter/index.d.ts +0 -4
  189. package/dist/core/providers/providers/openrouter/index.js +0 -37
  190. package/dist/core/providers/providers/openrouter/index.js.map +0 -1
  191. package/dist/core/providers/providers/openrouter/provider.d.ts +0 -13
  192. package/dist/core/providers/providers/openrouter/provider.js +0 -80
  193. package/dist/core/providers/providers/openrouter/provider.js.map +0 -1
  194. package/dist/platform/node/opengoat-gateway-client.d.ts +0 -19
  195. package/dist/platform/node/opengoat-gateway-client.js +0 -194
  196. package/dist/platform/node/opengoat-gateway-client.js.map +0 -1
  197. package/dist/platform/node/opengoat-gateway-server.d.ts +0 -53
  198. package/dist/platform/node/opengoat-gateway-server.js +0 -906
  199. package/dist/platform/node/opengoat-gateway-server.js.map +0 -1
@@ -1,24 +1,28 @@
1
1
  import os from "node:os";
2
2
  import path from "node:path";
3
+ import { BOARD_MANAGER_SKILL_ID } from "../../agents/domain/agent-manifest.js";
3
4
  import { DEFAULT_AGENT_ID, normalizeAgentId } from "../../domain/agent-id.js";
4
- import { resolveSkillsConfig } from "../domain/skill.js";
5
+ import { resolveSkillsConfig, } from "../domain/skill.js";
5
6
  export class SkillService {
6
7
  fileSystem;
7
8
  pathPort;
8
- pluginSkillDirsProvider;
9
9
  constructor(deps) {
10
10
  this.fileSystem = deps.fileSystem;
11
11
  this.pathPort = deps.pathPort;
12
- this.pluginSkillDirsProvider = deps.pluginSkillDirsProvider;
13
12
  }
14
13
  async listSkills(paths, agentId = DEFAULT_AGENT_ID, runtimeConfig) {
15
14
  const normalizedAgentId = normalizeAgentId(agentId) || DEFAULT_AGENT_ID;
16
- const resolvedConfig = resolveSkillsConfig(runtimeConfig ?? (await this.readAgentSkillsConfig(paths, normalizedAgentId)));
15
+ const resolvedConfig = resolveSkillsConfig(runtimeConfig ??
16
+ (await this.readAgentSkillsConfig(paths, normalizedAgentId)));
17
17
  if (!resolvedConfig.enabled) {
18
18
  return [];
19
19
  }
20
- const discovered = await this.loadSkillsWithPrecedence(paths, normalizedAgentId, resolvedConfig);
21
- return [...discovered].sort((left, right) => left.id.localeCompare(right.id));
20
+ const discovered = await this.loadSkillsWithPrecedence(paths, resolvedConfig);
21
+ const assigned = new Set(resolvedConfig.assigned);
22
+ const filtered = assigned.size > 0
23
+ ? discovered.filter((skill) => assigned.has(skill.id))
24
+ : discovered;
25
+ return [...filtered].sort((left, right) => left.id.localeCompare(right.id));
22
26
  }
23
27
  async listGlobalSkills(paths) {
24
28
  const loaded = await this.loadSkillsFromDirectory(paths.skillsDir, "managed");
@@ -26,7 +30,8 @@ export class SkillService {
26
30
  }
27
31
  async buildSkillsPrompt(paths, agentId = DEFAULT_AGENT_ID, runtimeConfig) {
28
32
  const skills = await this.listSkills(paths, agentId, runtimeConfig);
29
- const resolvedConfig = resolveSkillsConfig(runtimeConfig ?? (await this.readAgentSkillsConfig(paths, normalizeAgentId(agentId) || DEFAULT_AGENT_ID)));
33
+ const resolvedConfig = resolveSkillsConfig(runtimeConfig ??
34
+ (await this.readAgentSkillsConfig(paths, normalizeAgentId(agentId) || DEFAULT_AGENT_ID)));
30
35
  if (!resolvedConfig.enabled) {
31
36
  return { prompt: "", skills: [] };
32
37
  }
@@ -39,14 +44,18 @@ export class SkillService {
39
44
  const content = resolvedConfig.prompt.includeContent
40
45
  ? clampText(skill.content, resolvedConfig.prompt.maxCharsPerSkill)
41
46
  : "";
42
- const estimatedChars = skill.name.length + skill.description.length + skill.skillFilePath.length + content.length + 150;
47
+ const estimatedChars = skill.name.length +
48
+ skill.description.length +
49
+ skill.skillFilePath.length +
50
+ content.length +
51
+ 150;
43
52
  if (budgetUsed + estimatedChars > resolvedConfig.prompt.maxTotalChars) {
44
53
  break;
45
54
  }
46
55
  budgetUsed += estimatedChars;
47
56
  selected.push({
48
57
  ...skill,
49
- content
58
+ content,
50
59
  });
51
60
  }
52
61
  const lines = [
@@ -55,14 +64,14 @@ export class SkillService {
55
64
  "- If exactly one skill clearly applies, follow that skill.",
56
65
  "- If multiple skills could apply, choose the most specific.",
57
66
  "- If none apply, continue without using a skill.",
58
- "Self-install/update: create or edit `skills/<skill-id>/SKILL.md` in this workspace.",
59
- ""
67
+ "Skill definitions are centralized under the global skills store.",
68
+ "",
60
69
  ];
61
70
  if (selected.length === 0) {
62
71
  lines.push("No installed skills were found for this agent.");
63
72
  return {
64
73
  prompt: lines.join("\n"),
65
- skills: []
74
+ skills: [],
66
75
  };
67
76
  }
68
77
  lines.push("<available_skills>");
@@ -83,7 +92,7 @@ export class SkillService {
83
92
  lines.push("</available_skills>");
84
93
  return {
85
94
  prompt: lines.join("\n"),
86
- skills: selected
95
+ skills: selected,
87
96
  };
88
97
  }
89
98
  async installSkill(paths, request) {
@@ -93,14 +102,15 @@ export class SkillService {
93
102
  if (!skillId) {
94
103
  throw new Error("Skill name must contain at least one alphanumeric character.");
95
104
  }
96
- const baseDir = scope === "global" ? paths.skillsDir : this.pathPort.join(paths.workspacesDir, normalizedAgentId, "skills");
105
+ const baseDir = paths.skillsDir;
97
106
  const targetDir = this.pathPort.join(baseDir, skillId);
98
107
  const targetSkillFile = this.pathPort.join(targetDir, "SKILL.md");
99
108
  const replaced = await this.fileSystem.exists(targetDir);
100
109
  await this.fileSystem.ensureDir(baseDir);
101
110
  if (request.sourcePath?.trim()) {
102
111
  const sourcePath = resolveUserPath(request.sourcePath.trim());
103
- const sourceSkillFile = sourcePath.toLowerCase().endsWith("/skill.md") || sourcePath.toLowerCase().endsWith("\\skill.md")
112
+ const sourceSkillFile = sourcePath.toLowerCase().endsWith("/skill.md") ||
113
+ sourcePath.toLowerCase().endsWith("\\skill.md")
104
114
  ? sourcePath
105
115
  : this.pathPort.join(sourcePath, "SKILL.md");
106
116
  const sourceFileExists = await this.fileSystem.exists(sourceSkillFile);
@@ -110,6 +120,10 @@ export class SkillService {
110
120
  const sourceDir = sourceSkillFile === sourcePath ? path.dirname(sourcePath) : sourcePath;
111
121
  await this.fileSystem.removeDir(targetDir);
112
122
  await this.fileSystem.copyDir(sourceDir, targetDir);
123
+ if (scope === "agent") {
124
+ await this.assignSkillToAgent(paths, normalizedAgentId, skillId);
125
+ await this.reconcileRoleSkillsIfNeeded(paths, normalizedAgentId, skillId);
126
+ }
113
127
  return {
114
128
  scope,
115
129
  agentId: scope === "agent" ? normalizedAgentId : undefined,
@@ -117,49 +131,51 @@ export class SkillService {
117
131
  skillName: request.skillName.trim(),
118
132
  source: "source-path",
119
133
  installedPath: targetSkillFile,
120
- replaced
134
+ replaced,
121
135
  };
122
136
  }
137
+ let source = "generated";
138
+ const existingGlobalSkill = this.pathPort.join(paths.skillsDir, skillId, "SKILL.md");
139
+ if (scope === "agent" &&
140
+ (await this.fileSystem.exists(existingGlobalSkill))) {
141
+ source = "managed";
142
+ }
143
+ else {
144
+ const description = request.description?.trim() ||
145
+ `Skill instructions for ${request.skillName.trim()}.`;
146
+ const content = request.content?.trim() ||
147
+ renderSkillMarkdown({ skillId, description });
148
+ await this.fileSystem.ensureDir(targetDir);
149
+ await this.fileSystem.writeFile(targetSkillFile, ensureTrailingNewline(content));
150
+ source = "generated";
151
+ }
123
152
  if (scope === "agent") {
124
- const managedDir = this.pathPort.join(paths.skillsDir, skillId);
125
- const managedSkillFile = this.pathPort.join(managedDir, "SKILL.md");
126
- if (await this.fileSystem.exists(managedSkillFile)) {
127
- await this.fileSystem.removeDir(targetDir);
128
- await this.fileSystem.copyDir(managedDir, targetDir);
129
- return {
130
- scope,
131
- agentId: normalizedAgentId,
132
- skillId,
133
- skillName: request.skillName.trim(),
134
- source: "managed",
135
- installedPath: targetSkillFile,
136
- replaced
137
- };
138
- }
153
+ await this.assignSkillToAgent(paths, normalizedAgentId, skillId);
154
+ await this.reconcileRoleSkillsIfNeeded(paths, normalizedAgentId, skillId);
139
155
  }
140
- const description = request.description?.trim() || `Skill instructions for ${request.skillName.trim()}.`;
141
- const content = request.content?.trim() || renderSkillMarkdown({ skillId, description });
142
- await this.fileSystem.ensureDir(targetDir);
143
- await this.fileSystem.writeFile(targetSkillFile, ensureTrailingNewline(content));
144
156
  return {
145
157
  scope,
146
158
  agentId: scope === "agent" ? normalizedAgentId : undefined,
147
159
  skillId,
148
160
  skillName: request.skillName.trim(),
149
- source: "generated",
161
+ source,
150
162
  installedPath: targetSkillFile,
151
- replaced
163
+ replaced,
152
164
  };
153
165
  }
154
- async loadSkillsWithPrecedence(paths, agentId, config) {
155
- const workspaceSkillsDir = this.pathPort.join(paths.workspacesDir, agentId, "skills");
156
- const pluginDirs = await this.resolvePluginSkillDirs(paths);
166
+ async loadSkillsWithPrecedence(paths, config) {
157
167
  const extraDirs = config.load.extraDirs.map(resolveUserPath);
158
168
  const sources = [
159
- { source: "managed", dir: paths.skillsDir, enabled: config.includeManaged },
160
- ...pluginDirs.map((dir) => ({ source: "plugin", dir, enabled: true })),
161
- ...extraDirs.map((dir) => ({ source: "extra", dir, enabled: true })),
162
- { source: "workspace", dir: workspaceSkillsDir, enabled: config.includeWorkspace }
169
+ {
170
+ source: "managed",
171
+ dir: paths.skillsDir,
172
+ enabled: config.includeManaged,
173
+ },
174
+ ...extraDirs.map((dir) => ({
175
+ source: "extra",
176
+ dir,
177
+ enabled: true,
178
+ })),
163
179
  ];
164
180
  const merged = new Map();
165
181
  for (const sourceEntry of sources) {
@@ -194,7 +210,8 @@ export class SkillService {
194
210
  if (parsed.frontmatter.enabled === false) {
195
211
  continue;
196
212
  }
197
- const id = normalizeAgentId(parsed.frontmatter.name ?? directoryName) || normalizeAgentId(directoryName);
213
+ const id = normalizeAgentId(parsed.frontmatter.name ?? directoryName) ||
214
+ normalizeAgentId(directoryName);
198
215
  if (!id) {
199
216
  continue;
200
217
  }
@@ -206,7 +223,7 @@ export class SkillService {
206
223
  skillDir,
207
224
  skillFilePath,
208
225
  content: parsed.body.trim(),
209
- frontmatter: parsed.frontmatter
226
+ frontmatter: parsed.frontmatter,
210
227
  });
211
228
  }
212
229
  return loaded;
@@ -225,19 +242,98 @@ export class SkillService {
225
242
  return undefined;
226
243
  }
227
244
  }
228
- async resolvePluginSkillDirs(paths) {
229
- if (!this.pluginSkillDirsProvider) {
230
- return [];
245
+ async assignSkillToAgent(paths, agentId, skillId) {
246
+ const configPath = this.pathPort.join(paths.agentsDir, agentId, "config.json");
247
+ if (!(await this.fileSystem.exists(configPath))) {
248
+ return;
231
249
  }
232
- try {
233
- const loaded = await this.pluginSkillDirsProvider(paths);
234
- return loaded.map((entry) => entry.trim()).filter(Boolean);
250
+ const raw = await this.fileSystem.readFile(configPath);
251
+ const parsed = JSON.parse(raw);
252
+ const runtimeRecord = parsed.runtime &&
253
+ typeof parsed.runtime === "object" &&
254
+ !Array.isArray(parsed.runtime)
255
+ ? parsed.runtime
256
+ : {};
257
+ const skillsRecord = runtimeRecord.skills &&
258
+ typeof runtimeRecord.skills === "object" &&
259
+ !Array.isArray(runtimeRecord.skills)
260
+ ? runtimeRecord.skills
261
+ : {};
262
+ const assignedRaw = Array.isArray(skillsRecord.assigned)
263
+ ? skillsRecord.assigned
264
+ : [];
265
+ const assigned = [
266
+ ...new Set(assignedRaw
267
+ .map((value) => String(value).trim().toLowerCase())
268
+ .filter(Boolean)),
269
+ ];
270
+ if (!assigned.includes(skillId)) {
271
+ assigned.push(skillId);
235
272
  }
236
- catch {
237
- return [];
273
+ skillsRecord.assigned = assigned;
274
+ runtimeRecord.skills = skillsRecord;
275
+ parsed.runtime = runtimeRecord;
276
+ await this.fileSystem.writeFile(configPath, `${JSON.stringify(parsed, null, 2)}\n`);
277
+ }
278
+ async reconcileRoleSkillsIfNeeded(paths, agentId, skillId) {
279
+ const normalizedSkill = skillId.trim().toLowerCase();
280
+ if (!ROLE_SKILL_IDS.has(normalizedSkill)) {
281
+ return;
282
+ }
283
+ const configPath = this.pathPort.join(paths.agentsDir, agentId, "config.json");
284
+ if (!(await this.fileSystem.exists(configPath))) {
285
+ return;
286
+ }
287
+ const raw = await this.fileSystem.readFile(configPath);
288
+ const parsed = JSON.parse(raw);
289
+ const organizationRecord = parsed.organization &&
290
+ typeof parsed.organization === "object" &&
291
+ !Array.isArray(parsed.organization)
292
+ ? parsed.organization
293
+ : {};
294
+ const runtimeRecord = parsed.runtime &&
295
+ typeof parsed.runtime === "object" &&
296
+ !Array.isArray(parsed.runtime)
297
+ ? parsed.runtime
298
+ : {};
299
+ const skillsRecord = runtimeRecord.skills &&
300
+ typeof runtimeRecord.skills === "object" &&
301
+ !Array.isArray(runtimeRecord.skills)
302
+ ? runtimeRecord.skills
303
+ : {};
304
+ const assignedRaw = Array.isArray(skillsRecord.assigned)
305
+ ? skillsRecord.assigned
306
+ : [];
307
+ const assigned = [
308
+ ...new Set(assignedRaw
309
+ .map((value) => String(value).trim().toLowerCase())
310
+ .filter(Boolean)),
311
+ ];
312
+ if (normalizedSkill === BOARD_MANAGER_SKILL_ID ||
313
+ normalizedSkill === LEGACY_BOARD_MANAGER_SKILL_ID) {
314
+ organizationRecord.type = "manager";
315
+ }
316
+ else {
317
+ organizationRecord.type = "individual";
238
318
  }
319
+ // Role skills live in OpenClaw workspace skill folders, not local assigned metadata.
320
+ skillsRecord.assigned = assigned.filter((entry) => !ROLE_SKILL_IDS.has(entry));
321
+ runtimeRecord.skills = skillsRecord;
322
+ parsed.runtime = runtimeRecord;
323
+ parsed.organization =
324
+ organizationRecord;
325
+ await this.fileSystem.writeFile(configPath, `${JSON.stringify(parsed, null, 2)}\n`);
239
326
  }
240
327
  }
328
+ const BOARD_INDIVIDUAL_SKILL_ID = "og-board-individual";
329
+ const LEGACY_BOARD_MANAGER_SKILL_ID = "board-manager";
330
+ const LEGACY_BOARD_INDIVIDUAL_SKILL_ID = "board-individual";
331
+ const ROLE_SKILL_IDS = new Set([
332
+ BOARD_MANAGER_SKILL_ID,
333
+ BOARD_INDIVIDUAL_SKILL_ID,
334
+ LEGACY_BOARD_MANAGER_SKILL_ID,
335
+ LEGACY_BOARD_INDIVIDUAL_SKILL_ID,
336
+ ]);
241
337
  function renderSkillMarkdown(params) {
242
338
  return [
243
339
  "---",
@@ -254,7 +350,7 @@ function renderSkillMarkdown(params) {
254
350
  "- Add explicit step-by-step guidance here.",
255
351
  "",
256
352
  "## Constraints",
257
- "- Add constraints and safety checks here."
353
+ "- Add constraints and safety checks here.",
258
354
  ].join("\n");
259
355
  }
260
356
  function parseSkillMarkdown(content) {
@@ -307,7 +403,8 @@ function parseSkillMarkdown(content) {
307
403
  }
308
404
  continue;
309
405
  }
310
- if (key === "disable-model-invocation" || key === "disable_model_invocation") {
406
+ if (key === "disable-model-invocation" ||
407
+ key === "disable_model_invocation") {
311
408
  const normalized = value.toLowerCase();
312
409
  if (normalized === "true") {
313
410
  frontmatter.disableModelInvocation = true;
@@ -1 +1 @@
1
- {"version":3,"file":"skill.service.js","sourceRoot":"","sources":["../../../../src/core/skills/application/skill.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill.service.js","sourceRoot":"","sources":["../../../../src/core/skills/application/skill.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI9E,OAAO,EACL,mBAAmB,GAOpB,MAAM,oBAAoB,CAAC;AAkB5B,MAAM,OAAO,YAAY;IACN,UAAU,CAAiB;IAC3B,QAAQ,CAAW;IAEpC,YAAmB,IAAsB;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,KAAoB,EACpB,OAAO,GAAG,gBAAgB,EAC1B,aAAiC;QAEjC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC;QACxE,MAAM,cAAc,GAAG,mBAAmB,CACxC,aAAa;YACX,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAC/D,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CACpD,KAAK,EACL,cAAc,CACf,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GACZ,QAAQ,CAAC,IAAI,GAAG,CAAC;YACf,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,UAAU,CAAC;QACjB,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,KAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,KAAK,CAAC,SAAS,EACf,SAAS,CACV,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,KAAoB,EACpB,OAAO,GAAG,gBAAgB,EAC1B,aAAiC;QAEjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,mBAAmB,CACxC,aAAa;YACX,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAC/B,KAAK,EACL,gBAAgB,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAC9C,CAAC,CACL,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,KAAK,IAAI,CAC7D,EAAE,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvD,MAAM;YACR,CAAC;YACD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc;gBAClD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAClE,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,cAAc,GAClB,KAAK,CAAC,IAAI,CAAC,MAAM;gBACjB,KAAK,CAAC,WAAW,CAAC,MAAM;gBACxB,KAAK,CAAC,aAAa,CAAC,MAAM;gBAC1B,OAAO,CAAC,MAAM;gBACd,GAAG,CAAC;YACN,IAAI,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBACtE,MAAM;YACR,CAAC;YACD,UAAU,IAAI,cAAc,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,KAAK;gBACR,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAa;YACtB,WAAW;YACX,kGAAkG;YAClG,4DAA4D;YAC5D,6DAA6D;YAC7D,kDAAkD;YAClD,kEAAkE;YAClE,EAAE;SACH,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxB,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CACR,oBAAoB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CACjE,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACzE,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC;YACnD,IAAI,cAAc,CAAC,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAElC,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,KAAoB,EACpB,OAA4B;QAE5B,MAAM,KAAK,GAAe,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1E,MAAM,iBAAiB,GACrB,gBAAgB,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,IAAI,gBAAgB,CAAC;QAC5E,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,MAAM,eAAe,GACnB,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC9C,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC7C,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACjD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,eAAe,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,SAAS,GACb,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAEzE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,2BAA2B,CACpC,KAAK,EACL,iBAAiB,EACjB,OAAO,CACR,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,KAAK;gBACL,OAAO,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;gBAC1D,OAAO;gBACP,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;gBACnC,MAAM,EAAE,aAAa;gBACrB,aAAa,EAAE,eAAe;gBAC9B,QAAQ;aACT,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,GAAiC,WAAW,CAAC;QACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC5C,KAAK,CAAC,SAAS,EACf,OAAO,EACP,UAAU,CACX,CAAC;QACF,IACE,KAAK,KAAK,OAAO;YACjB,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,EACnD,CAAC;YACD,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE;gBAC3B,0BAA0B,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;YACxD,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE;gBACvB,mBAAmB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAC7B,eAAe,EACf,qBAAqB,CAAC,OAAO,CAAC,CAC/B,CAAC;YACF,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;QAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO;YACL,KAAK;YACL,OAAO,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;YAC1D,OAAO;YACP,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;YACnC,MAAM;YACN,aAAa,EAAE,eAAe;YAC9B,QAAQ;SACT,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,KAAoB,EACpB,MAA8C;QAE9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,OAAO,GAIR;YACH;gBACE,MAAM,EAAE,SAAS;gBACjB,GAAG,EAAE,KAAK,CAAC,SAAS;gBACpB,OAAO,EAAE,MAAM,CAAC,cAAc;aAC/B;YACD,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzB,MAAM,EAAE,OAAgB;gBACxB,GAAG;gBACH,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;QAChD,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/C,WAAW,CAAC,GAAG,EACf,WAAW,CAAC,MAAM,CACnB,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,OAAe,EACf,MAA+B;QAE/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,KAAK,MAAM,aAAa,IAAI,SAAS,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,MAAM,EAAE,GACN,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,aAAa,CAAC;gBAC1D,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE;gBACF,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,iBAAiB,CAAC,aAAa,CAAC;gBACjE,WAAW,EACT,MAAM,CAAC,WAAW,CAAC,WAAW,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC;gBACnE,MAAM;gBACN,QAAQ;gBACR,aAAa;gBACb,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,KAAoB,EACpB,OAAe;QAEf,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACnC,KAAK,CAAC,SAAS,EACf,OAAO,EACP,aAAa,CACd,CAAC;QACF,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;YACnD,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,KAAoB,EACpB,OAAe,EACf,OAAe;QAEf,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACnC,KAAK,CAAC,SAAS,EACf,OAAO,EACP,aAAa,CACd,CAAC;QACF,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;QACnD,MAAM,aAAa,GACjB,MAAM,CAAC,OAAO;YACd,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAClC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAE,MAAM,CAAC,OAAmC;YAC7C,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,YAAY,GAChB,aAAa,CAAC,MAAM;YACpB,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ;YACxC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;YAClC,CAAC,CAAE,aAAa,CAAC,MAAkC;YACnD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;YACtD,CAAC,CAAC,YAAY,CAAC,QAAQ;YACvB,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG;YACf,GAAG,IAAI,GAAG,CACR,WAAW;iBACR,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;iBAClD,MAAM,CAAC,OAAO,CAAC,CACnB;SACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACjC,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC;QACpC,MAAM,CAAC,OAAO,GAAG,aAA4C,CAAC;QAC9D,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAC7B,UAAU,EACV,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACvC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,KAAoB,EACpB,OAAe,EACf,OAAe;QAEf,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACnC,KAAK,CAAC,SAAS,EACf,OAAO,EACP,aAAa,CACd,CAAC;QACF,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;QACnD,MAAM,kBAAkB,GACtB,MAAM,CAAC,YAAY;YACnB,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YACvC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;YACjC,CAAC,CAAE,MAAM,CAAC,YAAwC;YAClD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,aAAa,GACjB,MAAM,CAAC,OAAO;YACd,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAClC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAE,MAAM,CAAC,OAAmC;YAC7C,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,YAAY,GAChB,aAAa,CAAC,MAAM;YACpB,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ;YACxC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;YAClC,CAAC,CAAE,aAAa,CAAC,MAAkC;YACnD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;YACtD,CAAC,CAAC,YAAY,CAAC,QAAQ;YACvB,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG;YACf,GAAG,IAAI,GAAG,CACR,WAAW;iBACR,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;iBAClD,MAAM,CAAC,OAAO,CAAC,CACnB;SACF,CAAC;QAEF,IACE,eAAe,KAAK,sBAAsB;YAC1C,eAAe,KAAK,6BAA6B,EACjD,CAAC;YACD,kBAAkB,CAAC,IAAI,GAAG,SAAS,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,IAAI,GAAG,YAAY,CAAC;QACzC,CAAC;QAED,qFAAqF;QACrF,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/E,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC;QACpC,MAAM,CAAC,OAAO,GAAG,aAA4C,CAAC;QAC9D,MAAM,CAAC,YAAY;YACjB,kBAAsD,CAAC;QACzD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAC7B,UAAU,EACV,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACvC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AACxD,MAAM,6BAA6B,GAAG,eAAe,CAAC;AACtD,MAAM,gCAAgC,GAAG,kBAAkB,CAAC;AAC5D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,sBAAsB;IACtB,yBAAyB;IACzB,6BAA6B;IAC7B,gCAAgC;CACjC,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAAC,MAG5B;IACC,OAAO;QACL,KAAK;QACL,SAAS,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QAC5C,gBAAgB,MAAM,CAAC,WAAW,EAAE;QACpC,KAAK;QACL,EAAE;QACF,KAAK,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACxC,EAAE;QACF,gBAAgB;QAChB,+CAA+C;QAC/C,EAAE;QACF,iBAAiB;QACjB,4CAA4C;QAC5C,EAAE;QACF,gBAAgB;QAChB,2CAA2C;KAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IAUzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC9D,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,WAAW,GAMb,EAAE,CAAC;IACP,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,aAAa,IAAI,KAAK,EAAE,CAAC;YACnC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,CAAC;iBAAM,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAClC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,gBAAgB,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC;YACnC,CAAC;iBAAM,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAClC,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC;YACpC,CAAC;YACD,SAAS;QACX,CAAC;QACD,IACE,GAAG,KAAK,0BAA0B;YAClC,GAAG,KAAK,0BAA0B,EAClC,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,WAAW,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAC5C,CAAC;iBAAM,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAClC,WAAW,CAAC,sBAAsB,GAAG,KAAK,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,OAAO;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3C,KAAK,CAAC,CAAC,CAAC;QACR,0BAA0B,CAAC;IAE7B,OAAO,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK;SACT,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,QAAgB;IAChD,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3D,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,MAAc;IACpD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,OAAO,KAAK;SACT,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -1,4 +1,4 @@
1
- export type SkillSource = "workspace" | "managed" | "plugin" | "extra";
1
+ export type SkillSource = "managed" | "extra";
2
2
  export type SkillScope = "agent" | "global";
3
3
  export interface AgentSkillsLoadConfig {
4
4
  extraDirs?: string[];
@@ -11,8 +11,8 @@ export interface AgentSkillsPromptConfig {
11
11
  }
12
12
  export interface AgentSkillsConfig {
13
13
  enabled?: boolean;
14
- includeWorkspace?: boolean;
15
14
  includeManaged?: boolean;
15
+ assigned?: string[];
16
16
  load?: AgentSkillsLoadConfig;
17
17
  prompt?: AgentSkillsPromptConfig;
18
18
  }
@@ -1,8 +1,8 @@
1
1
  import { DEFAULT_AGENT_ID } from "../../domain/agent-id.js";
2
2
  export const DEFAULT_SKILLS_CONFIG = {
3
3
  enabled: true,
4
- includeWorkspace: true,
5
4
  includeManaged: true,
5
+ assigned: [],
6
6
  load: {
7
7
  extraDirs: []
8
8
  },
@@ -18,8 +18,10 @@ export function resolveSkillsConfig(input) {
18
18
  const load = input?.load;
19
19
  return {
20
20
  enabled: input?.enabled ?? DEFAULT_SKILLS_CONFIG.enabled,
21
- includeWorkspace: input?.includeWorkspace ?? DEFAULT_SKILLS_CONFIG.includeWorkspace,
22
21
  includeManaged: input?.includeManaged ?? DEFAULT_SKILLS_CONFIG.includeManaged,
22
+ assigned: Array.isArray(input?.assigned)
23
+ ? [...new Set(input.assigned.map((value) => value.trim().toLowerCase()).filter(Boolean))]
24
+ : DEFAULT_SKILLS_CONFIG.assigned,
23
25
  load: {
24
26
  extraDirs: Array.isArray(load?.extraDirs)
25
27
  ? load.extraDirs.map((value) => value.trim()).filter(Boolean)
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../../src/core/skills/domain/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAmE5D,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,IAAI,EAAE;QACJ,SAAS,EAAE,EAAE;KACd;IACD,MAAM,EAAE;QACN,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,MAAM;QACrB,cAAc,EAAE,IAAI;KACrB;CACF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,KAAoC;IACtE,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC;IACzB,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,qBAAqB,CAAC,OAAO;QACxD,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,IAAI,qBAAqB,CAAC,gBAAgB;QACnF,cAAc,EAAE,KAAK,EAAE,cAAc,IAAI,qBAAqB,CAAC,cAAc;QAC7E,IAAI,EAAE;YACJ,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC7D,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS;SACzC;QACD,MAAM,EAAE;YACN,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC;YACnF,gBAAgB,EAAE,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACxG,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/F,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,qBAAqB,CAAC,MAAM,CAAC,cAAc;SACtF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC3D,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,UAAU,IAAI,gBAAgB,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,QAAgB;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../../src/core/skills/domain/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAmE5D,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE;QACJ,SAAS,EAAE,EAAE;KACd;IACD,MAAM,EAAE;QACN,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,MAAM;QACrB,cAAc,EAAE,IAAI;KACrB;CACF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,KAAoC;IACtE,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC;IACzB,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,qBAAqB,CAAC,OAAO;QACxD,cAAc,EAAE,KAAK,EAAE,cAAc,IAAI,qBAAqB,CAAC,cAAc;QAC7E,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;YACtC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACzF,CAAC,CAAC,qBAAqB,CAAC,QAAQ;QAClC,IAAI,EAAE;YACJ,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC7D,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS;SACzC;QACD,MAAM,EAAE;YACN,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC;YACnF,gBAAgB,EAAE,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACxG,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/F,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,qBAAqB,CAAC,MAAM,CAAC,cAAc;SACtF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC3D,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,UAAU,IAAI,gBAAgB,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,QAAgB;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,41 @@
1
+ # BOOTSTRAP.md - First Contact
2
+
3
+ _This workspace is new._
4
+ _Your job is to learn what this organization is and what it's building._
5
+ _Don't interrogate. Get the essentials, then start shipping._
6
+
7
+ ## Start Like a Human
8
+
9
+ Say something like:
10
+
11
+ > "Hey, I just came online as the CEO for this org.
12
+ > Before we do anything: what are we building, and how should we call it?"
13
+
14
+ Then figure out together:
15
+
16
+ 1. **What are we building?**
17
+ (One sentence. Summarize it back.)
18
+
19
+ 2. **Who is it for, and what problem does it solve?**
20
+ (Two short sentences.)
21
+
22
+ 3. **What’s the vision?**
23
+ (One paragraph max. Long-term ambition, not a roadmap.)
24
+
25
+ ## As You Get The Essentials
26
+
27
+ Write them down:
28
+
29
+ - Update `MISSION.md` with the “what / who / problem”
30
+ - Update `VISION.md` with the vision
31
+ - Update `STRATEGY.md` only if the answers clearly imply changes to “where we play / how we win”
32
+
33
+ Then propose the next 1 to 3 concrete tasks and start.
34
+
35
+ ## When You’re Done
36
+
37
+ Delete this file. It’s only for first contact.
38
+
39
+ ---
40
+
41
+ _Get clarity. Write it down. Ship._
@@ -0,0 +1,15 @@
1
+ # ROLE.md - Your position in the organization
2
+
3
+ You are the CEO of an organization fully run by AI agents.
4
+
5
+ - Your id: ceo (agent id)
6
+ - Your name: CEO
7
+ - Role: CEO
8
+ - For info about your reportees, run `opengoat agent info ceo`.
9
+ - To delegate and coordinate work, use `og-*` skills.
10
+ - Organization context is available in `../../organization` - you're the owner of these files.
11
+ - You can view and edit the wiki in `../../organization/wiki`.
12
+
13
+ ---
14
+
15
+ _This file is yours to evolve. Update it as you learn your role and responsibilities in the organization._
@@ -0,0 +1,73 @@
1
+ # MISSION.md - What this organization exists to do right now
2
+
3
+ _Vision is the long-term ambition._
4
+ _Mission is our current job._
5
+ _If we cannot say it simply, we do not understand it._
6
+
7
+ ## Mission Statement
8
+
9
+ **We exist to <DO WHAT> for <WHO>, by delivering <WHAT OUTCOMES> in a way that is <KEY QUALITY 1>, <KEY QUALITY 2>, and <KEY QUALITY 3>.**
10
+
11
+ Examples of qualities: reliable, safe, cheap to run, auditable, fast, delightful, boring and stable.
12
+
13
+ ## Who We Serve
14
+
15
+ - Primary: <PRIMARY USERS>
16
+ - Secondary: <SECONDARY USERS>
17
+ - Not for now: <EXPLICIT NON-CUSTOMERS OR OUT OF SCOPE USERS>
18
+
19
+ ## What We Deliver
20
+
21
+ The mission is measured in outputs, not activity.
22
+
23
+ - Core outputs: <ARTIFACTS OR RESULTS WE PRODUCE>
24
+ - Secondary outputs: <NICE TO HAVE>
25
+ - Definition of done: <WHAT "DONE" MEANS MOST OF THE TIME>
26
+
27
+ ## Scope and Boundaries
28
+
29
+ ### In Scope
30
+
31
+ - <THING>
32
+ - <THING>
33
+ - <THING>
34
+
35
+ ### Out of Scope
36
+
37
+ - <THING>
38
+ - <THING>
39
+ - <THING>
40
+
41
+ ## How We Know We Are Succeeding
42
+
43
+ Pick 3 to 5 signals that are hard to fake.
44
+
45
+ - <SUCCESS SIGNAL 1>
46
+ - <SUCCESS SIGNAL 2>
47
+ - <SUCCESS SIGNAL 3>
48
+ - <SUCCESS SIGNAL 4>
49
+
50
+ ## Tradeoffs
51
+
52
+ When mission pressure is high, we choose:
53
+
54
+ 1. <PRIORITY 1>
55
+ 2. <PRIORITY 2>
56
+ 3. <PRIORITY 3>
57
+
58
+ ## Review Cadence
59
+
60
+ - Review: <MONTHLY | QUARTERLY>
61
+ - Update when:
62
+ - the primary user changes
63
+ - the core outputs change
64
+ - the definition of done changes
65
+ - the mission statement no longer matches reality
66
+
67
+ **Rule:** changes must stay consistent with `VISION.md` and `STRATEGY.md`
68
+
69
+ _Last updated: <YYYY-MM-DD>_
70
+
71
+ ---
72
+
73
+ _This file is for the CEO and executives to evolve._