From cb715a240c3aab486948db4c9ecba2e6fe6c6f0d Mon Sep 17 00:00:00 2001 From: Aleksandr Date: Sat, 14 Feb 2026 11:12:04 +0500 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20docs:=20document=20task-id=20alphab?= =?UTF-8?q?et=20and=20shared=20utility=20contracts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/agentplane/src/shared/agent-emoji.ts | 4 ++++ packages/agentplane/src/shared/guards.ts | 3 +++ packages/core/src/tasks/task-id.ts | 1 + 3 files changed, 8 insertions(+) diff --git a/packages/agentplane/src/shared/agent-emoji.ts b/packages/agentplane/src/shared/agent-emoji.ts index 94d37fd5..5f759c07 100644 --- a/packages/agentplane/src/shared/agent-emoji.ts +++ b/packages/agentplane/src/shared/agent-emoji.ts @@ -33,6 +33,10 @@ function fallbackEmojiForAgentId(agentId: string): string { return FALLBACK_EMOJIS[idx] ?? "🧩"; } +/** + * Resolve commit emoji for an agent. + * Priority: explicit `commit_emoji` in agent JSON -> well-known map/hash fallback. + */ export async function resolveCommitEmojiForAgent(opts: { agentsDirAbs: string; agentId: string; diff --git a/packages/agentplane/src/shared/guards.ts b/packages/agentplane/src/shared/guards.ts index 60a91e26..94ccfd23 100644 --- a/packages/agentplane/src/shared/guards.ts +++ b/packages/agentplane/src/shared/guards.ts @@ -1,3 +1,6 @@ +/** + * Type guard for plain object-like values (`Record`). + */ export function isRecord(value: unknown): value is Record { return Boolean(value) && typeof value === "object" && !Array.isArray(value); } diff --git a/packages/core/src/tasks/task-id.ts b/packages/core/src/tasks/task-id.ts index cbec8902..0f3fab97 100644 --- a/packages/core/src/tasks/task-id.ts +++ b/packages/core/src/tasks/task-id.ts @@ -1,5 +1,6 @@ import { randomInt } from "node:crypto"; +// Crockford's base32 alphabet: omits I, L, O (confusable with 1/0) and U (accidental obscenity). export const TASK_ID_ALPHABET = "0123456789ABCDEFGHJKMNPQRSTVWXYZ"; export function timestampIdPrefix(date: Date): string {