@opengoat/core 2026.2.14 → 2026.2.17

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 (89) hide show
  1. package/dist/core/agents/application/agent.service.d.ts +19 -3
  2. package/dist/core/agents/application/agent.service.js +170 -45
  3. package/dist/core/agents/application/agent.service.js.map +1 -1
  4. package/dist/core/boards/application/board.service.d.ts +2 -0
  5. package/dist/core/boards/application/board.service.js +36 -2
  6. package/dist/core/boards/application/board.service.js.map +1 -1
  7. package/dist/core/bootstrap/application/bootstrap.service.js +17 -1
  8. package/dist/core/bootstrap/application/bootstrap.service.js.map +1 -1
  9. package/dist/core/opengoat/application/opengoat.service.d.ts +14 -3
  10. package/dist/core/opengoat/application/opengoat.service.helpers.d.ts +62 -0
  11. package/dist/core/opengoat/application/opengoat.service.helpers.js +403 -0
  12. package/dist/core/opengoat/application/opengoat.service.helpers.js.map +1 -0
  13. package/dist/core/opengoat/application/opengoat.service.js +653 -371
  14. package/dist/core/opengoat/application/opengoat.service.js.map +1 -1
  15. package/dist/core/orchestration/application/orchestration.service.d.ts +2 -0
  16. package/dist/core/orchestration/application/orchestration.service.js +150 -52
  17. package/dist/core/orchestration/application/orchestration.service.js.map +1 -1
  18. package/dist/core/providers/application/provider.service.d.ts +35 -4
  19. package/dist/core/providers/application/provider.service.js +823 -96
  20. package/dist/core/providers/application/provider.service.js.map +1 -1
  21. package/dist/core/providers/index.d.ts +1 -1
  22. package/dist/core/providers/index.js.map +1 -1
  23. package/dist/core/providers/loader.js +4 -2
  24. package/dist/core/providers/loader.js.map +1 -1
  25. package/dist/core/providers/openclaw-gateway-rpc.d.ts +20 -0
  26. package/dist/core/providers/openclaw-gateway-rpc.js +629 -0
  27. package/dist/core/providers/openclaw-gateway-rpc.js.map +1 -0
  28. package/dist/core/providers/provider-module.d.ts +11 -0
  29. package/dist/core/providers/provider-module.js +8 -1
  30. package/dist/core/providers/provider-module.js.map +1 -1
  31. package/dist/core/providers/providers/claude-code/index.d.ts +4 -0
  32. package/dist/core/providers/providers/claude-code/index.js +32 -0
  33. package/dist/core/providers/providers/claude-code/index.js.map +1 -0
  34. package/dist/core/providers/providers/claude-code/provider.d.ts +13 -0
  35. package/dist/core/providers/providers/claude-code/provider.js +152 -0
  36. package/dist/core/providers/providers/claude-code/provider.js.map +1 -0
  37. package/dist/core/providers/providers/codex/index.d.ts +4 -0
  38. package/dist/core/providers/providers/codex/index.js +32 -0
  39. package/dist/core/providers/providers/codex/index.js.map +1 -0
  40. package/dist/core/providers/providers/codex/provider.d.ts +12 -0
  41. package/dist/core/providers/providers/codex/provider.js +156 -0
  42. package/dist/core/providers/providers/codex/provider.js.map +1 -0
  43. package/dist/core/providers/providers/cursor/index.d.ts +4 -0
  44. package/dist/core/providers/providers/cursor/index.js +32 -0
  45. package/dist/core/providers/providers/cursor/index.js.map +1 -0
  46. package/dist/core/providers/providers/cursor/provider.d.ts +12 -0
  47. package/dist/core/providers/providers/cursor/provider.js +161 -0
  48. package/dist/core/providers/providers/cursor/provider.js.map +1 -0
  49. package/dist/core/providers/providers/gemini-cli/index.d.ts +4 -0
  50. package/dist/core/providers/providers/gemini-cli/index.js +36 -0
  51. package/dist/core/providers/providers/gemini-cli/index.js.map +1 -0
  52. package/dist/core/providers/providers/gemini-cli/provider.d.ts +11 -0
  53. package/dist/core/providers/providers/gemini-cli/provider.js +122 -0
  54. package/dist/core/providers/providers/gemini-cli/provider.js.map +1 -0
  55. package/dist/core/providers/providers/openclaw/index.js +8 -0
  56. package/dist/core/providers/providers/openclaw/index.js.map +1 -1
  57. package/dist/core/providers/providers/openclaw/provider.js +1 -0
  58. package/dist/core/providers/providers/openclaw/provider.js.map +1 -1
  59. package/dist/core/providers/providers/opencode/index.d.ts +4 -0
  60. package/dist/core/providers/providers/opencode/index.js +27 -0
  61. package/dist/core/providers/providers/opencode/index.js.map +1 -0
  62. package/dist/core/providers/providers/opencode/provider.d.ts +12 -0
  63. package/dist/core/providers/providers/opencode/provider.js +130 -0
  64. package/dist/core/providers/providers/opencode/provider.js.map +1 -0
  65. package/dist/core/providers/providers/registry.d.ts +2 -0
  66. package/dist/core/providers/providers/registry.js +17 -0
  67. package/dist/core/providers/providers/registry.js.map +1 -0
  68. package/dist/core/providers/registry.d.ts +2 -1
  69. package/dist/core/providers/registry.js +40 -0
  70. package/dist/core/providers/registry.js.map +1 -1
  71. package/dist/core/providers/types.d.ts +1 -0
  72. package/dist/core/scenarios/application/scenario-runner.service.js +2 -1
  73. package/dist/core/scenarios/application/scenario-runner.service.js.map +1 -1
  74. package/dist/core/sessions/application/session.service.d.ts +0 -2
  75. package/dist/core/sessions/application/session.service.js +10 -73
  76. package/dist/core/sessions/application/session.service.js.map +1 -1
  77. package/dist/core/sessions/domain/session.d.ts +0 -3
  78. package/dist/core/sessions/domain/session.js.map +1 -1
  79. package/dist/core/skills/application/skill.service.js +4 -1
  80. package/dist/core/skills/application/skill.service.js.map +1 -1
  81. package/dist/core/templates/assets/ceo/BOOTSTRAP.md +3 -3
  82. package/dist/core/templates/assets/ceo/ROLE.md +5 -3
  83. package/dist/core/templates/assets/skills/og-board-individual/SKILL.md +66 -89
  84. package/dist/core/templates/assets/skills/og-board-manager/SKILL.md +64 -45
  85. package/dist/core/templates/assets/skills/og-boards/SKILL.md +65 -0
  86. package/dist/core/templates/default-templates.d.ts +1 -2
  87. package/dist/core/templates/default-templates.js +22 -10
  88. package/dist/core/templates/default-templates.js.map +1 -1
  89. package/package.json +3 -2
@@ -23,15 +23,28 @@ export interface AgentWorkspaceBootstrapInput {
23
23
  displayName: string;
24
24
  role: string;
25
25
  }
26
+ export interface AgentWorkspaceBootstrapOptions {
27
+ syncBootstrapMarkdown?: boolean;
28
+ roleSkillDirectories?: string[];
29
+ managedRoleSkillDirectories?: string[];
30
+ }
26
31
  interface WorkspaceSkillSyncResult {
27
32
  createdPaths: string[];
28
33
  skippedPaths: string[];
29
34
  removedPaths: string[];
30
35
  }
36
+ export interface WorkspaceRoleSkillSyncOptions {
37
+ requiredSkillDirectories?: string[];
38
+ managedSkillDirectories?: string[];
39
+ }
31
40
  interface RoleAssignmentSyncResult {
32
41
  updatedPaths: string[];
33
42
  skippedPaths: string[];
34
43
  }
44
+ export interface WorkspaceCommandShimSyncResult {
45
+ createdPaths: string[];
46
+ skippedPaths: string[];
47
+ }
35
48
  export declare class AgentService {
36
49
  private readonly fileSystem;
37
50
  private readonly pathPort;
@@ -40,18 +53,21 @@ export declare class AgentService {
40
53
  normalizeAgentName(rawName: string): AgentIdentity;
41
54
  ensureAgent(paths: OpenGoatPaths, identity: AgentIdentity, options?: EnsureAgentOptions): Promise<AgentCreationResult>;
42
55
  listAgents(paths: OpenGoatPaths): Promise<AgentDescriptor[]>;
43
- ensureCeoWorkspaceBootstrap(paths: OpenGoatPaths): Promise<CeoWorkspaceBootstrapResult>;
44
- ensureAgentWorkspaceBootstrap(paths: OpenGoatPaths, input: AgentWorkspaceBootstrapInput): Promise<CeoWorkspaceBootstrapResult>;
45
- ensureAgentWorkspaceRoleSkills(paths: OpenGoatPaths, agentId: string): Promise<WorkspaceSkillSyncResult>;
56
+ ensureCeoWorkspaceBootstrap(paths: OpenGoatPaths, options?: AgentWorkspaceBootstrapOptions): Promise<CeoWorkspaceBootstrapResult>;
57
+ ensureAgentWorkspaceBootstrap(paths: OpenGoatPaths, input: AgentWorkspaceBootstrapInput, options?: AgentWorkspaceBootstrapOptions): Promise<CeoWorkspaceBootstrapResult>;
58
+ ensureAgentWorkspaceCommandShim(paths: OpenGoatPaths, rawAgentId: string): Promise<WorkspaceCommandShimSyncResult>;
59
+ ensureAgentWorkspaceRoleSkills(paths: OpenGoatPaths, agentId: string, options?: WorkspaceRoleSkillSyncOptions): Promise<WorkspaceSkillSyncResult>;
46
60
  syncAgentRoleAssignments(paths: OpenGoatPaths, agentId: string): Promise<RoleAssignmentSyncResult>;
47
61
  removeAgent(paths: OpenGoatPaths, rawAgentId: string): Promise<AgentDeletionResult>;
48
62
  setAgentManager(paths: OpenGoatPaths, rawAgentId: string, rawReportsTo: string | null | undefined): Promise<AgentManagerUpdateResult>;
49
63
  private ensureDirectory;
64
+ private removePathIfExists;
50
65
  private writeJsonIfMissing;
51
66
  private writeMarkdown;
52
67
  private rewriteAgentsMarkdown;
53
68
  private writeRoleMarkdown;
54
69
  private writeBootstrapMarkdown;
70
+ private writeOpenGoatWorkspaceShim;
55
71
  private readJsonIfPresent;
56
72
  private readAgentDisplayName;
57
73
  private readAgentRole;
@@ -1,5 +1,6 @@
1
+ import { basename, isAbsolute, resolve as resolvePath } from "node:path";
1
2
  import { DEFAULT_AGENT_ID, isDefaultAgentId, normalizeAgentId, } from "../../domain/agent-id.js";
2
- import { renderAgentsIndex, renderBoardIndividualSkillMarkdown, renderBoardManagerSkillMarkdown, renderCeoBootstrapMarkdown, renderCeoRoleMarkdown, renderInternalAgentConfig, resolveAgentRole, } from "../../templates/default-templates.js";
3
+ import { renderAgentsIndex, renderBoardsSkillMarkdown, renderCeoBootstrapMarkdown, renderCeoRoleMarkdown, renderInternalAgentConfig, resolveAgentRole, } from "../../templates/default-templates.js";
3
4
  export class AgentService {
4
5
  fileSystem;
5
6
  pathPort;
@@ -65,16 +66,18 @@ export class AgentService {
65
66
  }
66
67
  return descriptors.sort((left, right) => left.id.localeCompare(right.id));
67
68
  }
68
- async ensureCeoWorkspaceBootstrap(paths) {
69
+ async ensureCeoWorkspaceBootstrap(paths, options = {
70
+ syncBootstrapMarkdown: true,
71
+ }) {
69
72
  const displayName = await this.readAgentDisplayName(paths, DEFAULT_AGENT_ID);
70
73
  const role = await this.readAgentRole(paths, DEFAULT_AGENT_ID);
71
74
  return this.ensureAgentWorkspaceBootstrap(paths, {
72
75
  agentId: DEFAULT_AGENT_ID,
73
76
  displayName,
74
77
  role,
75
- });
78
+ }, options);
76
79
  }
77
- async ensureAgentWorkspaceBootstrap(paths, input) {
80
+ async ensureAgentWorkspaceBootstrap(paths, input, options = {}) {
78
81
  const normalizedAgentId = normalizeAgentId(input.agentId);
79
82
  if (!normalizedAgentId) {
80
83
  throw new Error("Agent id cannot be empty.");
@@ -83,37 +86,57 @@ export class AgentService {
83
86
  const agentsPath = this.pathPort.join(workspaceDir, "AGENTS.md");
84
87
  const rolePath = this.pathPort.join(workspaceDir, "ROLE.md");
85
88
  const bootstrapPath = this.pathPort.join(workspaceDir, "BOOTSTRAP.md");
89
+ const userPath = this.pathPort.join(workspaceDir, "USER.md");
86
90
  const createdPaths = [];
87
91
  const skippedPaths = [];
88
92
  const removedPaths = [];
89
93
  await this.ensureDirectory(workspaceDir, createdPaths, skippedPaths);
94
+ await this.writeOpenGoatWorkspaceShim(workspaceDir, createdPaths, skippedPaths);
90
95
  await this.rewriteAgentsMarkdown(agentsPath, normalizedAgentId, createdPaths, skippedPaths);
91
96
  await this.writeRoleMarkdown(rolePath, {
92
97
  agentId: normalizedAgentId,
93
98
  displayName: input.displayName.trim() || normalizedAgentId,
94
99
  role: input.role.trim(),
95
100
  }, createdPaths, skippedPaths);
96
- const workspaceSkillSync = await this.ensureAgentWorkspaceRoleSkills(paths, normalizedAgentId);
101
+ const workspaceSkillSync = await this.ensureAgentWorkspaceRoleSkills(paths, normalizedAgentId, {
102
+ requiredSkillDirectories: options.roleSkillDirectories,
103
+ managedSkillDirectories: options.managedRoleSkillDirectories,
104
+ });
97
105
  createdPaths.push(...workspaceSkillSync.createdPaths);
98
106
  skippedPaths.push(...workspaceSkillSync.skippedPaths);
99
107
  removedPaths.push(...workspaceSkillSync.removedPaths);
100
- if (isDefaultAgentId(normalizedAgentId)) {
108
+ if (isDefaultAgentId(normalizedAgentId) && options.syncBootstrapMarkdown) {
101
109
  await this.writeBootstrapMarkdown(bootstrapPath, createdPaths, skippedPaths);
102
110
  }
103
- else if (await this.fileSystem.exists(bootstrapPath)) {
104
- await this.fileSystem.removeDir(bootstrapPath);
105
- removedPaths.push(bootstrapPath);
111
+ else if (isDefaultAgentId(normalizedAgentId)) {
112
+ skippedPaths.push(bootstrapPath);
106
113
  }
107
114
  else {
108
- skippedPaths.push(bootstrapPath);
115
+ await this.removePathIfExists(bootstrapPath, removedPaths, skippedPaths);
109
116
  }
117
+ await this.removePathIfExists(userPath, removedPaths, skippedPaths);
110
118
  return {
111
119
  createdPaths,
112
120
  skippedPaths,
113
121
  removedPaths,
114
122
  };
115
123
  }
116
- async ensureAgentWorkspaceRoleSkills(paths, agentId) {
124
+ async ensureAgentWorkspaceCommandShim(paths, rawAgentId) {
125
+ const agentId = normalizeAgentId(rawAgentId);
126
+ if (!agentId) {
127
+ throw new Error("Agent id cannot be empty.");
128
+ }
129
+ const workspaceDir = this.pathPort.join(paths.workspacesDir, agentId);
130
+ const createdPaths = [];
131
+ const skippedPaths = [];
132
+ await this.ensureDirectory(workspaceDir, createdPaths, skippedPaths);
133
+ await this.writeOpenGoatWorkspaceShim(workspaceDir, createdPaths, skippedPaths);
134
+ return {
135
+ createdPaths,
136
+ skippedPaths,
137
+ };
138
+ }
139
+ async ensureAgentWorkspaceRoleSkills(paths, agentId, options = {}) {
117
140
  const normalizedAgentId = normalizeAgentId(agentId);
118
141
  if (!normalizedAgentId) {
119
142
  throw new Error("Agent id cannot be empty.");
@@ -128,30 +151,43 @@ export class AgentService {
128
151
  ...LEGACY_INDIVIDUAL_ROLE_SKILLS,
129
152
  ]),
130
153
  ];
154
+ const requiredSkillDirectories = resolveRoleSkillDirectories(options.requiredSkillDirectories);
155
+ const managedSkillDirectories = resolveRoleSkillDirectories([
156
+ ...(options.managedSkillDirectories ?? []),
157
+ ...requiredSkillDirectories,
158
+ ]);
159
+ const requiredSkillDirectorySet = new Set(requiredSkillDirectories);
131
160
  const workspaceDir = this.pathPort.join(paths.workspacesDir, normalizedAgentId);
132
- const skillsDir = this.pathPort.join(workspaceDir, "skills");
133
161
  const createdPaths = [];
134
162
  const skippedPaths = [];
135
163
  const removedPaths = [];
136
164
  await this.ensureDirectory(workspaceDir, createdPaths, skippedPaths);
137
- await this.ensureDirectory(skillsDir, createdPaths, skippedPaths);
138
- for (const skillId of requiredSkillIds) {
139
- const skillDir = this.pathPort.join(skillsDir, skillId);
140
- const skillFile = this.pathPort.join(skillDir, "SKILL.md");
141
- await this.ensureDirectory(skillDir, createdPaths, skippedPaths);
142
- await this.writeMarkdown(skillFile, this.renderWorkspaceSkill(skillId), createdPaths, skippedPaths, { overwrite: true });
143
- }
144
- for (const skillId of managedRoleSkillIds) {
145
- if (requiredSkillIds.includes(skillId)) {
146
- continue;
147
- }
148
- const staleSkillDir = this.pathPort.join(skillsDir, skillId);
149
- if (await this.fileSystem.exists(staleSkillDir)) {
150
- await this.fileSystem.removeDir(staleSkillDir);
151
- removedPaths.push(staleSkillDir);
165
+ for (const relativeSkillsDir of requiredSkillDirectories) {
166
+ const skillsDir = this.pathPort.join(workspaceDir, relativeSkillsDir);
167
+ await this.ensureDirectory(skillsDir, createdPaths, skippedPaths);
168
+ for (const skillId of requiredSkillIds) {
169
+ const skillDir = this.pathPort.join(skillsDir, skillId);
170
+ const skillFile = this.pathPort.join(skillDir, "SKILL.md");
171
+ await this.ensureDirectory(skillDir, createdPaths, skippedPaths);
172
+ await this.writeMarkdown(skillFile, this.renderWorkspaceSkill(skillId, normalizedAgentId), createdPaths, skippedPaths, { overwrite: true });
152
173
  }
153
- else {
154
- skippedPaths.push(staleSkillDir);
174
+ }
175
+ for (const relativeSkillsDir of managedSkillDirectories) {
176
+ const skillsDir = this.pathPort.join(workspaceDir, relativeSkillsDir);
177
+ const shouldKeepRoleSkillsInDirectory = requiredSkillDirectorySet.has(relativeSkillsDir);
178
+ for (const skillId of managedRoleSkillIds) {
179
+ const shouldExist = shouldKeepRoleSkillsInDirectory && requiredSkillIds.includes(skillId);
180
+ if (shouldExist) {
181
+ continue;
182
+ }
183
+ const staleSkillDir = this.pathPort.join(skillsDir, skillId);
184
+ if (await this.fileSystem.exists(staleSkillDir)) {
185
+ await this.fileSystem.removeDir(staleSkillDir);
186
+ removedPaths.push(staleSkillDir);
187
+ }
188
+ else {
189
+ skippedPaths.push(staleSkillDir);
190
+ }
155
191
  }
156
192
  }
157
193
  return {
@@ -309,6 +345,15 @@ export class AgentService {
309
345
  }
310
346
  createdPaths.push(directoryPath);
311
347
  }
348
+ async removePathIfExists(filePath, removedPaths, skippedPaths) {
349
+ const exists = await this.fileSystem.exists(filePath);
350
+ if (!exists) {
351
+ skippedPaths.push(filePath);
352
+ return;
353
+ }
354
+ await this.fileSystem.removeDir(filePath);
355
+ removedPaths.push(filePath);
356
+ }
312
357
  async writeJsonIfMissing(filePath, payload, createdPaths, skippedPaths) {
313
358
  const exists = await this.fileSystem.exists(filePath);
314
359
  if (exists) {
@@ -355,6 +400,10 @@ export class AgentService {
355
400
  async writeBootstrapMarkdown(filePath, createdPaths, skippedPaths) {
356
401
  await this.writeMarkdown(filePath, renderCeoBootstrapMarkdown(), createdPaths, skippedPaths, { overwrite: true });
357
402
  }
403
+ async writeOpenGoatWorkspaceShim(workspaceDir, createdPaths, skippedPaths) {
404
+ const shimPath = this.pathPort.join(workspaceDir, "opengoat");
405
+ await this.writeMarkdown(shimPath, renderOpenGoatWorkspaceShim(), createdPaths, skippedPaths, { overwrite: true });
406
+ }
358
407
  async readJsonIfPresent(filePath) {
359
408
  const exists = await this.fileSystem.exists(filePath);
360
409
  if (!exists) {
@@ -396,12 +445,11 @@ export class AgentService {
396
445
  }
397
446
  return hasDirectReportees ? "manager" : "individual";
398
447
  }
399
- renderWorkspaceSkill(skillId) {
400
- if (skillId === "og-board-manager") {
401
- return renderBoardManagerSkillMarkdown();
402
- }
403
- if (skillId === "og-board-individual") {
404
- return renderBoardIndividualSkillMarkdown();
448
+ renderWorkspaceSkill(skillId, agentId) {
449
+ if (skillId === "og-boards" ||
450
+ skillId === "og-board-manager" ||
451
+ skillId === "og-board-individual") {
452
+ return renderBoardsSkillMarkdown(agentId);
405
453
  }
406
454
  throw new Error(`Unsupported workspace skill id: ${skillId}`);
407
455
  }
@@ -454,10 +502,14 @@ export class AgentService {
454
502
  return false;
455
503
  }
456
504
  }
457
- const MANAGER_ROLE_SKILLS = ["og-board-manager"];
458
- const INDIVIDUAL_ROLE_SKILLS = ["og-board-individual"];
459
- const LEGACY_MANAGER_ROLE_SKILLS = ["board-manager"];
460
- const LEGACY_INDIVIDUAL_ROLE_SKILLS = ["board-individual"];
505
+ const MANAGER_ROLE_SKILLS = ["og-boards"];
506
+ const INDIVIDUAL_ROLE_SKILLS = ["og-boards"];
507
+ const LEGACY_MANAGER_ROLE_SKILLS = ["og-board-manager", "board-manager"];
508
+ const LEGACY_INDIVIDUAL_ROLE_SKILLS = [
509
+ "og-board-individual",
510
+ "board-individual",
511
+ ];
512
+ const DEFAULT_WORKSPACE_SKILL_DIRECTORY = "skills";
461
513
  function toAgentTemplateOptions(agentId, options) {
462
514
  const type = options.type ?? (isDefaultAgentId(agentId) ? "manager" : "individual");
463
515
  const reportsTo = resolveReportsTo(agentId, options.reportsTo);
@@ -506,6 +558,34 @@ function normalizeReportsToValue(value) {
506
558
  function dedupe(values) {
507
559
  return [...new Set(values)].sort((left, right) => left.localeCompare(right));
508
560
  }
561
+ function resolveRoleSkillDirectories(input) {
562
+ const candidates = input && input.length > 0 ? input : [DEFAULT_WORKSPACE_SKILL_DIRECTORY];
563
+ const directories = [];
564
+ for (const candidate of candidates) {
565
+ const normalized = normalizeRoleSkillDirectory(candidate);
566
+ if (!normalized || directories.includes(normalized)) {
567
+ continue;
568
+ }
569
+ directories.push(normalized);
570
+ }
571
+ return directories.length > 0
572
+ ? directories
573
+ : [DEFAULT_WORKSPACE_SKILL_DIRECTORY];
574
+ }
575
+ function normalizeRoleSkillDirectory(rawDirectory) {
576
+ const trimmed = rawDirectory.trim().replace(/\\/g, "/");
577
+ if (!trimmed) {
578
+ return null;
579
+ }
580
+ const parts = trimmed
581
+ .split("/")
582
+ .map((part) => part.trim())
583
+ .filter((part) => part.length > 0 && part !== ".");
584
+ if (parts.length === 0 || parts.includes("..")) {
585
+ return null;
586
+ }
587
+ return parts.join("/");
588
+ }
509
589
  function toJson(payload) {
510
590
  return `${JSON.stringify(payload, null, 2)}\n`;
511
591
  }
@@ -571,8 +651,6 @@ function rewriteSecondLevelSection(markdown, headingPattern, replacementLines) {
571
651
  const EVERY_SESSION_SECTION_LINES = [
572
652
  "## Every Session",
573
653
  "",
574
- "You are part of an organization run by AI agents.",
575
- "",
576
654
  "Before doing anything else:",
577
655
  "",
578
656
  "1. Read `SOUL.md` — this is who you are",
@@ -580,11 +658,17 @@ const EVERY_SESSION_SECTION_LINES = [
580
658
  "3. Read `memory/YYYY-MM-DD.md` (today + yesterday) for recent context",
581
659
  "4. **If in MAIN SESSION**: Also read `MEMORY.md`",
582
660
  "",
661
+ "Use OpenGoat tools directly (`opengoat_*`). Do not rely on shell CLI commands.",
662
+ "",
583
663
  "Don't ask permission. Just do it.",
584
664
  "",
585
665
  "## The Organization",
586
666
  "",
587
- "You are part of an organization run by AI agents. You have access to the organization's context and wiki on `../../organization`",
667
+ "You are part of an organization run by AI agents. You have access to the organization's context and wiki on `~/.opengoat/organization`",
668
+ "",
669
+ "## Repositories",
670
+ "",
671
+ "If you need to use a repo, clone it or copy it into your own workspace.",
588
672
  "",
589
673
  ];
590
674
  function renderRoleMarkdown(profile) {
@@ -599,14 +683,55 @@ function renderRoleMarkdown(profile) {
599
683
  `- Your id: ${profile.agentId} (agent id)`,
600
684
  `- Your name: ${profile.displayName}`,
601
685
  `- Role: ${profile.role}`,
602
- `- For info about your level on the organiztion, run \`opengoat agent info ${profile.agentId}\`.`,
686
+ `- For info about your level on the organization, call tool \`opengoat_agent_info\` with \`{"agentId":"${profile.agentId}"}\`.`,
687
+ "- Use OpenGoat tools directly (`opengoat_*`), not shell CLI commands.",
603
688
  "- To delegate and coordinate work, use `og-*` skills.",
604
- "- Organization context is available in `../../organization` - read them",
605
- "- You can view and edit the wiki in `../../organization/wiki`",
689
+ "- Organization context is available in `~/.opengoat/organization` - read them",
690
+ "- You can view and edit the wiki in `~/.opengoat/organization/wiki`",
691
+ "- If you need to use a repo, clone it or copy it into your own workspace.",
606
692
  "",
607
693
  "---",
608
694
  "",
609
695
  "_This file is yours to evolve. Update it as you learn your role and responsibilities in the organization._",
610
696
  ].join("\n");
611
697
  }
698
+ function renderOpenGoatWorkspaceShim() {
699
+ const cliEntrypoint = resolveOpenGoatCliEntrypoint();
700
+ if (!cliEntrypoint) {
701
+ return ["#!/usr/bin/env sh", "set -eu", "", 'exec opengoat "$@"'].join("\n");
702
+ }
703
+ return [
704
+ "#!/usr/bin/env sh",
705
+ "set -eu",
706
+ "",
707
+ `exec ${quoteForShell(process.execPath)} ${quoteForShell(cliEntrypoint)} "$@"`,
708
+ ].join("\n");
709
+ }
710
+ function resolveOpenGoatCliEntrypoint() {
711
+ const explicit = process.env.OPENGOAT_CLI_ENTRYPOINT?.trim();
712
+ if (explicit) {
713
+ return normalizeEntrypointPath(explicit);
714
+ }
715
+ const argvEntrypoint = process.argv[1]?.trim();
716
+ if (!argvEntrypoint) {
717
+ return undefined;
718
+ }
719
+ const normalizedBasename = basename(argvEntrypoint).toLowerCase();
720
+ if (!isLikelyOpenGoatEntrypointName(normalizedBasename)) {
721
+ return undefined;
722
+ }
723
+ return normalizeEntrypointPath(argvEntrypoint);
724
+ }
725
+ function normalizeEntrypointPath(value) {
726
+ if (isAbsolute(value)) {
727
+ return value;
728
+ }
729
+ return resolvePath(process.cwd(), value);
730
+ }
731
+ function isLikelyOpenGoatEntrypointName(value) {
732
+ return (value === "opengoat" || value === "opengoat.js" || value === "opengoat.mjs");
733
+ }
734
+ function quoteForShell(value) {
735
+ return `'${value.replace(/'/g, `'\"'\"'`)}'`;
736
+ }
612
737
  //# 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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"}
@@ -40,6 +40,7 @@ export declare class BoardService {
40
40
  deletedCount: number;
41
41
  }>;
42
42
  updateTaskStatus(paths: OpenGoatPaths, actorId: string, taskId: string, status: string, reason?: string): Promise<TaskRecord>;
43
+ listPendingTaskIdsOlderThan(paths: OpenGoatPaths, olderThanMinutes: number): Promise<string[]>;
43
44
  addTaskBlocker(paths: OpenGoatPaths, actorId: string, taskId: string, blocker: string): Promise<TaskRecord>;
44
45
  addTaskArtifact(paths: OpenGoatPaths, actorId: string, taskId: string, content: string): Promise<TaskRecord>;
45
46
  addTaskWorklog(paths: OpenGoatPaths, actorId: string, taskId: string, content: string): Promise<TaskRecord>;
@@ -59,6 +60,7 @@ export declare class BoardService {
59
60
  private queryOne;
60
61
  private ensureTaskProjectColumn;
61
62
  private ensureTaskStatusReasonColumn;
63
+ private ensureTaskStatusUpdatedAtColumn;
62
64
  private ensureBoardDefaultColumn;
63
65
  }
64
66
  export {};
@@ -57,6 +57,7 @@ export class BoardService {
57
57
  task_id,
58
58
  board_id,
59
59
  created_at,
60
+ status_updated_at,
60
61
  project,
61
62
  owner_agent_id,
62
63
  assigned_to_agent_id,
@@ -64,10 +65,11 @@ export class BoardService {
64
65
  description,
65
66
  status,
66
67
  status_reason
67
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
68
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
68
69
  taskId,
69
70
  INTERNAL_TASK_BUCKET_ID,
70
71
  createdAt,
72
+ createdAt,
71
73
  project,
72
74
  normalizedActorId,
73
75
  assignedTo,
@@ -185,10 +187,27 @@ export class BoardService {
185
187
  this.assertTaskUpdatePermission(task, normalizedActorId, manifests);
186
188
  const nextStatus = normalizeTaskStatus(status, true);
187
189
  const nextStatusReason = normalizeTaskStatusReason(nextStatus, reason);
188
- this.execute(db, `UPDATE tasks SET status = ?, status_reason = ? WHERE task_id = ?`, [nextStatus, nextStatusReason, resolvedTaskId]);
190
+ this.execute(db, `UPDATE tasks
191
+ SET status = ?, status_reason = ?, status_updated_at = ?
192
+ WHERE task_id = ?`, [nextStatus, nextStatusReason, this.nowIso(), resolvedTaskId]);
189
193
  await this.persistDatabase(paths, db);
190
194
  return this.requireTask(db, resolvedTaskId);
191
195
  }
196
+ async listPendingTaskIdsOlderThan(paths, olderThanMinutes) {
197
+ if (!Number.isFinite(olderThanMinutes) || olderThanMinutes <= 0) {
198
+ return [];
199
+ }
200
+ const db = await this.getDatabase(paths);
201
+ const nowMs = Date.parse(this.nowIso());
202
+ const referenceNowMs = Number.isFinite(nowMs) ? nowMs : Date.now();
203
+ const cutoffIso = new Date(referenceNowMs - Math.floor(olderThanMinutes) * 60_000).toISOString();
204
+ const rows = this.queryAll(db, `SELECT task_id
205
+ FROM tasks
206
+ WHERE status = 'pending'
207
+ AND COALESCE(status_updated_at, created_at) <= ?
208
+ ORDER BY COALESCE(status_updated_at, created_at) ASC, task_id ASC`, [cutoffIso]);
209
+ return rows.map((row) => row.task_id);
210
+ }
192
211
  async addTaskBlocker(paths, actorId, taskId, blocker) {
193
212
  const db = await this.getDatabase(paths);
194
213
  const normalizedActorId = normalizeAgentId(actorId) || DEFAULT_AGENT_ID;
@@ -347,6 +366,7 @@ export class BoardService {
347
366
  task_id TEXT PRIMARY KEY,
348
367
  board_id TEXT NOT NULL,
349
368
  created_at TEXT NOT NULL,
369
+ status_updated_at TEXT,
350
370
  project TEXT NOT NULL DEFAULT '${DEFAULT_TASK_PROJECT}',
351
371
  owner_agent_id TEXT NOT NULL,
352
372
  assigned_to_agent_id TEXT NOT NULL,
@@ -358,6 +378,7 @@ export class BoardService {
358
378
  );`);
359
379
  this.ensureTaskProjectColumn(db);
360
380
  this.ensureTaskStatusReasonColumn(db);
381
+ this.ensureTaskStatusUpdatedAtColumn(db);
361
382
  this.execute(db, `CREATE TABLE IF NOT EXISTS task_blockers (
362
383
  id INTEGER PRIMARY KEY AUTOINCREMENT,
363
384
  task_id TEXT NOT NULL,
@@ -385,6 +406,8 @@ export class BoardService {
385
406
  this.execute(db, "CREATE INDEX IF NOT EXISTS idx_tasks_board_id ON tasks(board_id);");
386
407
  this.execute(db, "CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);");
387
408
  this.execute(db, "CREATE INDEX IF NOT EXISTS idx_tasks_created_at ON tasks(created_at, task_id);");
409
+ this.execute(db, "CREATE INDEX IF NOT EXISTS idx_tasks_status_updated_at ON tasks(status_updated_at, task_id);");
410
+ this.execute(db, "CREATE INDEX IF NOT EXISTS idx_tasks_status_status_updated_at ON tasks(status, status_updated_at, task_id);");
388
411
  this.execute(db, "CREATE INDEX IF NOT EXISTS idx_tasks_assignee_created_at ON tasks(assigned_to_agent_id, created_at, task_id);");
389
412
  this.execute(db, "CREATE INDEX IF NOT EXISTS idx_task_blockers_task_id ON task_blockers(task_id);");
390
413
  this.execute(db, "CREATE INDEX IF NOT EXISTS idx_task_artifacts_task_id ON task_artifacts(task_id);");
@@ -481,6 +504,17 @@ export class BoardService {
481
504
  }
482
505
  this.execute(db, "ALTER TABLE tasks ADD COLUMN status_reason TEXT;");
483
506
  }
507
+ ensureTaskStatusUpdatedAtColumn(db) {
508
+ const columns = this.queryAll(db, "PRAGMA table_info(tasks);");
509
+ const hasStatusUpdatedAt = columns.some((column) => column.name === "status_updated_at");
510
+ if (!hasStatusUpdatedAt) {
511
+ this.execute(db, "ALTER TABLE tasks ADD COLUMN status_updated_at TEXT;");
512
+ }
513
+ this.execute(db, `UPDATE tasks
514
+ SET status_updated_at = created_at
515
+ WHERE status_updated_at IS NULL
516
+ OR TRIM(status_updated_at) = '';`);
517
+ }
484
518
  ensureBoardDefaultColumn(db) {
485
519
  const columns = this.queryAll(db, "PRAGMA table_info(boards);");
486
520
  const hasDefaultColumn = columns.some((column) => column.name === "is_default");