@compilr-dev/sdk 0.9.26 → 0.9.27

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.
@@ -60,6 +60,19 @@ export interface RoleMetadata {
60
60
  /** Default model tier for this role */
61
61
  defaultModelTier?: ModelTier;
62
62
  }
63
+ /**
64
+ * User-facing copy for the agent picker (Agent Workshop in Desktop, /agent
65
+ * in CLI). Stored as a separate map from RoleMetadata so we can iterate on
66
+ * the copy without touching the long defaultSystemPromptAddition blocks.
67
+ */
68
+ export interface RoleCopy {
69
+ /** One-sentence value prop, punchier than `description`. */
70
+ tagline: string;
71
+ /** "Best when…" trigger phrase a user can self-recognize. */
72
+ bestFor: string;
73
+ /** Other role IDs this one complements — rendered as a "pairs with" row. */
74
+ pairsWith: AgentRole[];
75
+ }
63
76
  /**
64
77
  * Role expertise keywords for team awareness
65
78
  * Used in the team roster to help agents understand each other's strengths
@@ -214,3 +227,10 @@ export interface TeamEvent {
214
227
  * Team event handler
215
228
  */
216
229
  export type TeamEventHandler = (event: TeamEvent) => void;
230
+ /**
231
+ * User-facing copy for each predefined role, surfaced in the Agent Workshop
232
+ * picker and the CLI /agent flow. Maintained as a separate map from
233
+ * ROLE_METADATA (which carries long system-prompt blocks) so the copy can
234
+ * be iterated without touching agent behavior.
235
+ */
236
+ export declare const ROLE_COPY: Partial<Record<AgentRole, RoleCopy>>;
@@ -909,3 +909,81 @@ You are the **Instructor** in this multi-agent team. You specialize in education
909
909
  defaultModelTier: 'balanced',
910
910
  },
911
911
  };
912
+ /**
913
+ * User-facing copy for each predefined role, surfaced in the Agent Workshop
914
+ * picker and the CLI /agent flow. Maintained as a separate map from
915
+ * ROLE_METADATA (which carries long system-prompt blocks) so the copy can
916
+ * be iterated without touching agent behavior.
917
+ */
918
+ export const ROLE_COPY = {
919
+ pm: {
920
+ tagline: 'Plans the work — requirements, backlog, priorities, dependencies.',
921
+ bestFor: 'you need scope clarified, priorities ordered, or a roadmap built.',
922
+ pairsWith: ['arch', 'dev', 'qa'],
923
+ },
924
+ arch: {
925
+ tagline: 'Designs systems — choosing tech, structuring data, mapping boundaries.',
926
+ bestFor: "you're picking a stack, designing a schema, or mapping services.",
927
+ pairsWith: ['dev', 'pm', 'ops'],
928
+ },
929
+ qa: {
930
+ tagline: 'Tests, reviews, and stress-tests code before it ships.',
931
+ bestFor: 'you want testing strategy, code review, or quality checks.',
932
+ pairsWith: ['dev', 'pm'],
933
+ },
934
+ dev: {
935
+ tagline: 'Writes, debugs, and refactors code in any language your project speaks.',
936
+ bestFor: 'you need code written, fixed, or restructured.',
937
+ pairsWith: ['arch', 'qa'],
938
+ },
939
+ ops: {
940
+ tagline: 'Handles deployment, infrastructure, CI/CD, and observability.',
941
+ bestFor: "you're shipping to production, debugging an outage, or hardening infra.",
942
+ pairsWith: ['arch', 'dev'],
943
+ },
944
+ docs: {
945
+ tagline: 'Writes API docs, user guides, and tutorials that read like a real product.',
946
+ bestFor: 'your project needs docs — getting started, API reference, or tutorials.',
947
+ pairsWith: ['dev', 'arch'],
948
+ },
949
+ ba: {
950
+ tagline: 'Turns business needs into clear requirements and acceptance criteria.',
951
+ bestFor: 'you have a fuzzy ask and need it sharpened into testable user stories.',
952
+ pairsWith: ['pm', 'arch'],
953
+ },
954
+ researcher: {
955
+ tagline: 'Analyzes sources, synthesizes literature, evaluates evidence.',
956
+ bestFor: 'you have questions to investigate or sources to summarize.',
957
+ pairsWith: ['reviewer', 'editor'],
958
+ },
959
+ reviewer: {
960
+ tagline: 'Validates arguments, checks consistency, surfaces gaps.',
961
+ bestFor: "you have a draft and want to know what's missing or weak.",
962
+ pairsWith: ['researcher', 'editor'],
963
+ },
964
+ editor: {
965
+ tagline: 'Polishes prose — clarity, voice, grammar, flow.',
966
+ bestFor: 'you have a draft and want it to read well.',
967
+ pairsWith: ['researcher', 'writer'],
968
+ },
969
+ writer: {
970
+ tagline: 'Drafts long-form text — articles, plans, narratives.',
971
+ bestFor: 'you need words on the page that match a clear voice.',
972
+ pairsWith: ['editor', 'strategist'],
973
+ },
974
+ analyst: {
975
+ tagline: 'Reads data, runs comparisons, surfaces patterns.',
976
+ bestFor: 'you have numbers (or competitors) to interpret.',
977
+ pairsWith: ['strategist', 'pm'],
978
+ },
979
+ strategist: {
980
+ tagline: 'Frames positioning, business models, go-to-market plans.',
981
+ bestFor: "you're choosing a path forward in business or product.",
982
+ pairsWith: ['analyst', 'pm'],
983
+ },
984
+ instructor: {
985
+ tagline: 'Designs curriculum — modules, lessons, assessments.',
986
+ bestFor: "you're teaching something and need it structured for learners.",
987
+ pairsWith: ['reviewer', 'writer'],
988
+ },
989
+ };
@@ -14,6 +14,12 @@ export interface WorkshopRoleDef {
14
14
  expertise: string[];
15
15
  defaultToolProfile: string;
16
16
  defaultModelTier: string;
17
+ /** One-sentence value prop from ROLE_COPY (optional — falls back to description in the UI). */
18
+ tagline?: string;
19
+ /** "Best when…" trigger phrase. */
20
+ bestFor?: string;
21
+ /** Other role IDs this one complements, used for the "pairs with" strip. */
22
+ pairsWith?: string[];
17
23
  }
18
24
  export interface WorkshopToolProfile {
19
25
  id: string;
@@ -5,7 +5,7 @@
5
5
  * Used by both Desktop (via IPC) and CLI (direct import).
6
6
  * Single source of truth — no hardcoded data in UI components.
7
7
  */
8
- import { PREDEFINED_ROLE_IDS, ROLE_METADATA, ROLE_EXPERTISE, ROLE_GROUPS, } from './types.js';
8
+ import { PREDEFINED_ROLE_IDS, ROLE_METADATA, ROLE_EXPERTISE, ROLE_GROUPS, ROLE_COPY, } from './types.js';
9
9
  import { PROFILE_INFO } from './tool-config.js';
10
10
  import { SKILL_REQUIREMENTS, getSkillsByCategory } from './skill-requirements.js';
11
11
  // =============================================================================
@@ -52,6 +52,7 @@ export function buildAgentWorkshopData(suggestedRolesMap) {
52
52
  // Roles (exclude 'default' — it's the coordinator, not selectable)
53
53
  const roles = PREDEFINED_ROLE_IDS.filter((id) => id !== 'default').map((id) => {
54
54
  const meta = ROLE_METADATA[id];
55
+ const copy = ROLE_COPY[id];
55
56
  return {
56
57
  id,
57
58
  displayName: meta.displayName,
@@ -61,6 +62,9 @@ export function buildAgentWorkshopData(suggestedRolesMap) {
61
62
  expertise: ROLE_EXPERTISE[id],
62
63
  defaultToolProfile: meta.defaultToolProfile ?? 'full',
63
64
  defaultModelTier: meta.defaultModelTier ?? 'balanced',
65
+ tagline: copy?.tagline,
66
+ bestFor: copy?.bestFor,
67
+ pairsWith: copy?.pairsWith ? [...copy.pairsWith] : undefined,
64
68
  };
65
69
  });
66
70
  // Role groups in display order
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compilr-dev/sdk",
3
- "version": "0.9.26",
3
+ "version": "0.9.27",
4
4
  "description": "Universal agent runtime for building AI-powered applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",