@opengoat/core 2026.2.14-2 → 2026.2.14-3

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.
@@ -1,5 +1,3 @@
1
- import { homedir } from "node:os";
2
- import path from "node:path";
3
1
  import { AgentManifestService } from "../../agents/application/agent-manifest.service.js";
4
2
  import { AgentService } from "../../agents/application/agent.service.js";
5
3
  import { BoardService, } from "../../boards/index.js";
@@ -11,6 +9,7 @@ import { ProviderService } from "../../providers/application/provider.service.js
11
9
  import { ProviderCommandNotFoundError, createDefaultProviderRegistry, } from "../../providers/index.js";
12
10
  import { SessionService, } from "../../sessions/index.js";
13
11
  import { SkillService, } from "../../skills/index.js";
12
+ import { assertAgentExists, buildBlockedTaskMessage, buildInactiveAgentMessage, buildInactiveSessionRef, buildReporteeStats, buildTaskSessionRef, buildTodoTaskMessage, collectAllReportees, containsAgentNotFoundMessage, containsAlreadyExistsMessage, extractManagedSkillsDir, extractOpenClawAgentEntry, extractOpenClawAgents, isSpawnPermissionOrMissing, pathIsWithin, pathMatches, prepareOpenClawCommandEnv, resolveInactiveAgentNotificationTarget, resolveInactiveMinutes, toErrorMessage, } from "./opengoat.service.helpers.js";
14
13
  const OPENCLAW_PROVIDER_ID = "openclaw";
15
14
  const OPENCLAW_DEFAULT_AGENT_ID = "main";
16
15
  export class OpenGoatService {
@@ -390,12 +389,13 @@ export class OpenGoatService {
390
389
  this.agentService.listAgents(paths),
391
390
  this.agentManifestService.listManifests(paths),
392
391
  ]);
392
+ const reporteeStats = buildReporteeStats(manifests);
393
393
  const descriptorsById = new Map(agents.map((agent) => [agent.id, agent]));
394
394
  const agent = descriptorsById.get(agentId);
395
395
  if (!agent) {
396
396
  throw new Error(`Agent "${agentId}" does not exist.`);
397
397
  }
398
- const totalReportees = collectAllReportees(manifests, agentId).length;
398
+ const totalReportees = reporteeStats.totalByManager.get(agentId) ?? 0;
399
399
  const directReportees = manifests
400
400
  .filter((manifest) => manifest.metadata.reportsTo === agentId)
401
401
  .map((manifest) => {
@@ -408,8 +408,7 @@ export class OpenGoatService {
408
408
  id: manifest.agentId,
409
409
  name,
410
410
  role,
411
- totalReportees: collectAllReportees(manifests, manifest.agentId)
412
- .length,
411
+ totalReportees: reporteeStats.totalByManager.get(manifest.agentId) ?? 0,
413
412
  };
414
413
  })
415
414
  .sort((left, right) => left.id.localeCompare(right.id));
@@ -507,7 +506,6 @@ export class OpenGoatService {
507
506
  const paths = this.pathsProvider.getPaths();
508
507
  const ranAt = this.resolveNowIso();
509
508
  const manifests = await this.agentManifestService.listManifests(paths);
510
- const manifestsById = new Map(manifests.map((manifest) => [manifest.agentId, manifest]));
511
509
  const inactiveMinutes = resolveInactiveMinutes(options.inactiveMinutes);
512
510
  const notificationTarget = resolveInactiveAgentNotificationTarget(options.notificationTarget);
513
511
  const notifyInactiveAgents = options.notifyInactiveAgents ?? true;
@@ -518,8 +516,27 @@ export class OpenGoatService {
518
516
  ? await this.resolveLatestProjectPathForAgent(paths, DEFAULT_AGENT_ID)
519
517
  : undefined;
520
518
  const tasks = await this.boardService.listTasks(paths, { limit: 10_000 });
519
+ const taskStatusDispatch = await this.dispatchTaskStatusAutomations(paths, tasks, manifests);
520
+ const inactiveDispatches = await this.dispatchInactiveAgentAutomations(paths, inactiveCandidates, inactiveMinutes, latestCeoProjectPath);
521
+ const dispatches = [
522
+ ...taskStatusDispatch.dispatches,
523
+ ...inactiveDispatches,
524
+ ];
525
+ const failed = dispatches.filter((entry) => !entry.ok).length;
526
+ return {
527
+ ranAt,
528
+ scannedTasks: tasks.length,
529
+ todoTasks: taskStatusDispatch.todoTasks,
530
+ blockedTasks: taskStatusDispatch.blockedTasks,
531
+ inactiveAgents: inactiveCandidates.length,
532
+ sent: dispatches.length - failed,
533
+ failed,
534
+ dispatches,
535
+ };
536
+ }
537
+ async dispatchTaskStatusAutomations(paths, tasks, manifests) {
538
+ const manifestsById = new Map(manifests.map((manifest) => [manifest.agentId, manifest]));
521
539
  const dispatches = [];
522
- let scannedTasks = tasks.length;
523
540
  let todoTasks = 0;
524
541
  let blockedTasks = 0;
525
542
  for (const task of tasks) {
@@ -558,6 +575,14 @@ export class OpenGoatService {
558
575
  error: result.error,
559
576
  });
560
577
  }
578
+ return {
579
+ dispatches,
580
+ todoTasks,
581
+ blockedTasks,
582
+ };
583
+ }
584
+ async dispatchInactiveAgentAutomations(paths, inactiveCandidates, inactiveMinutes, latestCeoProjectPath) {
585
+ const dispatches = [];
561
586
  for (const candidate of inactiveCandidates) {
562
587
  const sessionRef = buildInactiveSessionRef(candidate.managerAgentId, candidate.subjectAgentId);
563
588
  const message = buildInactiveAgentMessage({
@@ -565,6 +590,8 @@ export class OpenGoatService {
565
590
  subjectAgentId: candidate.subjectAgentId,
566
591
  subjectName: candidate.subjectName,
567
592
  role: candidate.role,
593
+ directReporteesCount: candidate.directReporteesCount,
594
+ indirectReporteesCount: candidate.indirectReporteesCount,
568
595
  inactiveMinutes,
569
596
  lastActionTimestamp: candidate.lastActionTimestamp,
570
597
  });
@@ -580,17 +607,7 @@ export class OpenGoatService {
580
607
  error: result.error,
581
608
  });
582
609
  }
583
- const failed = dispatches.filter((entry) => !entry.ok).length;
584
- return {
585
- ranAt,
586
- scannedTasks,
587
- todoTasks,
588
- blockedTasks,
589
- inactiveAgents: inactiveCandidates.length,
590
- sent: dispatches.length - failed,
591
- failed,
592
- dispatches,
593
- };
610
+ return dispatches;
594
611
  }
595
612
  async listSkills(agentId = DEFAULT_AGENT_ID) {
596
613
  const paths = this.pathsProvider.getPaths();
@@ -912,6 +929,7 @@ export class OpenGoatService {
912
929
  async collectInactiveAgents(paths, manifests, inactiveMinutes, notificationTarget) {
913
930
  const nowMs = this.resolveNowMs();
914
931
  const inactiveCutoffMs = nowMs - inactiveMinutes * 60_000;
932
+ const reporteeStats = buildReporteeStats(manifests);
915
933
  const inactive = [];
916
934
  for (const manifest of manifests) {
917
935
  const managerAgentId = normalizeAgentId(manifest.metadata.reportsTo ?? "");
@@ -926,11 +944,16 @@ export class OpenGoatService {
926
944
  if (lastAction && lastAction.timestamp >= inactiveCutoffMs) {
927
945
  continue;
928
946
  }
947
+ const directReporteesCount = reporteeStats.directByManager.get(manifest.agentId) ?? 0;
948
+ const totalReporteesCount = reporteeStats.totalByManager.get(manifest.agentId) ?? 0;
949
+ const indirectReporteesCount = Math.max(0, totalReporteesCount - directReporteesCount);
929
950
  inactive.push({
930
951
  managerAgentId,
931
952
  subjectAgentId: manifest.agentId,
932
953
  subjectName: manifest.metadata.name,
933
954
  role: manifest.metadata.description,
955
+ directReporteesCount,
956
+ indirectReporteesCount,
934
957
  lastActionTimestamp: lastAction?.timestamp,
935
958
  });
936
959
  }
@@ -946,275 +969,4 @@ export class OpenGoatService {
946
969
  return latestProjectPath || undefined;
947
970
  }
948
971
  }
949
- function containsAlreadyExistsMessage(stdout, stderr) {
950
- const text = `${stdout}\n${stderr}`.toLowerCase();
951
- return /\balready exists?\b/.test(text);
952
- }
953
- function containsAgentNotFoundMessage(stdout, stderr) {
954
- const text = `${stdout}\n${stderr}`.toLowerCase();
955
- return /\b(not found|does not exist|no such agent|unknown agent|could not find|no agent found|not exist)\b/.test(text);
956
- }
957
- function toErrorMessage(error) {
958
- if (error instanceof Error) {
959
- return error.message;
960
- }
961
- return String(error);
962
- }
963
- function resolveInactiveMinutes(value) {
964
- if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
965
- return 30;
966
- }
967
- return Math.floor(value);
968
- }
969
- function resolveInactiveAgentNotificationTarget(value) {
970
- return value === "ceo-only" ? "ceo-only" : "all-managers";
971
- }
972
- function extractManagedSkillsDir(payload) {
973
- if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
974
- return null;
975
- }
976
- const record = payload;
977
- if (typeof record.managedSkillsDir !== "string") {
978
- return null;
979
- }
980
- const managedSkillsDir = record.managedSkillsDir.trim();
981
- return managedSkillsDir || null;
982
- }
983
- function extractOpenClawAgents(payload) {
984
- if (!Array.isArray(payload)) {
985
- return [];
986
- }
987
- const entries = [];
988
- for (const entry of payload) {
989
- if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
990
- continue;
991
- }
992
- const record = entry;
993
- const id = normalizeAgentId(String(record.id ?? ""));
994
- if (!id) {
995
- continue;
996
- }
997
- entries.push({
998
- id,
999
- workspace: typeof record.workspace === "string" ? record.workspace : "",
1000
- agentDir: typeof record.agentDir === "string" ? record.agentDir : "",
1001
- });
1002
- }
1003
- return entries;
1004
- }
1005
- function extractOpenClawAgentEntry(payload, agentId) {
1006
- const normalizedAgentId = normalizeAgentId(agentId);
1007
- if (!normalizedAgentId) {
1008
- return null;
1009
- }
1010
- for (const entry of extractOpenClawAgents(payload)) {
1011
- if (entry.id !== normalizedAgentId) {
1012
- continue;
1013
- }
1014
- return {
1015
- workspace: entry.workspace,
1016
- agentDir: entry.agentDir,
1017
- };
1018
- }
1019
- return null;
1020
- }
1021
- function pathMatches(left, right) {
1022
- const leftNormalized = normalizePathForCompare(left);
1023
- const rightNormalized = normalizePathForCompare(right);
1024
- if (!leftNormalized || !rightNormalized) {
1025
- return false;
1026
- }
1027
- return leftNormalized === rightNormalized;
1028
- }
1029
- function pathIsWithin(containerPath, candidatePath) {
1030
- const normalizedContainer = normalizePathForCompare(containerPath);
1031
- const normalizedCandidate = normalizePathForCompare(candidatePath);
1032
- if (!normalizedContainer || !normalizedCandidate) {
1033
- return false;
1034
- }
1035
- const relative = path.relative(normalizedContainer, normalizedCandidate);
1036
- if (!relative) {
1037
- return true;
1038
- }
1039
- return !relative.startsWith("..") && !path.isAbsolute(relative);
1040
- }
1041
- function normalizePathForCompare(value) {
1042
- const trimmed = value.trim();
1043
- if (!trimmed) {
1044
- return "";
1045
- }
1046
- const resolved = path.resolve(trimmed);
1047
- if (process.platform === "win32") {
1048
- return resolved.toLowerCase();
1049
- }
1050
- return resolved;
1051
- }
1052
- function buildTaskSessionRef(agentId, taskId) {
1053
- const normalizedAgentId = normalizeAgentId(agentId) || DEFAULT_AGENT_ID;
1054
- const normalizedTaskId = normalizeAgentId(taskId) || "task";
1055
- return `agent:${normalizedAgentId}:agent_${normalizedAgentId}_task_${normalizedTaskId}`;
1056
- }
1057
- function buildInactiveSessionRef(managerAgentId, subjectAgentId) {
1058
- const manager = normalizeAgentId(managerAgentId) || DEFAULT_AGENT_ID;
1059
- const subject = normalizeAgentId(subjectAgentId) || "agent";
1060
- return `agent:${manager}:agent_${manager}_inactive_${subject}`;
1061
- }
1062
- function buildTodoTaskMessage(params) {
1063
- const blockers = params.task.blockers.length > 0 ? params.task.blockers.join("; ") : "None";
1064
- const artifacts = params.task.artifacts.length > 0
1065
- ? params.task.artifacts
1066
- .map((entry) => `- ${entry.createdAt} @${entry.createdBy}: ${entry.content}`)
1067
- .join("\n")
1068
- : "- None";
1069
- const worklog = params.task.worklog.length > 0
1070
- ? params.task.worklog
1071
- .map((entry) => `- ${entry.createdAt} @${entry.createdBy}: ${entry.content}`)
1072
- .join("\n")
1073
- : "- None";
1074
- return [
1075
- `Task #${params.task.taskId} is assigned to you and currently in TODO. Please work on it now.`,
1076
- "",
1077
- `Task ID: ${params.task.taskId}`,
1078
- `Title: ${params.task.title}`,
1079
- `Description: ${params.task.description}`,
1080
- `Project: ${params.task.project}`,
1081
- `Status: ${params.task.status}`,
1082
- `Owner: @${params.task.owner}`,
1083
- `Assigned to: @${params.task.assignedTo}`,
1084
- `Created at: ${params.task.createdAt}`,
1085
- `Blockers: ${blockers}`,
1086
- "Artifacts:",
1087
- artifacts,
1088
- "Worklog:",
1089
- worklog,
1090
- ].join("\n");
1091
- }
1092
- function buildBlockedTaskMessage(params) {
1093
- const blockerReason = params.task.blockers.length > 0
1094
- ? params.task.blockers.join("; ")
1095
- : params.task.statusReason?.trim() || "no blocker details were provided";
1096
- const artifacts = params.task.artifacts.length > 0
1097
- ? params.task.artifacts
1098
- .map((entry) => `- ${entry.createdAt} @${entry.createdBy}: ${entry.content}`)
1099
- .join("\n")
1100
- : "- None";
1101
- const worklog = params.task.worklog.length > 0
1102
- ? params.task.worklog
1103
- .map((entry) => `- ${entry.createdAt} @${entry.createdBy}: ${entry.content}`)
1104
- .join("\n")
1105
- : "- None";
1106
- return [
1107
- `Task #${params.task.taskId}, assigned to your reportee "@${params.task.assignedTo}" is blocked because of ${blockerReason}. Help unblocking it.`,
1108
- "",
1109
- `Task ID: ${params.task.taskId}`,
1110
- `Title: ${params.task.title}`,
1111
- `Description: ${params.task.description}`,
1112
- `Project: ${params.task.project}`,
1113
- `Status: ${params.task.status}`,
1114
- `Owner: @${params.task.owner}`,
1115
- `Assigned to: @${params.task.assignedTo}`,
1116
- `Created at: ${params.task.createdAt}`,
1117
- "Artifacts:",
1118
- artifacts,
1119
- "Worklog:",
1120
- worklog,
1121
- ].join("\n");
1122
- }
1123
- function buildInactiveAgentMessage(params) {
1124
- const lastAction = typeof params.lastActionTimestamp === "number" &&
1125
- Number.isFinite(params.lastActionTimestamp)
1126
- ? new Date(params.lastActionTimestamp).toISOString()
1127
- : null;
1128
- return [
1129
- `Your reportee "@${params.subjectAgentId}" (${params.subjectName}) has no activity in the last ${params.inactiveMinutes} minutes.`,
1130
- ...(params.role ? [`Role: ${params.role}`] : []),
1131
- ...(lastAction ? [`Last action: ${lastAction}`] : []),
1132
- "Please check in and unblock progress.",
1133
- ].join("\n");
1134
- }
1135
- function assertAgentExists(manifests, agentId) {
1136
- if (manifests.some((manifest) => manifest.agentId === agentId)) {
1137
- return;
1138
- }
1139
- throw new Error(`Agent "${agentId}" does not exist.`);
1140
- }
1141
- function collectAllReportees(manifests, managerAgentId) {
1142
- const byManager = new Map();
1143
- for (const manifest of manifests) {
1144
- const reportsTo = manifest.metadata.reportsTo;
1145
- if (!reportsTo) {
1146
- continue;
1147
- }
1148
- const reportees = byManager.get(reportsTo) ?? [];
1149
- reportees.push(manifest.agentId);
1150
- byManager.set(reportsTo, reportees);
1151
- }
1152
- const visited = new Set();
1153
- const queue = [...(byManager.get(managerAgentId) ?? [])];
1154
- while (queue.length > 0) {
1155
- const current = queue.shift();
1156
- if (!current || current === managerAgentId || visited.has(current)) {
1157
- continue;
1158
- }
1159
- visited.add(current);
1160
- queue.push(...(byManager.get(current) ?? []));
1161
- }
1162
- return [...visited].sort((left, right) => left.localeCompare(right));
1163
- }
1164
- function prepareOpenClawCommandEnv(env) {
1165
- const mergedPath = dedupePathEntries([
1166
- ...resolvePreferredOpenClawCommandPaths(env),
1167
- ...(env.PATH?.split(path.delimiter) ?? []),
1168
- ]);
1169
- return {
1170
- ...env,
1171
- PATH: mergedPath.join(path.delimiter),
1172
- };
1173
- }
1174
- function resolvePreferredOpenClawCommandPaths(env) {
1175
- const homeDir = homedir();
1176
- const preferredPaths = [
1177
- path.dirname(process.execPath),
1178
- path.join(homeDir, ".npm-global", "bin"),
1179
- path.join(homeDir, ".npm", "bin"),
1180
- path.join(homeDir, ".local", "bin"),
1181
- path.join(homeDir, ".volta", "bin"),
1182
- path.join(homeDir, ".fnm", "current", "bin"),
1183
- path.join(homeDir, ".asdf", "shims"),
1184
- path.join(homeDir, "bin"),
1185
- ];
1186
- const npmPrefixCandidates = dedupePathEntries([
1187
- env.npm_config_prefix ?? "",
1188
- env.NPM_CONFIG_PREFIX ?? "",
1189
- process.env.npm_config_prefix ?? "",
1190
- process.env.NPM_CONFIG_PREFIX ?? "",
1191
- ]);
1192
- for (const prefix of npmPrefixCandidates) {
1193
- preferredPaths.push(path.join(prefix, "bin"));
1194
- }
1195
- if (process.platform === "darwin") {
1196
- preferredPaths.push("/opt/homebrew/bin", "/opt/homebrew/opt/node@22/bin", "/usr/local/opt/node@22/bin");
1197
- }
1198
- return preferredPaths;
1199
- }
1200
- function dedupePathEntries(entries) {
1201
- const seen = new Set();
1202
- const deduped = [];
1203
- for (const rawEntry of entries) {
1204
- const entry = rawEntry.trim();
1205
- if (!entry || seen.has(entry)) {
1206
- continue;
1207
- }
1208
- seen.add(entry);
1209
- deduped.push(entry);
1210
- }
1211
- return deduped;
1212
- }
1213
- function isSpawnPermissionOrMissing(error) {
1214
- return (typeof error === "object" &&
1215
- error !== null &&
1216
- "code" in error &&
1217
- ((error.code ?? "") === "ENOENT" ||
1218
- (error.code ?? "") === "EACCES"));
1219
- }
1220
972
  //# sourceMappingURL=opengoat.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opengoat.service.js","sourceRoot":"","sources":["../../../../src/core/opengoat/application/opengoat.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opengoat.service.js","sourceRoot":"","sources":["../../../../src/core/opengoat/application/opengoat.service.ts"],"names":[],"mappings":"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"}
@@ -26,9 +26,9 @@ Then figure out together:
26
26
 
27
27
  Write them down:
28
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
29
+ - Update `../../organization/MISSION.md` with the "what / who / problem"
30
+ - Update `../../organization/VISION.md` with the vision
31
+ - Update `../../organization/STRATEGY.md` only if the answers clearly imply changes to "where we play / how we win"
32
32
 
33
33
  Then propose the next 1 to 3 concrete tasks and start.
34
34
 
@@ -130,9 +130,7 @@ function readMarkdownTemplate(relativePath) {
130
130
  function discoverOrganizationMarkdownTemplates() {
131
131
  let fileNames;
132
132
  try {
133
- fileNames = readdirSync(new URL("./assets/organization/", import.meta.url))
134
- .filter((name) => isMarkdownFile(name))
135
- .sort((left, right) => left.localeCompare(right));
133
+ fileNames = listOrganizationMarkdownFileNames(new URL("./assets/organization/", import.meta.url));
136
134
  }
137
135
  catch (error) {
138
136
  if (isNotFoundError(error)) {
@@ -148,6 +146,20 @@ function discoverOrganizationMarkdownTemplates() {
148
146
  function isMarkdownFile(fileName) {
149
147
  return fileName.toLowerCase().endsWith(".md");
150
148
  }
149
+ function listOrganizationMarkdownFileNames(directory, relativePrefix = "") {
150
+ const entries = readdirSync(directory, { withFileTypes: true }).sort((left, right) => left.name.localeCompare(right.name));
151
+ const fileNames = [];
152
+ for (const entry of entries) {
153
+ if (entry.isDirectory()) {
154
+ fileNames.push(...listOrganizationMarkdownFileNames(new URL(`${entry.name}/`, directory), `${relativePrefix}${entry.name}/`));
155
+ continue;
156
+ }
157
+ if (entry.isFile() && isMarkdownFile(entry.name)) {
158
+ fileNames.push(`${relativePrefix}${entry.name}`);
159
+ }
160
+ }
161
+ return fileNames;
162
+ }
151
163
  function isNotFoundError(error) {
152
164
  if (!error || typeof error !== "object") {
153
165
  return false;