@opengoat/core 2026.2.9 → 2026.2.13

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 (193) 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 +42 -4
  8. package/dist/core/agents/application/agent.service.js +439 -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 +1 -2
  26. package/dist/core/bootstrap/application/bootstrap.service.js +14 -19
  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/opengoat/application/opengoat.service.d.ts +106 -27
  33. package/dist/core/opengoat/application/opengoat.service.js +1006 -136
  34. package/dist/core/opengoat/application/opengoat.service.js.map +1 -1
  35. package/dist/core/opengoat/index.d.ts +1 -0
  36. package/dist/core/orchestration/application/orchestration.service.d.ts +8 -21
  37. package/dist/core/orchestration/application/orchestration.service.js +59 -871
  38. package/dist/core/orchestration/application/orchestration.service.js.map +1 -1
  39. package/dist/core/orchestration/application/routing.service.js +10 -8
  40. package/dist/core/orchestration/application/routing.service.js.map +1 -1
  41. package/dist/core/orchestration/domain/routing.d.ts +0 -17
  42. package/dist/core/orchestration/domain/run-events.d.ts +1 -1
  43. package/dist/core/orchestration/index.d.ts +0 -2
  44. package/dist/core/orchestration/index.js +0 -1
  45. package/dist/core/orchestration/index.js.map +1 -1
  46. package/dist/core/providers/application/provider.service.d.ts +15 -32
  47. package/dist/core/providers/application/provider.service.js +115 -201
  48. package/dist/core/providers/application/provider.service.js.map +1 -1
  49. package/dist/core/providers/cli-provider.d.ts +1 -0
  50. package/dist/core/providers/cli-provider.js +66 -1
  51. package/dist/core/providers/cli-provider.js.map +1 -1
  52. package/dist/core/providers/image-input.d.ts +16 -0
  53. package/dist/core/providers/image-input.js +158 -0
  54. package/dist/core/providers/image-input.js.map +1 -0
  55. package/dist/core/providers/index.d.ts +1 -7
  56. package/dist/core/providers/index.js +0 -13
  57. package/dist/core/providers/index.js.map +1 -1
  58. package/dist/core/providers/loader.js +1 -95
  59. package/dist/core/providers/loader.js.map +1 -1
  60. package/dist/core/providers/providers/openclaw/provider.js +213 -32
  61. package/dist/core/providers/providers/openclaw/provider.js.map +1 -1
  62. package/dist/core/providers/types.d.ts +8 -3
  63. package/dist/core/scenarios/application/scenario-runner.service.d.ts +0 -1
  64. package/dist/core/scenarios/application/scenario-runner.service.js +30 -87
  65. package/dist/core/scenarios/application/scenario-runner.service.js.map +1 -1
  66. package/dist/core/scenarios/domain/scenario.d.ts +0 -15
  67. package/dist/core/sessions/application/session.service.d.ts +10 -4
  68. package/dist/core/sessions/application/session.service.js +87 -89
  69. package/dist/core/sessions/application/session.service.js.map +1 -1
  70. package/dist/core/sessions/domain/session.d.ts +3 -3
  71. package/dist/core/sessions/domain/transcript.d.ts +1 -1
  72. package/dist/core/sessions/index.d.ts +1 -1
  73. package/dist/core/sessions/index.js.map +1 -1
  74. package/dist/core/skills/application/skill.service.d.ts +2 -3
  75. package/dist/core/skills/application/skill.service.js +153 -56
  76. package/dist/core/skills/application/skill.service.js.map +1 -1
  77. package/dist/core/skills/domain/skill.d.ts +2 -2
  78. package/dist/core/skills/domain/skill.js +4 -2
  79. package/dist/core/skills/domain/skill.js.map +1 -1
  80. package/dist/core/templates/assets/ceo/AGENTS.md +20 -0
  81. package/dist/core/templates/assets/ceo/ROLE.md +13 -0
  82. package/dist/core/templates/assets/ceo/SOUL.md +15 -0
  83. package/dist/core/templates/assets/skills/og-board-individual/SKILL.md +148 -0
  84. package/dist/core/templates/assets/skills/og-board-manager/SKILL.md +140 -0
  85. package/dist/core/templates/default-templates.d.ts +12 -14
  86. package/dist/core/templates/default-templates.js +81 -213
  87. package/dist/core/templates/default-templates.js.map +1 -1
  88. package/dist/index.d.ts +1 -4
  89. package/dist/index.js +1 -4
  90. package/dist/index.js.map +1 -1
  91. package/package.json +16 -13
  92. package/dist/core/agents/application/workspace-context.service.d.ts +0 -28
  93. package/dist/core/agents/application/workspace-context.service.js +0 -157
  94. package/dist/core/agents/application/workspace-context.service.js.map +0 -1
  95. package/dist/core/agents/domain/workspace-context.d.ts +0 -13
  96. package/dist/core/agents/domain/workspace-context.js +0 -14
  97. package/dist/core/agents/domain/workspace-context.js.map +0 -1
  98. package/dist/core/gateway/domain/protocol.d.ts +0 -113
  99. package/dist/core/gateway/domain/protocol.js +0 -394
  100. package/dist/core/gateway/domain/protocol.js.map +0 -1
  101. package/dist/core/gateway/index.d.ts +0 -2
  102. package/dist/core/gateway/index.js +0 -2
  103. package/dist/core/gateway/index.js.map +0 -1
  104. package/dist/core/llm/application/vercel-ai-text-runtime.d.ts +0 -26
  105. package/dist/core/llm/application/vercel-ai-text-runtime.js +0 -223
  106. package/dist/core/llm/application/vercel-ai-text-runtime.js.map +0 -1
  107. package/dist/core/llm/domain/text-runtime.d.ts +0 -22
  108. package/dist/core/llm/domain/text-runtime.js +0 -2
  109. package/dist/core/llm/domain/text-runtime.js.map +0 -1
  110. package/dist/core/llm/index.d.ts +0 -2
  111. package/dist/core/llm/index.js +0 -2
  112. package/dist/core/llm/index.js.map +0 -1
  113. package/dist/core/orchestration/application/orchestration-planner.service.d.ts +0 -28
  114. package/dist/core/orchestration/application/orchestration-planner.service.js +0 -279
  115. package/dist/core/orchestration/application/orchestration-planner.service.js.map +0 -1
  116. package/dist/core/orchestration/domain/loop.d.ts +0 -119
  117. package/dist/core/orchestration/domain/loop.js +0 -2
  118. package/dist/core/orchestration/domain/loop.js.map +0 -1
  119. package/dist/core/plugins/application/plugin.service.d.ts +0 -32
  120. package/dist/core/plugins/application/plugin.service.js +0 -236
  121. package/dist/core/plugins/application/plugin.service.js.map +0 -1
  122. package/dist/core/plugins/domain/openclaw-compat.d.ts +0 -60
  123. package/dist/core/plugins/domain/openclaw-compat.js +0 -9
  124. package/dist/core/plugins/domain/openclaw-compat.js.map +0 -1
  125. package/dist/core/plugins/index.d.ts +0 -3
  126. package/dist/core/plugins/index.js +0 -3
  127. package/dist/core/plugins/index.js.map +0 -1
  128. package/dist/core/providers/onboarding.d.ts +0 -13
  129. package/dist/core/providers/onboarding.js +0 -149
  130. package/dist/core/providers/onboarding.js.map +0 -1
  131. package/dist/core/providers/providers/claude/index.d.ts +0 -4
  132. package/dist/core/providers/providers/claude/index.js +0 -19
  133. package/dist/core/providers/providers/claude/index.js.map +0 -1
  134. package/dist/core/providers/providers/claude/provider.d.ts +0 -8
  135. package/dist/core/providers/providers/claude/provider.js +0 -106
  136. package/dist/core/providers/providers/claude/provider.js.map +0 -1
  137. package/dist/core/providers/providers/codex/index.d.ts +0 -4
  138. package/dist/core/providers/providers/codex/index.js +0 -19
  139. package/dist/core/providers/providers/codex/index.js.map +0 -1
  140. package/dist/core/providers/providers/codex/provider.d.ts +0 -7
  141. package/dist/core/providers/providers/codex/provider.js +0 -31
  142. package/dist/core/providers/providers/codex/provider.js.map +0 -1
  143. package/dist/core/providers/providers/cursor/index.d.ts +0 -4
  144. package/dist/core/providers/providers/cursor/index.js +0 -19
  145. package/dist/core/providers/providers/cursor/index.js.map +0 -1
  146. package/dist/core/providers/providers/cursor/provider.d.ts +0 -11
  147. package/dist/core/providers/providers/cursor/provider.js +0 -90
  148. package/dist/core/providers/providers/cursor/provider.js.map +0 -1
  149. package/dist/core/providers/providers/extended-http/catalog.d.ts +0 -40
  150. package/dist/core/providers/providers/extended-http/catalog.js +0 -728
  151. package/dist/core/providers/providers/extended-http/catalog.js.map +0 -1
  152. package/dist/core/providers/providers/extended-http/index.d.ts +0 -5
  153. package/dist/core/providers/providers/extended-http/index.js +0 -13
  154. package/dist/core/providers/providers/extended-http/index.js.map +0 -1
  155. package/dist/core/providers/providers/extended-http/provider.d.ts +0 -31
  156. package/dist/core/providers/providers/extended-http/provider.js +0 -580
  157. package/dist/core/providers/providers/extended-http/provider.js.map +0 -1
  158. package/dist/core/providers/providers/gemini/index.d.ts +0 -4
  159. package/dist/core/providers/providers/gemini/index.js +0 -37
  160. package/dist/core/providers/providers/gemini/index.js.map +0 -1
  161. package/dist/core/providers/providers/gemini/provider.d.ts +0 -7
  162. package/dist/core/providers/providers/gemini/provider.js +0 -59
  163. package/dist/core/providers/providers/gemini/provider.js.map +0 -1
  164. package/dist/core/providers/providers/grok/index.d.ts +0 -4
  165. package/dist/core/providers/providers/grok/index.js +0 -41
  166. package/dist/core/providers/providers/grok/index.js.map +0 -1
  167. package/dist/core/providers/providers/grok/provider.d.ts +0 -13
  168. package/dist/core/providers/providers/grok/provider.js +0 -95
  169. package/dist/core/providers/providers/grok/provider.js.map +0 -1
  170. package/dist/core/providers/providers/openai/index.d.ts +0 -4
  171. package/dist/core/providers/providers/openai/index.js +0 -45
  172. package/dist/core/providers/providers/openai/index.js.map +0 -1
  173. package/dist/core/providers/providers/openai/provider.d.ts +0 -14
  174. package/dist/core/providers/providers/openai/provider.js +0 -203
  175. package/dist/core/providers/providers/openai/provider.js.map +0 -1
  176. package/dist/core/providers/providers/opencode/index.d.ts +0 -4
  177. package/dist/core/providers/providers/opencode/index.js +0 -23
  178. package/dist/core/providers/providers/opencode/index.js.map +0 -1
  179. package/dist/core/providers/providers/opencode/provider.d.ts +0 -11
  180. package/dist/core/providers/providers/opencode/provider.js +0 -215
  181. package/dist/core/providers/providers/opencode/provider.js.map +0 -1
  182. package/dist/core/providers/providers/openrouter/index.d.ts +0 -4
  183. package/dist/core/providers/providers/openrouter/index.js +0 -37
  184. package/dist/core/providers/providers/openrouter/index.js.map +0 -1
  185. package/dist/core/providers/providers/openrouter/provider.d.ts +0 -13
  186. package/dist/core/providers/providers/openrouter/provider.js +0 -80
  187. package/dist/core/providers/providers/openrouter/provider.js.map +0 -1
  188. package/dist/platform/node/opengoat-gateway-client.d.ts +0 -19
  189. package/dist/platform/node/opengoat-gateway-client.js +0 -194
  190. package/dist/platform/node/opengoat-gateway-client.js.map +0 -1
  191. package/dist/platform/node/opengoat-gateway-server.d.ts +0 -53
  192. package/dist/platform/node/opengoat-gateway-server.js +0 -906
  193. package/dist/platform/node/opengoat-gateway-server.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { isDefaultAgentId, normalizeAgentId } from "../../domain/agent-id.js";
2
- import { renderAgentsIndex, renderInternalAgentConfig, renderInternalAgentMemoryMarkdown, renderInternalAgentState, renderWorkspaceAgentsMarkdown, renderWorkspaceBootstrapMarkdown, renderWorkspaceContextMarkdown, renderWorkspaceHeartbeatMarkdown, renderWorkspaceIdentityMarkdown, renderDefaultOrchestratorSkillMarkdown, renderWorkspaceSoulMarkdown, renderWorkspaceToolsMarkdown, renderWorkspaceUserMarkdown, renderWorkspaceMetadata } from "../../templates/default-templates.js";
1
+ import { DEFAULT_AGENT_ID, isDefaultAgentId, normalizeAgentId, } from "../../domain/agent-id.js";
2
+ import { renderAgentsIndex, renderBoardIndividualSkillMarkdown, renderBoardManagerSkillMarkdown, renderCeoRoleMarkdown, renderInternalAgentConfig, resolveAgentRole, } from "../../templates/default-templates.js";
3
3
  export class AgentService {
4
4
  fileSystem;
5
5
  pathPort;
@@ -20,41 +20,17 @@ export class AgentService {
20
20
  }
21
21
  return { id, displayName };
22
22
  }
23
- async ensureAgent(paths, identity) {
23
+ async ensureAgent(paths, identity, options = {}) {
24
24
  const workspaceDir = this.pathPort.join(paths.workspacesDir, identity.id);
25
- const workspaceSkillsDir = this.pathPort.join(workspaceDir, "skills");
26
25
  const internalConfigDir = this.pathPort.join(paths.agentsDir, identity.id);
27
- const sessionsDir = this.pathPort.join(internalConfigDir, "sessions");
26
+ const configPath = this.pathPort.join(internalConfigDir, "config.json");
27
+ const templateOptions = toAgentTemplateOptions(identity.id, options);
28
28
  const createdPaths = [];
29
29
  const skippedPaths = [];
30
- await this.ensureDirectory(workspaceDir, createdPaths, skippedPaths);
31
- await this.ensureDirectory(workspaceSkillsDir, createdPaths, skippedPaths);
30
+ const configExisted = await this.fileSystem.exists(configPath);
32
31
  await this.ensureDirectory(internalConfigDir, createdPaths, skippedPaths);
33
- await this.ensureDirectory(sessionsDir, createdPaths, skippedPaths);
34
- const shouldCreateBootstrapFile = await this.isBrandNewWorkspace(workspaceDir);
35
- await this.writeJsonIfMissing(this.pathPort.join(workspaceDir, "workspace.json"), renderWorkspaceMetadata(identity), createdPaths, skippedPaths);
36
- await this.writeMarkdownIfMissing(this.pathPort.join(workspaceDir, "AGENTS.md"), renderWorkspaceAgentsMarkdown(identity), createdPaths, skippedPaths);
37
- await this.writeMarkdownIfMissing(this.pathPort.join(workspaceDir, "CONTEXT.md"), renderWorkspaceContextMarkdown(identity), createdPaths, skippedPaths);
38
- await this.writeMarkdownIfMissing(this.pathPort.join(workspaceDir, "SOUL.md"), renderWorkspaceSoulMarkdown(identity), createdPaths, skippedPaths);
39
- await this.writeMarkdownIfMissing(this.pathPort.join(workspaceDir, "TOOLS.md"), renderWorkspaceToolsMarkdown(), createdPaths, skippedPaths);
40
- await this.writeMarkdownIfMissing(this.pathPort.join(workspaceDir, "IDENTITY.md"), renderWorkspaceIdentityMarkdown(identity), createdPaths, skippedPaths);
41
- await this.writeMarkdownIfMissing(this.pathPort.join(workspaceDir, "USER.md"), renderWorkspaceUserMarkdown(), createdPaths, skippedPaths);
42
- await this.writeMarkdownIfMissing(this.pathPort.join(workspaceDir, "HEARTBEAT.md"), renderWorkspaceHeartbeatMarkdown(), createdPaths, skippedPaths);
43
- if (shouldCreateBootstrapFile) {
44
- await this.writeMarkdownIfMissing(this.pathPort.join(workspaceDir, "BOOTSTRAP.md"), renderWorkspaceBootstrapMarkdown(identity), createdPaths, skippedPaths);
45
- }
46
- if (isDefaultAgentId(identity.id)) {
47
- const orchestratorSkillDir = this.pathPort.join(workspaceSkillsDir, "opengoat-skill");
48
- await this.ensureDirectory(orchestratorSkillDir, createdPaths, skippedPaths);
49
- await this.writeMarkdownIfMissing(this.pathPort.join(orchestratorSkillDir, "SKILL.md"), renderDefaultOrchestratorSkillMarkdown(), createdPaths, skippedPaths);
50
- }
51
- await this.writeJsonIfMissing(this.pathPort.join(internalConfigDir, "config.json"), renderInternalAgentConfig(identity), createdPaths, skippedPaths);
52
- await this.writeJsonIfMissing(this.pathPort.join(internalConfigDir, "state.json"), renderInternalAgentState(), createdPaths, skippedPaths);
53
- await this.writeMarkdownIfMissing(this.pathPort.join(internalConfigDir, "memory.md"), renderInternalAgentMemoryMarkdown(identity), createdPaths, skippedPaths);
54
- await this.writeJsonIfMissing(this.pathPort.join(sessionsDir, "sessions.json"), {
55
- schemaVersion: 1,
56
- sessions: {}
57
- }, createdPaths, skippedPaths);
32
+ await this.writeJsonIfMissing(configPath, renderInternalAgentConfig(identity, templateOptions), createdPaths, skippedPaths);
33
+ const role = await this.readAgentRole(paths, identity.id);
58
34
  const existingIndex = await this.readJsonIfPresent(paths.agentsIndexJsonPath);
59
35
  const agents = dedupe([...(existingIndex?.agents ?? []), identity.id]);
60
36
  const nextIndex = renderAgentsIndex(this.nowIso(), agents);
@@ -62,37 +38,180 @@ export class AgentService {
62
38
  return {
63
39
  agent: {
64
40
  ...identity,
41
+ role,
65
42
  workspaceDir,
66
- internalConfigDir
43
+ internalConfigDir,
67
44
  },
45
+ alreadyExisted: configExisted,
68
46
  createdPaths,
69
- skippedPaths
47
+ skippedPaths,
70
48
  };
71
49
  }
72
50
  async listAgents(paths) {
73
- const ids = await this.fileSystem.listDirectories(paths.workspacesDir);
51
+ const ids = await this.fileSystem.listDirectories(paths.agentsDir);
74
52
  const descriptors = [];
75
53
  for (const id of ids) {
76
54
  const workspaceDir = this.pathPort.join(paths.workspacesDir, id);
77
55
  const internalConfigDir = this.pathPort.join(paths.agentsDir, id);
78
- const metadataPath = this.pathPort.join(workspaceDir, "workspace.json");
79
- const metadata = await this.readJsonIfPresent(metadataPath);
56
+ const displayName = await this.readAgentDisplayName(paths, id);
57
+ const role = await this.readAgentRole(paths, id);
80
58
  descriptors.push({
81
59
  id,
82
- displayName: metadata?.displayName ?? id,
60
+ displayName,
61
+ role,
83
62
  workspaceDir,
84
- internalConfigDir
63
+ internalConfigDir,
85
64
  });
86
65
  }
87
66
  return descriptors.sort((left, right) => left.id.localeCompare(right.id));
88
67
  }
68
+ async ensureCeoWorkspaceBootstrap(paths) {
69
+ const displayName = await this.readAgentDisplayName(paths, DEFAULT_AGENT_ID);
70
+ const role = await this.readAgentRole(paths, DEFAULT_AGENT_ID);
71
+ return this.ensureAgentWorkspaceBootstrap(paths, {
72
+ agentId: DEFAULT_AGENT_ID,
73
+ displayName,
74
+ role,
75
+ });
76
+ }
77
+ async ensureAgentWorkspaceBootstrap(paths, input) {
78
+ const normalizedAgentId = normalizeAgentId(input.agentId);
79
+ if (!normalizedAgentId) {
80
+ throw new Error("Agent id cannot be empty.");
81
+ }
82
+ const workspaceDir = this.pathPort.join(paths.workspacesDir, normalizedAgentId);
83
+ const agentsPath = this.pathPort.join(workspaceDir, "AGENTS.md");
84
+ const rolePath = this.pathPort.join(workspaceDir, "ROLE.md");
85
+ const bootstrapPath = this.pathPort.join(workspaceDir, "BOOTSTRAP.md");
86
+ const createdPaths = [];
87
+ const skippedPaths = [];
88
+ const removedPaths = [];
89
+ await this.ensureDirectory(workspaceDir, createdPaths, skippedPaths);
90
+ await this.rewriteAgentsMarkdown(agentsPath, normalizedAgentId, createdPaths, skippedPaths);
91
+ await this.writeRoleMarkdown(rolePath, {
92
+ agentId: normalizedAgentId,
93
+ displayName: input.displayName.trim() || normalizedAgentId,
94
+ role: input.role.trim(),
95
+ }, createdPaths, skippedPaths);
96
+ const workspaceSkillSync = await this.ensureAgentWorkspaceRoleSkills(paths, normalizedAgentId);
97
+ createdPaths.push(...workspaceSkillSync.createdPaths);
98
+ skippedPaths.push(...workspaceSkillSync.skippedPaths);
99
+ removedPaths.push(...workspaceSkillSync.removedPaths);
100
+ if (await this.fileSystem.exists(bootstrapPath)) {
101
+ await this.fileSystem.removeDir(bootstrapPath);
102
+ removedPaths.push(bootstrapPath);
103
+ }
104
+ else {
105
+ skippedPaths.push(bootstrapPath);
106
+ }
107
+ return {
108
+ createdPaths,
109
+ skippedPaths,
110
+ removedPaths,
111
+ };
112
+ }
113
+ async ensureAgentWorkspaceRoleSkills(paths, agentId) {
114
+ const normalizedAgentId = normalizeAgentId(agentId);
115
+ if (!normalizedAgentId) {
116
+ throw new Error("Agent id cannot be empty.");
117
+ }
118
+ const type = await this.readAgentType(paths, normalizedAgentId);
119
+ const requiredSkillIds = type === "manager" ? MANAGER_ROLE_SKILLS : INDIVIDUAL_ROLE_SKILLS;
120
+ const managedRoleSkillIds = [
121
+ ...new Set([
122
+ ...MANAGER_ROLE_SKILLS,
123
+ ...INDIVIDUAL_ROLE_SKILLS,
124
+ ...LEGACY_MANAGER_ROLE_SKILLS,
125
+ ...LEGACY_INDIVIDUAL_ROLE_SKILLS,
126
+ ]),
127
+ ];
128
+ const workspaceDir = this.pathPort.join(paths.workspacesDir, normalizedAgentId);
129
+ const skillsDir = this.pathPort.join(workspaceDir, "skills");
130
+ const createdPaths = [];
131
+ const skippedPaths = [];
132
+ const removedPaths = [];
133
+ await this.ensureDirectory(workspaceDir, createdPaths, skippedPaths);
134
+ await this.ensureDirectory(skillsDir, createdPaths, skippedPaths);
135
+ for (const skillId of requiredSkillIds) {
136
+ const skillDir = this.pathPort.join(skillsDir, skillId);
137
+ const skillFile = this.pathPort.join(skillDir, "SKILL.md");
138
+ await this.ensureDirectory(skillDir, createdPaths, skippedPaths);
139
+ await this.writeMarkdown(skillFile, this.renderWorkspaceSkill(skillId), createdPaths, skippedPaths, { overwrite: true });
140
+ }
141
+ for (const skillId of managedRoleSkillIds) {
142
+ if (requiredSkillIds.includes(skillId)) {
143
+ continue;
144
+ }
145
+ const staleSkillDir = this.pathPort.join(skillsDir, skillId);
146
+ if (await this.fileSystem.exists(staleSkillDir)) {
147
+ await this.fileSystem.removeDir(staleSkillDir);
148
+ removedPaths.push(staleSkillDir);
149
+ }
150
+ else {
151
+ skippedPaths.push(staleSkillDir);
152
+ }
153
+ }
154
+ return {
155
+ createdPaths,
156
+ skippedPaths,
157
+ removedPaths,
158
+ };
159
+ }
160
+ async syncAgentRoleAssignments(paths, agentId) {
161
+ const normalizedAgentId = normalizeAgentId(agentId);
162
+ if (!normalizedAgentId) {
163
+ throw new Error("Agent id cannot be empty.");
164
+ }
165
+ const configPath = this.pathPort.join(paths.agentsDir, normalizedAgentId, "config.json");
166
+ const config = await this.readJsonIfPresent(configPath);
167
+ if (!config) {
168
+ return {
169
+ updatedPaths: [],
170
+ skippedPaths: [configPath],
171
+ };
172
+ }
173
+ const type = await this.readAgentType(paths, normalizedAgentId);
174
+ const requiredSkillIds = type === "manager" ? MANAGER_ROLE_SKILLS : INDIVIDUAL_ROLE_SKILLS;
175
+ const roleSkillIds = new Set([
176
+ ...MANAGER_ROLE_SKILLS,
177
+ ...INDIVIDUAL_ROLE_SKILLS,
178
+ ...LEGACY_MANAGER_ROLE_SKILLS,
179
+ ...LEGACY_INDIVIDUAL_ROLE_SKILLS,
180
+ ]);
181
+ const runtimeRecord = toObject(config.runtime);
182
+ const skillsRecord = toObject(runtimeRecord.skills);
183
+ const assignedRaw = Array.isArray(skillsRecord.assigned)
184
+ ? skillsRecord.assigned
185
+ : [];
186
+ const assigned = [
187
+ ...new Set(assignedRaw
188
+ .map((value) => String(value).trim().toLowerCase())
189
+ .filter(Boolean)),
190
+ ];
191
+ const preserved = assigned.filter((skillId) => !roleSkillIds.has(skillId));
192
+ const nextAssigned = [...new Set([...preserved, ...requiredSkillIds])];
193
+ if (sameStringArray(assigned, nextAssigned)) {
194
+ return {
195
+ updatedPaths: [],
196
+ skippedPaths: [configPath],
197
+ };
198
+ }
199
+ skillsRecord.assigned = nextAssigned;
200
+ runtimeRecord.skills = skillsRecord;
201
+ config.runtime = runtimeRecord;
202
+ await this.fileSystem.writeFile(configPath, toJson(config));
203
+ return {
204
+ updatedPaths: [configPath],
205
+ skippedPaths: [],
206
+ };
207
+ }
89
208
  async removeAgent(paths, rawAgentId) {
90
209
  const agentId = normalizeAgentId(rawAgentId);
91
210
  if (!agentId) {
92
211
  throw new Error("Agent id cannot be empty.");
93
212
  }
94
213
  if (isDefaultAgentId(agentId)) {
95
- throw new Error("Cannot delete orchestrator. It is the immutable default entry agent.");
214
+ throw new Error("Cannot delete ceo. It is the immutable default entry agent.");
96
215
  }
97
216
  const workspaceDir = this.pathPort.join(paths.workspacesDir, agentId);
98
217
  const internalConfigDir = this.pathPort.join(paths.agentsDir, agentId);
@@ -124,21 +243,59 @@ export class AgentService {
124
243
  agentId,
125
244
  existed: workspaceExists || internalConfigExists,
126
245
  removedPaths,
127
- skippedPaths
246
+ skippedPaths,
128
247
  };
129
248
  }
130
- async isBrandNewWorkspace(workspaceDir) {
131
- const firstRunFiles = [
132
- "AGENTS.md",
133
- "CONTEXT.md",
134
- "SOUL.md",
135
- "TOOLS.md",
136
- "IDENTITY.md",
137
- "USER.md",
138
- "HEARTBEAT.md"
139
- ];
140
- const existence = await Promise.all(firstRunFiles.map((fileName) => this.fileSystem.exists(this.pathPort.join(workspaceDir, fileName))));
141
- return existence.every((value) => !value);
249
+ async setAgentManager(paths, rawAgentId, rawReportsTo) {
250
+ const agentId = normalizeAgentId(rawAgentId);
251
+ if (!agentId) {
252
+ throw new Error("Agent id cannot be empty.");
253
+ }
254
+ const explicitReportsTo = rawReportsTo === null || rawReportsTo === undefined
255
+ ? null
256
+ : normalizeAgentId(rawReportsTo);
257
+ if (explicitReportsTo === agentId) {
258
+ throw new Error(`Agent "${agentId}" cannot report to itself.`);
259
+ }
260
+ if (isDefaultAgentId(agentId) && explicitReportsTo) {
261
+ throw new Error("ceo is the head of the organization and cannot report to another agent.");
262
+ }
263
+ const reportsTo = resolveReportsTo(agentId, rawReportsTo);
264
+ const knownAgents = await this.fileSystem.listDirectories(paths.agentsDir);
265
+ if (!knownAgents.includes(agentId)) {
266
+ throw new Error(`Agent "${agentId}" does not exist.`);
267
+ }
268
+ if (reportsTo && !knownAgents.includes(reportsTo)) {
269
+ throw new Error(`Manager "${reportsTo}" does not exist.`);
270
+ }
271
+ await this.assertNoReportingCycle(paths, agentId, reportsTo, knownAgents);
272
+ const configPath = this.pathPort.join(paths.agentsDir, agentId, "config.json");
273
+ const displayName = await this.readAgentDisplayName(paths, agentId);
274
+ const role = await this.readAgentRole(paths, agentId);
275
+ const existingConfig = (await this.readJsonIfPresent(configPath)) ??
276
+ renderInternalAgentConfig({ id: agentId, displayName, role });
277
+ const existingOrganization = toObject(existingConfig.organization);
278
+ const previousReportsTo = normalizeReportsToValue(existingOrganization.reportsTo);
279
+ const nextOrganization = {
280
+ ...existingOrganization,
281
+ reportsTo,
282
+ };
283
+ if (typeof existingOrganization.type !== "string") {
284
+ nextOrganization.type = isDefaultAgentId(agentId)
285
+ ? "manager"
286
+ : "individual";
287
+ }
288
+ const nextConfig = {
289
+ ...existingConfig,
290
+ organization: nextOrganization,
291
+ };
292
+ await this.fileSystem.writeFile(configPath, toJson(nextConfig));
293
+ return {
294
+ agentId,
295
+ previousReportsTo: previousReportsTo ?? null,
296
+ reportsTo,
297
+ updatedPaths: [configPath],
298
+ };
142
299
  }
143
300
  async ensureDirectory(directoryPath, createdPaths, skippedPaths) {
144
301
  const existed = await this.fileSystem.exists(directoryPath);
@@ -158,16 +315,38 @@ export class AgentService {
158
315
  await this.fileSystem.writeFile(filePath, toJson(payload));
159
316
  createdPaths.push(filePath);
160
317
  }
161
- async writeMarkdownIfMissing(filePath, content, createdPaths, skippedPaths) {
318
+ async writeMarkdown(filePath, content, createdPaths, skippedPaths, options = {}) {
162
319
  const exists = await this.fileSystem.exists(filePath);
163
- if (exists) {
320
+ if (exists && !options.overwrite) {
164
321
  skippedPaths.push(filePath);
165
322
  return;
166
323
  }
167
324
  const markdown = content.endsWith("\n") ? content : `${content}\n`;
168
325
  await this.fileSystem.writeFile(filePath, markdown);
326
+ if (exists) {
327
+ skippedPaths.push(filePath);
328
+ return;
329
+ }
169
330
  createdPaths.push(filePath);
170
331
  }
332
+ async rewriteAgentsMarkdown(filePath, _agentId, createdPaths, skippedPaths) {
333
+ const exists = await this.fileSystem.exists(filePath);
334
+ if (!exists) {
335
+ skippedPaths.push(filePath);
336
+ return;
337
+ }
338
+ const source = await this.fileSystem.readFile(filePath);
339
+ const next = replaceFirstRunSection(source);
340
+ if (source === next) {
341
+ skippedPaths.push(filePath);
342
+ return;
343
+ }
344
+ await this.fileSystem.writeFile(filePath, next);
345
+ skippedPaths.push(filePath);
346
+ }
347
+ async writeRoleMarkdown(filePath, profile, createdPaths, skippedPaths) {
348
+ await this.writeMarkdown(filePath, renderRoleMarkdown(profile), createdPaths, skippedPaths, { overwrite: true });
349
+ }
171
350
  async readJsonIfPresent(filePath) {
172
351
  const exists = await this.fileSystem.exists(filePath);
173
352
  if (!exists) {
@@ -181,6 +360,140 @@ export class AgentService {
181
360
  return null;
182
361
  }
183
362
  }
363
+ async readAgentDisplayName(paths, agentId) {
364
+ const configPath = this.pathPort.join(paths.agentsDir, agentId, "config.json");
365
+ const config = await this.readJsonIfPresent(configPath);
366
+ return config?.displayName?.trim() || agentId;
367
+ }
368
+ async readAgentRole(paths, agentId) {
369
+ const configPath = this.pathPort.join(paths.agentsDir, agentId, "config.json");
370
+ const config = await this.readJsonIfPresent(configPath);
371
+ const type = config?.organization?.type ??
372
+ (isDefaultAgentId(agentId) ? "manager" : "individual");
373
+ return resolveAgentRole(agentId, type, config?.role);
374
+ }
375
+ async readAgentType(paths, agentId) {
376
+ const configPath = this.pathPort.join(paths.agentsDir, agentId, "config.json");
377
+ const config = await this.readJsonIfPresent(configPath);
378
+ const type = config?.organization?.type;
379
+ const hasDirectReportees = await this.hasDirectReportees(paths, agentId);
380
+ if (type === "manager") {
381
+ return type;
382
+ }
383
+ if (type === "individual") {
384
+ return hasDirectReportees ? "manager" : "individual";
385
+ }
386
+ if (isDefaultAgentId(agentId)) {
387
+ return "manager";
388
+ }
389
+ return hasDirectReportees ? "manager" : "individual";
390
+ }
391
+ renderWorkspaceSkill(skillId) {
392
+ if (skillId === "og-board-manager") {
393
+ return renderBoardManagerSkillMarkdown();
394
+ }
395
+ if (skillId === "og-board-individual") {
396
+ return renderBoardIndividualSkillMarkdown();
397
+ }
398
+ throw new Error(`Unsupported workspace skill id: ${skillId}`);
399
+ }
400
+ async assertNoReportingCycle(paths, agentId, reportsTo, knownAgentIds) {
401
+ if (!reportsTo) {
402
+ return;
403
+ }
404
+ const reportsToByAgent = new Map();
405
+ await Promise.all(knownAgentIds.map(async (candidateAgentId) => {
406
+ reportsToByAgent.set(candidateAgentId, await this.readAgentReportsTo(paths, candidateAgentId));
407
+ }));
408
+ reportsToByAgent.set(agentId, reportsTo);
409
+ const visited = new Set([agentId]);
410
+ let cursor = reportsTo;
411
+ while (cursor) {
412
+ if (visited.has(cursor)) {
413
+ throw new Error(`Cannot set "${agentId}" to report to "${reportsTo}" because it would create a cycle.`);
414
+ }
415
+ visited.add(cursor);
416
+ cursor = reportsToByAgent.get(cursor) ?? null;
417
+ }
418
+ }
419
+ async readAgentReportsTo(paths, agentId) {
420
+ const configPath = this.pathPort.join(paths.agentsDir, agentId, "config.json");
421
+ const config = await this.readJsonIfPresent(configPath);
422
+ const reportsTo = normalizeReportsToValue(config?.organization?.reportsTo);
423
+ if (isDefaultAgentId(agentId)) {
424
+ return null;
425
+ }
426
+ if (reportsTo === undefined) {
427
+ return DEFAULT_AGENT_ID;
428
+ }
429
+ return reportsTo;
430
+ }
431
+ async hasDirectReportees(paths, managerAgentId) {
432
+ const normalizedManagerId = normalizeAgentId(managerAgentId);
433
+ if (!normalizedManagerId) {
434
+ return false;
435
+ }
436
+ const knownAgents = await this.fileSystem.listDirectories(paths.agentsDir);
437
+ for (const agentId of knownAgents) {
438
+ if (agentId === normalizedManagerId) {
439
+ continue;
440
+ }
441
+ const reportsTo = await this.readAgentReportsTo(paths, agentId);
442
+ if (reportsTo === normalizedManagerId) {
443
+ return true;
444
+ }
445
+ }
446
+ return false;
447
+ }
448
+ }
449
+ const MANAGER_ROLE_SKILLS = ["og-board-manager"];
450
+ const INDIVIDUAL_ROLE_SKILLS = ["og-board-individual"];
451
+ const LEGACY_MANAGER_ROLE_SKILLS = ["board-manager"];
452
+ const LEGACY_INDIVIDUAL_ROLE_SKILLS = ["board-individual"];
453
+ function toAgentTemplateOptions(agentId, options) {
454
+ const type = options.type ?? (isDefaultAgentId(agentId) ? "manager" : "individual");
455
+ const reportsTo = resolveReportsTo(agentId, options.reportsTo);
456
+ const providedSkills = options.skills ?? [];
457
+ const roleSkillIds = new Set([
458
+ ...MANAGER_ROLE_SKILLS,
459
+ ...INDIVIDUAL_ROLE_SKILLS,
460
+ ...LEGACY_MANAGER_ROLE_SKILLS,
461
+ ...LEGACY_INDIVIDUAL_ROLE_SKILLS,
462
+ ]);
463
+ const skills = dedupe(providedSkills.filter((skillId) => !roleSkillIds.has(skillId)));
464
+ const role = resolveAgentRole(agentId, type, options.role);
465
+ return {
466
+ type,
467
+ reportsTo,
468
+ skills,
469
+ role,
470
+ };
471
+ }
472
+ function resolveReportsTo(agentId, reportsTo) {
473
+ if (isDefaultAgentId(agentId)) {
474
+ return null;
475
+ }
476
+ if (reportsTo === null || reportsTo === undefined) {
477
+ return DEFAULT_AGENT_ID;
478
+ }
479
+ const normalized = normalizeAgentId(reportsTo);
480
+ if (!normalized || normalized === agentId) {
481
+ return DEFAULT_AGENT_ID;
482
+ }
483
+ return normalized;
484
+ }
485
+ function normalizeReportsToValue(value) {
486
+ if (value === null) {
487
+ return null;
488
+ }
489
+ if (typeof value !== "string") {
490
+ return undefined;
491
+ }
492
+ const normalized = normalizeAgentId(value);
493
+ if (!normalized) {
494
+ return null;
495
+ }
496
+ return normalized;
184
497
  }
185
498
  function dedupe(values) {
186
499
  return [...new Set(values)].sort((left, right) => left.localeCompare(right));
@@ -188,4 +501,75 @@ function dedupe(values) {
188
501
  function toJson(payload) {
189
502
  return `${JSON.stringify(payload, null, 2)}\n`;
190
503
  }
504
+ function toObject(value) {
505
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
506
+ return {};
507
+ }
508
+ return value;
509
+ }
510
+ function sameStringArray(left, right) {
511
+ if (left.length !== right.length) {
512
+ return false;
513
+ }
514
+ return left.every((value, index) => value === right[index]);
515
+ }
516
+ function replaceFirstRunSection(markdown) {
517
+ const lineBreak = markdown.includes("\r\n") ? "\r\n" : "\n";
518
+ const lines = markdown.split(/\r?\n/);
519
+ const hasTrailingLineBreak = /\r?\n$/.test(markdown);
520
+ const kept = [];
521
+ let skipping = false;
522
+ let replaced = false;
523
+ const replacementLines = [
524
+ "## Your Role",
525
+ "",
526
+ "You are part of an organization run by AI agents. Read `ROLE.md` for details.",
527
+ "",
528
+ ];
529
+ for (const line of lines) {
530
+ const trimmed = line.trim();
531
+ if (!skipping && /^##\s+first run\s*$/i.test(trimmed)) {
532
+ skipping = true;
533
+ replaced = true;
534
+ kept.push(...replacementLines);
535
+ continue;
536
+ }
537
+ if (skipping) {
538
+ if (/^##\s+/.test(trimmed)) {
539
+ skipping = false;
540
+ kept.push(line);
541
+ }
542
+ continue;
543
+ }
544
+ kept.push(line);
545
+ }
546
+ if (!replaced) {
547
+ return markdown;
548
+ }
549
+ let next = kept.join(lineBreak);
550
+ if (hasTrailingLineBreak && !next.endsWith(lineBreak)) {
551
+ next = `${next}${lineBreak}`;
552
+ }
553
+ return next;
554
+ }
555
+ function renderRoleMarkdown(profile) {
556
+ if (isDefaultAgentId(profile.agentId)) {
557
+ return renderCeoRoleMarkdown();
558
+ }
559
+ return [
560
+ "# ROLE.md - Your position in the organization",
561
+ "",
562
+ "You are part of an organization fully run by AI agents.",
563
+ "",
564
+ `- Your id: ${profile.agentId} (agent id)`,
565
+ `- Your name: ${profile.displayName}`,
566
+ `- Role: ${profile.role}`,
567
+ `- For info about your level on the organiztion, run \`opengoat agent info ${profile.agentId}\`.`,
568
+ "- To delegate and coordinate work, use `og-*` skills.",
569
+ "",
570
+ "---",
571
+ "",
572
+ "_This file is yours to evolve. Update it as you learn your role and responsibilities in the organization._",
573
+ ].join("\n");
574
+ }
191
575
  //# sourceMappingURL=agent.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.service.js","sourceRoot":"","sources":["../../../../src/core/agents/application/agent.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.service.js","sourceRoot":"","sources":["../../../../src/core/agents/application/agent.service.ts"],"names":[],"mappings":"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"}