@compilr-dev/sdk 0.25.1 → 0.27.0

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 (73) hide show
  1. package/dist/actions/registry.d.ts +1 -1
  2. package/dist/actions/registry.js +1 -1
  3. package/dist/index.d.ts +12 -8
  4. package/dist/index.js +7 -5
  5. package/dist/platform/tools/canvas-tools.js +11 -11
  6. package/dist/project-types/action-meta.d.ts +21 -7
  7. package/dist/project-types/action-meta.js +44 -213
  8. package/dist/project-types/index.d.ts +5 -3
  9. package/dist/project-types/index.js +3 -2
  10. package/dist/project-types/macro-meta.d.ts +39 -0
  11. package/dist/project-types/{skill-meta.js → macro-meta.js} +203 -12
  12. package/dist/project-types/macro-relevance.d.ts +47 -0
  13. package/dist/project-types/macro-relevance.js +58 -0
  14. package/dist/project-types/types.d.ts +23 -4
  15. package/dist/skills/book-macros.d.ts +10 -0
  16. package/dist/skills/{book-skills.js → book-macros.js} +6 -6
  17. package/dist/skills/business-macros.d.ts +11 -0
  18. package/dist/skills/{business-skills.js → business-macros.js} +7 -7
  19. package/dist/skills/canvas-exemplars.d.ts +2 -2
  20. package/dist/skills/canvas-exemplars.js +4 -4
  21. package/dist/skills/canvas-icons.d.ts +1 -1
  22. package/dist/skills/canvas-icons.js +2 -2
  23. package/dist/skills/canvas-macros.d.ts +11 -0
  24. package/dist/skills/{canvas-skills.js → canvas-macros.js} +6 -6
  25. package/dist/skills/content-macros.d.ts +10 -0
  26. package/dist/skills/{content-skills.js → content-macros.js} +6 -6
  27. package/dist/skills/course-macros.d.ts +9 -0
  28. package/dist/skills/{course-skills.js → course-macros.js} +5 -5
  29. package/dist/skills/index.d.ts +6 -2
  30. package/dist/skills/index.js +4 -2
  31. package/dist/skills/macro-invocation.d.ts +44 -0
  32. package/dist/skills/macro-invocation.js +63 -0
  33. package/dist/skills/macro-list.d.ts +54 -0
  34. package/dist/skills/macro-list.js +84 -0
  35. package/dist/skills/operations.js +4 -4
  36. package/dist/skills/platform-macros.d.ts +27 -0
  37. package/dist/skills/platform-macros.js +94 -0
  38. package/dist/skills/prompt-resolver.d.ts +8 -2
  39. package/dist/skills/prompt-resolver.js +14 -8
  40. package/dist/skills/research-macros.d.ts +10 -0
  41. package/dist/skills/{research-skills.js → research-macros.js} +6 -6
  42. package/dist/skills/resolver.d.ts +20 -9
  43. package/dist/skills/resolver.js +18 -21
  44. package/dist/skills/software-macros.d.ts +14 -0
  45. package/dist/skills/{software-skills.js → software-macros.js} +10 -10
  46. package/dist/skills/types.d.ts +2 -2
  47. package/dist/skills/types.js +4 -4
  48. package/dist/team/agent-templates.d.ts +0 -1
  49. package/dist/team/agent-templates.js +0 -2
  50. package/dist/team/custom-agents.d.ts +1 -2
  51. package/dist/team/custom-agents.js +1 -2
  52. package/dist/team/index.d.ts +5 -3
  53. package/dist/team/index.js +2 -1
  54. package/dist/team/{skill-requirements.d.ts → macro-requirements.d.ts} +20 -14
  55. package/dist/team/{skill-requirements.js → macro-requirements.js} +28 -22
  56. package/dist/team/macro-tool-gap.d.ts +42 -0
  57. package/dist/team/macro-tool-gap.js +69 -0
  58. package/dist/team/team-agent.d.ts +15 -2
  59. package/dist/team/team-agent.js +20 -10
  60. package/dist/team/types.d.ts +9 -4
  61. package/dist/team/workshop-data.d.ts +17 -5
  62. package/dist/team/workshop-data.js +13 -13
  63. package/package.json +1 -1
  64. package/dist/project-types/skill-meta.d.ts +0 -17
  65. package/dist/skills/book-skills.d.ts +0 -10
  66. package/dist/skills/business-skills.d.ts +0 -11
  67. package/dist/skills/canvas-skills.d.ts +0 -11
  68. package/dist/skills/content-skills.d.ts +0 -10
  69. package/dist/skills/course-skills.d.ts +0 -9
  70. package/dist/skills/platform-skills.d.ts +0 -20
  71. package/dist/skills/platform-skills.js +0 -87
  72. package/dist/skills/research-skills.d.ts +0 -10
  73. package/dist/skills/software-skills.d.ts +0 -14
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Action Registry — Defines which actions are available and where.
3
3
  *
4
- * Each action maps to a skill (from platformSkills/builtinSkills)
4
+ * Each action maps to a skill (from platformMacros/builtinSkills)
5
5
  * but adds UI metadata: icon, label, category, applicable contexts,
6
6
  * and suggested agent role.
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Action Registry — Defines which actions are available and where.
3
3
  *
4
- * Each action maps to a skill (from platformSkills/builtinSkills)
4
+ * Each action maps to a skill (from platformMacros/builtinSkills)
5
5
  * but adds UI metadata: icon, label, category, applicable contexts,
6
6
  * and suggested agent role.
7
7
  */
package/dist/index.d.ts CHANGED
@@ -36,10 +36,10 @@
36
36
  export { createCompilrAgent } from './agent.js';
37
37
  export type { CompilrAgentConfig, CompilrAgent, RunOptions, RunResult, ToolCallRecord, ToolConfig, UsageInfo, ProviderType, PermissionCallback, GuardrailConfig, ContextConfig, CapabilitiesConfig, } from './config.js';
38
38
  export { AgentTeam, TeamAgent, SharedContextManager, ArtifactStore, DelegationTracker, ContextResolver, createDelegationStatusTool, createHandoffTool, createDelegateTool, createDelegateBackgroundTool, buildHandoffTaskMessage, validateHandoffIntent, HandoffStash, createConsultTool, buildConsultQuestionMessage, ROLE_NAME_ALIASES, normalizeRoleName, isNarrowing, lostWriteAccess, } from './team/index.js';
39
- export type { AgentTeamConfig, TeamAgentConfig, TeamAgentUpdate, AgentUpdateResult, ITeamPersistence, IArtifactStorage, ISessionRegistry, CustomAgentDefinition, AgentTemplate, AgentWorkshopData, WorkshopRoleDef, WorkshopToolProfile, WorkshopModelTier, WorkshopSkillDef, PlanSubmitInfo, PlanSubmitResult, PlanModeExitInfo, PlanModeCallbacks, ToolConfig as TeamToolConfig, ToolTier, ToolGroup, ProfileInfo, } from './team/index.js';
40
- export type { AgentRole, RoleMetadata, ToolProfile, MascotExpression, BackgroundSessionInfo, SerializedTeam, SerializedTeamAgent, TeamMetadata, TeamEvent, TeamEventType, TeamEventHandler, Artifact, ArtifactType as TeamArtifactType, ArtifactSummary as TeamArtifactSummary, CreateArtifactOptions, UpdateArtifactOptions, SerializedArtifact, SharedContext, SharedProjectInfo, SharedTeamInfo, TeamRosterEntry, TeamActivity, TeamActivityType, SharedDecision, TokenBudget, SerializedSharedContext, ParsedMention, ParsedInput, ResolvedMention, ResolveOptions, ResolutionSource, Delegation, DelegationStatus, DelegationResult, CompletionEvent, CreateDelegationOptions, DelegationStats, DelegationTrackerEvents, HandoffResult, HandoffToolConfig, HandoffIntent, HandoffValidationResult, DelegateResult, DelegateToolConfig, DelegateBackgroundResult, DelegateBackgroundToolConfig, ConsultInput, ConsultResult, ConsultToolConfig, NormalizedRole, SkillToolRequirement, } from './team/index.js';
41
- export { ROLE_METADATA, ROLE_EXPERTISE, ROLE_GROUPS, PREDEFINED_ROLE_IDS, TOOL_GROUPS, TOOL_PROFILES, PROFILE_INFO, SKILL_REQUIREMENTS, CUSTOM_MASCOTS, buildAgentWorkshopData, buildSuggestedRolesMap, PLAN_MODE_BLOCKED_TOOLS, PLAN_MODE_DENIAL_MESSAGE, PLAN_MODE_PROMPT, isToolAllowedInPlanMode, getPlanModePrompt, } from './team/index.js';
42
- export { getToolsForProfile, detectProfileFromTools, isProfileReadOnly, generateToolAwarenessPrompt, generateCoordinatorGuidance, generateSpecialistGuidance, createDefaultToolConfig, validateToolConfig, getAllGroupIds, getGroupInfo, getGroupsByTier, getGroupsForProfile, assignMascot, generateCustomAgentSystemPrompt, mcpServerOf, filterMcpToolsByGrant, MCP_TOOL_PREFIX, getCustomAgentToolFilter, getCustomAgentProfileLabel, validateAgentId, isAgentIdTaken, createCustomAgentDefinition, listTemplates, getTemplate, saveTemplate, updateTemplate, deleteTemplate, createAgentFromTemplate, parseInputForMentions, getReferencedAgents, hasReferences, buildMessageWithContext, buildContextMap, findAgentForRole, findAgentById, getAvailableSpecialists, getSpecialistsSummary, hasSpecialists, suggestOwner, suggestOwners, matchesAgentExpertise, wouldCreateLoop, recordAssignment, getAssignmentHistory, clearAssignmentHistory, clearAllAssignmentHistory, canReassign, resolveAgentIdCollision, setActiveSharedContext, getActiveSharedContext, recordTeamActivity, getDefinedSkillNames, getSkillRequirements, checkSkillCompatibility, getCompatibleSkills, getAllRequiredTools, getSkillsByCategory, } from './team/index.js';
39
+ export type { AgentTeamConfig, TeamAgentConfig, TeamAgentUpdate, AgentUpdateResult, ITeamPersistence, IArtifactStorage, ISessionRegistry, CustomAgentDefinition, AgentTemplate, AgentWorkshopData, WorkshopRoleDef, WorkshopToolProfile, WorkshopModelTier, WorkshopMacroDef, PlanSubmitInfo, PlanSubmitResult, PlanModeExitInfo, PlanModeCallbacks, ToolConfig as TeamToolConfig, ToolTier, ToolGroup, ProfileInfo, } from './team/index.js';
40
+ export type { AgentRole, RoleMetadata, ToolProfile, MascotExpression, BackgroundSessionInfo, SerializedTeam, SerializedTeamAgent, TeamMetadata, TeamEvent, TeamEventType, TeamEventHandler, Artifact, ArtifactType as TeamArtifactType, ArtifactSummary as TeamArtifactSummary, CreateArtifactOptions, UpdateArtifactOptions, SerializedArtifact, SharedContext, SharedProjectInfo, SharedTeamInfo, TeamRosterEntry, TeamActivity, TeamActivityType, SharedDecision, TokenBudget, SerializedSharedContext, ParsedMention, ParsedInput, ResolvedMention, ResolveOptions, ResolutionSource, Delegation, DelegationStatus, DelegationResult, CompletionEvent, CreateDelegationOptions, DelegationStats, DelegationTrackerEvents, HandoffResult, HandoffToolConfig, HandoffIntent, HandoffValidationResult, DelegateResult, DelegateToolConfig, DelegateBackgroundResult, DelegateBackgroundToolConfig, ConsultInput, ConsultResult, ConsultToolConfig, NormalizedRole, } from './team/index.js';
41
+ export { ROLE_METADATA, ROLE_EXPERTISE, ROLE_GROUPS, PREDEFINED_ROLE_IDS, TOOL_GROUPS, TOOL_PROFILES, PROFILE_INFO, MACRO_REQUIREMENTS, getDefinedMacroNames, getMacroRequirements, getCompatibleMacros, getMacrosByCategory, CUSTOM_MASCOTS, buildAgentWorkshopData, buildSuggestedRolesMap, PLAN_MODE_BLOCKED_TOOLS, PLAN_MODE_DENIAL_MESSAGE, PLAN_MODE_PROMPT, isToolAllowedInPlanMode, getPlanModePrompt, } from './team/index.js';
42
+ export { getToolsForProfile, detectProfileFromTools, isProfileReadOnly, generateToolAwarenessPrompt, generateCoordinatorGuidance, generateSpecialistGuidance, createDefaultToolConfig, validateToolConfig, getAllGroupIds, getGroupInfo, getGroupsByTier, getGroupsForProfile, assignMascot, generateCustomAgentSystemPrompt, mcpServerOf, filterMcpToolsByGrant, MCP_TOOL_PREFIX, getCustomAgentToolFilter, getCustomAgentProfileLabel, validateAgentId, isAgentIdTaken, createCustomAgentDefinition, listTemplates, getTemplate, saveTemplate, updateTemplate, deleteTemplate, createAgentFromTemplate, parseInputForMentions, getReferencedAgents, hasReferences, buildMessageWithContext, buildContextMap, findAgentForRole, findAgentById, getAvailableSpecialists, getSpecialistsSummary, hasSpecialists, suggestOwner, suggestOwners, matchesAgentExpertise, wouldCreateLoop, recordAssignment, getAssignmentHistory, clearAssignmentHistory, clearAllAssignmentHistory, canReassign, resolveAgentIdCollision, setActiveSharedContext, getActiveSharedContext, recordTeamActivity, checkMacroCompatibility, macroToolGap, macroToolGapPreamble, getAllRequiredTools, } from './team/index.js';
43
43
  export { codingPreset, readOnlyPreset, resolvePreset } from './presets/index.js';
44
44
  export type { Preset } from './presets/index.js';
45
45
  export type { AnyTool } from './presets/types.js';
@@ -68,16 +68,20 @@ export { createPlatformTools, createProjectTools, createWorkItemTools, createDoc
68
68
  export type { ProjectAnchorStoreConfig, FileArtifactServiceConfig, ImageToolsConfig, ImageResizer, } from './platform/index.js';
69
69
  export { STEP_ORDER, GUIDED_STEP_CRITERIA, getNextStep, isValidTransition, getStepCriteria, formatStepDisplay, getStepNumber, } from './platform/index.js';
70
70
  export type { CustomSkill, CompilrSkillExtension, ForkedFromMarker, SkillEligibilityContext, SkillCollision, SkillDiffLine, SkillValidationIssue, ScopeConfig, SkillResolution, } from './skills/index.js';
71
- export { RESERVED_SKILL_NAMES, isReservedSkillName, parseSkillMarkdown, loadSkillsFromDir, loadInstalledSkills, resolveLayeredSkills, resolveSkillsForAgent, resolveSkillsForTeamAgent, detectCollisions, formatCollisionWarnings, diffForkVsUpstream, buildForkContent, buildNewSkillContent, validateSkill as validateSkillQuality, getSkillsDir, getSkillFolder, getSkillFile, ensureSkillsDir, isValidSkillName, getScopeConfigPath, readSkillScopeConfig, readSkillScopeConfigSync, writeSkillScopeConfig, getSkillBindings, resolveSkillBinding, } from './skills/index.js';
71
+ export { RESERVED_MACRO_NAMES, isReservedMacroName, parseSkillMarkdown, loadSkillsFromDir, loadInstalledSkills, resolveLayeredSkills, resolveSkillsForAgent, resolveSkillsForTeamAgent, detectCollisions, formatCollisionWarnings, diffForkVsUpstream, buildForkContent, buildNewSkillContent, validateSkill as validateSkillQuality, getSkillsDir, getSkillFolder, getSkillFile, ensureSkillsDir, isValidSkillName, getScopeConfigPath, readSkillScopeConfig, readSkillScopeConfigSync, writeSkillScopeConfig, getSkillBindings, resolveSkillBinding, } from './skills/index.js';
72
72
  export type { SkillScope, SkillPromptResolution, AvailableSkillEntry, SkillSources, } from './skills/index.js';
73
73
  export { resolveSkillPrompt, getAllAvailableSkills } from './skills/index.js';
74
+ export { buildMacroList } from './skills/index.js';
75
+ export { buildMacroInvocation } from './skills/index.js';
76
+ export type { MacroInvocation, MacroInvocationContext, MacroProjectContext, } from './skills/index.js';
77
+ export type { MacroListEntry, BuildMacroListOptions } from './skills/index.js';
74
78
  export { generateSkillCatalog, toCatalogEntry, createLoadSkillTool } from './skills/index.js';
75
79
  export type { SkillCatalogEntry, SkillSource } from './skills/index.js';
76
- export { platformSkills, designSkill, sketchSkill, prdSkill, refineSkill, refineItemSkill, architectureSkill, sessionNotesSkill, buildSkill, scaffoldSkill, outlineSkill, literatureReviewSkill, draftSectionSkill, peerReviewSkill, researchScaffoldSkill, businessVisionSkill, marketAnalysisSkill, competitorAnalysisSkill, financialModelSkill, pitchOutlineSkill, businessReviewSkill, brandSetupSkill, contentStrategySkill, contentCalendarSkill, createContentSkill, contentReviewSkill, curriculumDesignSkill, lessonPlanSkill, assessmentDesignSkill, courseReviewSkill, bookOutlineSkill, characterDesignSkill, plotThreadsSkill, sceneBreakdownSkill, bookReviewSkill, } from './skills/index.js';
80
+ export { platformMacros, designMacro, sketchMacro, prdMacro, refineMacro, refineItemMacro, architectureMacro, sessionNotesMacro, buildMacro, scaffoldMacro, outlineMacro, literatureReviewMacro, draftSectionMacro, peerReviewMacro, researchScaffoldMacro, businessVisionMacro, marketAnalysisMacro, competitorAnalysisMacro, financialModelMacro, pitchOutlineMacro, businessReviewMacro, brandSetupMacro, contentStrategyMacro, contentCalendarMacro, createContentMacro, contentReviewMacro, curriculumDesignMacro, lessonPlanMacro, assessmentDesignMacro, courseReviewMacro, bookOutlineMacro, characterDesignMacro, plotThreadsMacro, sceneBreakdownMacro, bookReviewMacro, } from './skills/index.js';
77
81
  export { ACTION_REGISTRY, getActionsForContext, getActionById, resolveActionPrompt, buildContextSummary, getSuggestedRole, } from './actions/index.js';
78
82
  export type { ActionContext, ActionDefinition } from './actions/index.js';
79
- export { PROJECT_TYPES, getProjectTypeConfig, getEnrichedProjectTypeConfig, getProjectTypesByCategory, generalConfig, softwareConfig, researchConfig, businessPlanConfig, contentConfig, techDocsConfig, courseConfig, ACTION_META_REGISTRY, SKILL_META_REGISTRY, resolveActionMeta, getSkillMeta, getAllSkillMeta, } from './project-types/index.js';
80
- export type { ActionMeta, SkillMeta } from './project-types/index.js';
83
+ export { PROJECT_TYPES, getProjectTypeConfig, getEnrichedProjectTypeConfig, getProjectTypesByCategory, generalConfig, softwareConfig, researchConfig, businessPlanConfig, contentConfig, techDocsConfig, courseConfig, MACRO_META_REGISTRY, resolveActionMeta, getRelevantMacros, getMacroMeta, getAllMacroMeta, } from './project-types/index.js';
84
+ export type { ActionMeta, MacroMeta, MacroCategory, MacroCapabilities, } from './project-types/index.js';
81
85
  export type { ProjectTypeConfig, ProjectPhase, SuggestedAgent, DocumentTemplate, } from './project-types/index.js';
82
86
  export { defineTool, createSuccessResult, createErrorResult, mergeHooks, createLoggingHooks, createClaudeProvider, createOpenAIProvider, createGeminiNativeProvider, createOllamaProvider, createTogetherProvider, createGroqProvider, createFireworksProvider, createPerplexityProvider, createOpenRouterProvider, createMockProvider, MockProvider, Agent, ContextManager, DEFAULT_CONTEXT_CONFIG, createTaskTool, createSuggestTool, defaultAgentTypes, TOOL_SETS, BUILTIN_GUARDRAILS, TOOL_NAMES, getDefaultShellManager, builtinSkills, AnchorManager, MCPManager, AgentError, ProviderError, ToolError, ToolTimeoutError, MaxIterationsError, AbortError, } from '@compilr-dev/agents';
83
87
  export { classifyAgentError, isApiKeyError } from './errors/classify.js';
package/dist/index.js CHANGED
@@ -43,7 +43,7 @@ export { createCompilrAgent } from './agent.js';
43
43
  // Core classes
44
44
  export { AgentTeam, TeamAgent, SharedContextManager, ArtifactStore, DelegationTracker, ContextResolver, createDelegationStatusTool, createHandoffTool, createDelegateTool, createDelegateBackgroundTool, buildHandoffTaskMessage, validateHandoffIntent, HandoffStash, createConsultTool, buildConsultQuestionMessage, ROLE_NAME_ALIASES, normalizeRoleName, isNarrowing, lostWriteAccess, } from './team/index.js';
45
45
  // Constants
46
- export { ROLE_METADATA, ROLE_EXPERTISE, ROLE_GROUPS, PREDEFINED_ROLE_IDS, TOOL_GROUPS, TOOL_PROFILES, PROFILE_INFO, SKILL_REQUIREMENTS, CUSTOM_MASCOTS, buildAgentWorkshopData, buildSuggestedRolesMap,
46
+ export { ROLE_METADATA, ROLE_EXPERTISE, ROLE_GROUPS, PREDEFINED_ROLE_IDS, TOOL_GROUPS, TOOL_PROFILES, PROFILE_INFO, MACRO_REQUIREMENTS, getDefinedMacroNames, getMacroRequirements, getCompatibleMacros, getMacrosByCategory, CUSTOM_MASCOTS, buildAgentWorkshopData, buildSuggestedRolesMap,
47
47
  // Plan mode
48
48
  PLAN_MODE_BLOCKED_TOOLS, PLAN_MODE_DENIAL_MESSAGE, PLAN_MODE_PROMPT, isToolAllowedInPlanMode, getPlanModePrompt, } from './team/index.js';
49
49
  // Utility functions
@@ -67,7 +67,7 @@ resolveAgentIdCollision,
67
67
  // Activity
68
68
  setActiveSharedContext, getActiveSharedContext, recordTeamActivity,
69
69
  // Skills
70
- getDefinedSkillNames, getSkillRequirements, checkSkillCompatibility, getCompatibleSkills, getAllRequiredTools, getSkillsByCategory, } from './team/index.js';
70
+ checkMacroCompatibility, macroToolGap, macroToolGapPreamble, getAllRequiredTools, } from './team/index.js';
71
71
  // =============================================================================
72
72
  // Presets
73
73
  // =============================================================================
@@ -152,10 +152,12 @@ export { createPlatformTools, createProjectTools, createWorkItemTools, createDoc
152
152
  // Platform Workflow (pure step-criteria logic)
153
153
  // =============================================================================
154
154
  export { STEP_ORDER, GUIDED_STEP_CRITERIA, getNextStep, isValidTransition, getStepCriteria, formatStepDisplay, getStepNumber, } from './platform/index.js';
155
- export { RESERVED_SKILL_NAMES, isReservedSkillName, parseSkillMarkdown, loadSkillsFromDir, loadInstalledSkills, resolveLayeredSkills, resolveSkillsForAgent, resolveSkillsForTeamAgent, detectCollisions, formatCollisionWarnings, diffForkVsUpstream, buildForkContent, buildNewSkillContent, validateSkill as validateSkillQuality, getSkillsDir, getSkillFolder, getSkillFile, ensureSkillsDir, isValidSkillName, getScopeConfigPath, readSkillScopeConfig, readSkillScopeConfigSync, writeSkillScopeConfig, getSkillBindings, resolveSkillBinding, } from './skills/index.js';
155
+ export { RESERVED_MACRO_NAMES, isReservedMacroName, parseSkillMarkdown, loadSkillsFromDir, loadInstalledSkills, resolveLayeredSkills, resolveSkillsForAgent, resolveSkillsForTeamAgent, detectCollisions, formatCollisionWarnings, diffForkVsUpstream, buildForkContent, buildNewSkillContent, validateSkill as validateSkillQuality, getSkillsDir, getSkillFolder, getSkillFile, ensureSkillsDir, isValidSkillName, getScopeConfigPath, readSkillScopeConfig, readSkillScopeConfigSync, writeSkillScopeConfig, getSkillBindings, resolveSkillBinding, } from './skills/index.js';
156
156
  export { resolveSkillPrompt, getAllAvailableSkills } from './skills/index.js';
157
+ export { buildMacroList } from './skills/index.js';
158
+ export { buildMacroInvocation } from './skills/index.js';
157
159
  export { generateSkillCatalog, toCatalogEntry, createLoadSkillTool } from './skills/index.js';
158
- export { platformSkills, designSkill, sketchSkill, prdSkill, refineSkill, refineItemSkill, architectureSkill, sessionNotesSkill, buildSkill, scaffoldSkill, outlineSkill, literatureReviewSkill, draftSectionSkill, peerReviewSkill, researchScaffoldSkill, businessVisionSkill, marketAnalysisSkill, competitorAnalysisSkill, financialModelSkill, pitchOutlineSkill, businessReviewSkill, brandSetupSkill, contentStrategySkill, contentCalendarSkill, createContentSkill, contentReviewSkill, curriculumDesignSkill, lessonPlanSkill, assessmentDesignSkill, courseReviewSkill, bookOutlineSkill, characterDesignSkill, plotThreadsSkill, sceneBreakdownSkill, bookReviewSkill, } from './skills/index.js';
160
+ export { platformMacros, designMacro, sketchMacro, prdMacro, refineMacro, refineItemMacro, architectureMacro, sessionNotesMacro, buildMacro, scaffoldMacro, outlineMacro, literatureReviewMacro, draftSectionMacro, peerReviewMacro, researchScaffoldMacro, businessVisionMacro, marketAnalysisMacro, competitorAnalysisMacro, financialModelMacro, pitchOutlineMacro, businessReviewMacro, brandSetupMacro, contentStrategyMacro, contentCalendarMacro, createContentMacro, contentReviewMacro, curriculumDesignMacro, lessonPlanMacro, assessmentDesignMacro, courseReviewMacro, bookOutlineMacro, characterDesignMacro, plotThreadsMacro, sceneBreakdownMacro, bookReviewMacro, } from './skills/index.js';
159
161
  // =============================================================================
160
162
  // Contextual Actions (skill invocations with context)
161
163
  // =============================================================================
@@ -165,7 +167,7 @@ export { ACTION_REGISTRY, getActionsForContext, getActionById, resolveActionProm
165
167
  // =============================================================================
166
168
  export { PROJECT_TYPES, getProjectTypeConfig, getEnrichedProjectTypeConfig, getProjectTypesByCategory, generalConfig, softwareConfig, researchConfig, businessPlanConfig, contentConfig, techDocsConfig, courseConfig,
167
169
  // Action & skill metadata
168
- ACTION_META_REGISTRY, SKILL_META_REGISTRY, resolveActionMeta, getSkillMeta, getAllSkillMeta, } from './project-types/index.js';
170
+ MACRO_META_REGISTRY, resolveActionMeta, getRelevantMacros, getMacroMeta, getAllMacroMeta, } from './project-types/index.js';
169
171
  // =============================================================================
170
172
  // Re-exports from @compilr-dev/agents (convenience — no need to install separately)
171
173
  // =============================================================================
@@ -20,9 +20,9 @@ import * as pathNode from 'node:path';
20
20
  const PAGE_SIZES = ['16:9', '4:3', '1:1', '4:5', '9:16'];
21
21
  import { seedValues } from '../../canvas/types.js';
22
22
  import { validateControlManifest } from '../../canvas/validate.js';
23
- import { canvasSkill, infographicSkill, carouselSkill, boardSkill, canvasStylesSkill, } from '../../skills/canvas-skills.js';
24
- import { canvasExemplarInfographicSkill, canvasExemplarAppScreenSkill, } from '../../skills/canvas-exemplars.js';
25
- import { canvasIconsSkill } from '../../skills/canvas-icons.js';
23
+ import { canvasMacro, infographicMacro, carouselMacro, boardMacro, canvasStylesMacro, } from '../../skills/canvas-macros.js';
24
+ import { canvasExemplarInfographicMacro, canvasExemplarAppScreenMacro, } from '../../skills/canvas-exemplars.js';
25
+ import { canvasIconsMacro } from '../../skills/canvas-icons.js';
26
26
  const CANVAS_TYPES = ['infographic', 'carousel', 'board'];
27
27
  /** Render content as numbered lines (1-based), optionally a slice. */
28
28
  function numberedLines(content, startLine, maxLines) {
@@ -743,14 +743,14 @@ export function createCanvasTools(config, imageConfig) {
743
743
  tests). The type was lying, not the guard.
744
744
  */
745
745
  const guides = {
746
- canvas: canvasSkill,
747
- infographic: infographicSkill,
748
- carousel: carouselSkill,
749
- board: boardSkill,
750
- styles: canvasStylesSkill,
751
- 'exemplar-infographic': canvasExemplarInfographicSkill,
752
- 'exemplar-app-screen': canvasExemplarAppScreenSkill,
753
- icons: canvasIconsSkill,
746
+ canvas: canvasMacro,
747
+ infographic: infographicMacro,
748
+ carousel: carouselMacro,
749
+ board: boardMacro,
750
+ styles: canvasStylesMacro,
751
+ 'exemplar-infographic': canvasExemplarInfographicMacro,
752
+ 'exemplar-app-screen': canvasExemplarAppScreenMacro,
753
+ icons: canvasIconsMacro,
754
754
  };
755
755
  const guide = guides[input.topic];
756
756
  if (!guide) {
@@ -1,14 +1,28 @@
1
1
  /**
2
- * Action Metadata
2
+ * Action metadata — the action-button VIEW of a macro.
3
3
  *
4
- * Defines UI metadata for project-level and work-item-level actions.
5
- * Referenced by ProjectTypeConfig.projectActionsMeta / workItemActionsMeta.
4
+ * ⚠️ THIS FILE USED TO HOLD A SECOND REGISTRY. `ACTION_META_REGISTRY` keyed the same 35 macro
5
+ * ids as MACRO_META_REGISTRY with its own labels, descriptions and icons, and the two drifted
6
+ * apart in both directions. It is gone; this now derives from the one registry.
7
+ *
8
+ * What it does NOT do is flatten the difference. The action view was deliberately terser —
9
+ * 26 of 35 labels and 33 of 35 descriptions were shorter, because a button in a row of six
10
+ * cannot say "Competitor Analysis" and a work-item action says "Implement this item" rather
11
+ * than "Implement a feature". Those live on MacroMeta as `shortLabel` / `shortDescription`
12
+ * and are preferred here, so every label and description this function returns is byte-for-byte
13
+ * what the old registry returned. That is asserted in tests/project-types/action-meta.test.ts,
14
+ * against a snapshot taken before the merge.
15
+ *
16
+ * Spec: project-docs/00-requirements/compilr-dev-sdk/macro-metadata-consolidation.md
6
17
  */
7
18
  import type { ActionMeta } from './types.js';
8
- /** All known action metadata, keyed by action/skill ID */
9
- export declare const ACTION_META_REGISTRY: Record<string, ActionMeta>;
10
19
  /**
11
- * Resolve action IDs to ActionMeta objects.
12
- * Unknown IDs are returned with a fallback label.
20
+ * Resolve action ids to their button metadata.
21
+ *
22
+ * An unknown id still yields a usable entry rather than throwing — but it is a hole, not a
23
+ * feature: it renders as the raw id with a generic icon, which is exactly how twenty macros
24
+ * came to be displayed as `business-vision`, `market-analysis`, … The coverage guard in
25
+ * tests/skills/macro-meta-coverage.test.ts is what keeps this branch unreachable for anything
26
+ * we ship.
13
27
  */
14
28
  export declare function resolveActionMeta(actionIds: readonly string[]): ActionMeta[];
@@ -1,220 +1,51 @@
1
1
  /**
2
- * Action Metadata
2
+ * Action metadata — the action-button VIEW of a macro.
3
3
  *
4
- * Defines UI metadata for project-level and work-item-level actions.
5
- * Referenced by ProjectTypeConfig.projectActionsMeta / workItemActionsMeta.
4
+ * ⚠️ THIS FILE USED TO HOLD A SECOND REGISTRY. `ACTION_META_REGISTRY` keyed the same 35 macro
5
+ * ids as MACRO_META_REGISTRY with its own labels, descriptions and icons, and the two drifted
6
+ * apart in both directions. It is gone; this now derives from the one registry.
7
+ *
8
+ * What it does NOT do is flatten the difference. The action view was deliberately terser —
9
+ * 26 of 35 labels and 33 of 35 descriptions were shorter, because a button in a row of six
10
+ * cannot say "Competitor Analysis" and a work-item action says "Implement this item" rather
11
+ * than "Implement a feature". Those live on MacroMeta as `shortLabel` / `shortDescription`
12
+ * and are preferred here, so every label and description this function returns is byte-for-byte
13
+ * what the old registry returned. That is asserted in tests/project-types/action-meta.test.ts,
14
+ * against a snapshot taken before the merge.
15
+ *
16
+ * Spec: project-docs/00-requirements/compilr-dev-sdk/macro-metadata-consolidation.md
6
17
  */
7
- /** All known action metadata, keyed by action/skill ID */
8
- export const ACTION_META_REGISTRY = {
9
- // ── Software project actions ─────────────────────────────────────────────
10
- design: { id: 'design', label: 'Design', icon: 'Wand2', description: 'Design the app' },
11
- prd: { id: 'prd', label: 'PRD', icon: 'FileText', description: 'Write requirements' },
12
- architecture: {
13
- id: 'architecture',
14
- label: 'Architecture',
15
- icon: 'Network',
16
- description: 'System architecture',
17
- },
18
- refine: { id: 'refine', label: 'Refine', icon: 'RefreshCw', description: 'Refine backlog' },
19
- scaffold: { id: 'scaffold', label: 'Scaffold', icon: 'Layers', description: 'Generate code' },
20
- 'session-notes': {
21
- id: 'session-notes',
22
- label: 'Notes',
23
- icon: 'StickyNote',
24
- description: 'Session summary',
25
- },
26
- // ── Research project actions ─────────────────────────────────────────────
27
- 'research-scaffold': {
28
- id: 'research-scaffold',
29
- label: 'New Paper',
30
- icon: 'Layers',
31
- description: 'Set up from a template',
32
- },
33
- outline: {
34
- id: 'outline',
35
- label: 'Outline',
36
- icon: 'BookOpen',
37
- description: 'Build paper outline',
38
- },
39
- 'literature-review': {
40
- id: 'literature-review',
41
- label: 'Lit Review',
42
- icon: 'Search',
43
- description: 'Analyze sources',
44
- },
45
- 'draft-section': {
46
- id: 'draft-section',
47
- label: 'Draft',
48
- icon: 'PenTool',
49
- description: 'Write a section',
50
- },
51
- 'peer-review': {
52
- id: 'peer-review',
53
- label: 'Review',
54
- icon: 'ShieldCheck',
55
- description: 'Review the paper',
56
- },
57
- // ── Business Plan project actions ──────────────────────────────────────────
58
- 'business-vision': {
59
- id: 'business-vision',
60
- label: 'Vision',
61
- icon: 'Target',
62
- description: 'Define your business',
63
- },
64
- 'market-analysis': {
65
- id: 'market-analysis',
66
- label: 'Market',
67
- icon: 'TrendingUp',
68
- description: 'Analyze the market',
69
- },
70
- 'competitor-analysis': {
71
- id: 'competitor-analysis',
72
- label: 'Competitors',
73
- icon: 'Swords',
74
- description: 'Map competition',
75
- },
76
- // ── Content & Marketing actions ───────────────────────────────────────────
77
- 'brand-setup': {
78
- id: 'brand-setup',
79
- label: 'Brand',
80
- icon: 'Palette',
81
- description: 'Set up brand identity',
82
- },
83
- 'content-strategy': {
84
- id: 'content-strategy',
85
- label: 'Strategy',
86
- icon: 'Target',
87
- description: 'Define pillars',
88
- },
89
- 'content-calendar': {
90
- id: 'content-calendar',
91
- label: 'Calendar',
92
- icon: 'Calendar',
93
- description: 'Plan content',
94
- },
95
- 'create-content': {
96
- id: 'create-content',
97
- label: 'Create',
98
- icon: 'PenTool',
99
- description: 'Write content',
100
- },
101
- 'content-review': {
102
- id: 'content-review',
103
- label: 'Review',
104
- icon: 'CheckCircle',
105
- description: 'Check quality',
106
- },
107
- // ── Book actions ─────────────────────────────────────────────────────────
108
- 'book-outline': {
109
- id: 'book-outline',
110
- label: 'Outline',
111
- icon: 'BookOpen',
112
- description: 'Plan structure',
113
- },
114
- 'character-design': {
115
- id: 'character-design',
116
- label: 'Characters',
117
- icon: 'Users',
118
- description: 'Build cast',
119
- },
120
- 'plot-threads': {
121
- id: 'plot-threads',
122
- label: 'Threads',
123
- icon: 'GitBranch',
124
- description: 'Map plot lines',
125
- },
126
- 'scene-breakdown': {
127
- id: 'scene-breakdown',
128
- label: 'Scenes',
129
- icon: 'Layers',
130
- description: 'Detail scenes',
131
- },
132
- 'book-review': {
133
- id: 'book-review',
134
- label: 'Review',
135
- icon: 'CheckCircle',
136
- description: 'Structure check',
137
- },
138
- // ── Course / Training actions ─────────────────────────────────────────────
139
- 'curriculum-design': {
140
- id: 'curriculum-design',
141
- label: 'Curriculum',
142
- icon: 'School',
143
- description: 'Define structure',
144
- },
145
- 'lesson-plan': {
146
- id: 'lesson-plan',
147
- label: 'Lessons',
148
- icon: 'BookOpen',
149
- description: 'Plan lessons',
150
- },
151
- 'assessment-design': {
152
- id: 'assessment-design',
153
- label: 'Assess',
154
- icon: 'ClipboardCheck',
155
- description: 'Create assessments',
156
- },
157
- 'course-review': {
158
- id: 'course-review',
159
- label: 'Review',
160
- icon: 'CheckCircle',
161
- description: 'Quality check',
162
- },
163
- 'financial-model': {
164
- id: 'financial-model',
165
- label: 'Financials',
166
- icon: 'DollarSign',
167
- description: 'Build projections',
168
- },
169
- 'pitch-outline': {
170
- id: 'pitch-outline',
171
- label: 'Pitch',
172
- icon: 'Rocket',
173
- description: 'Structure a pitch',
174
- },
175
- 'business-review': {
176
- id: 'business-review',
177
- label: 'Review',
178
- icon: 'ShieldCheck',
179
- description: 'Validate the plan',
180
- },
181
- // ── Work item actions ────────────────────────────────────────────────────
182
- build: {
183
- id: 'build',
184
- label: 'Build',
185
- icon: 'Hammer',
186
- description: 'Implement this item',
187
- category: 'development',
188
- suggestedRole: 'developer',
189
- },
190
- 'refine-item': {
191
- id: 'refine-item',
192
- label: 'Refine',
193
- icon: 'RefreshCw',
194
- description: 'Add detail to this item',
195
- category: 'planning',
196
- suggestedRole: 'pm',
197
- },
198
- 'code-review': {
199
- id: 'code-review',
200
- label: 'Review',
201
- icon: 'Search',
202
- description: 'Review code for this item',
203
- category: 'development',
204
- suggestedRole: 'qa',
205
- },
206
- explain: {
207
- id: 'explain',
208
- label: 'Explain',
209
- icon: 'BookOpen',
210
- description: 'Explain this item',
211
- category: 'documentation',
212
- },
213
- };
18
+ import { MACRO_META_REGISTRY } from './macro-meta.js';
214
19
  /**
215
- * Resolve action IDs to ActionMeta objects.
216
- * Unknown IDs are returned with a fallback label.
20
+ * Resolve action ids to their button metadata.
21
+ *
22
+ * An unknown id still yields a usable entry rather than throwing — but it is a hole, not a
23
+ * feature: it renders as the raw id with a generic icon, which is exactly how twenty macros
24
+ * came to be displayed as `business-vision`, `market-analysis`, … The coverage guard in
25
+ * tests/skills/macro-meta-coverage.test.ts is what keeps this branch unreachable for anything
26
+ * we ship.
217
27
  */
218
28
  export function resolveActionMeta(actionIds) {
219
- return actionIds.map((id) => ACTION_META_REGISTRY[id] ?? { id, label: id, icon: 'Zap', description: id });
29
+ return actionIds.map((id) => {
30
+ // `in`, not a falsy check on the lookup. `Record<string, MacroMeta>` claims every key
31
+ // resolves, so `if (!meta)` reads as dead code to eslint and it asks for the guard to be
32
+ // deleted — but `id` comes from a project type's data, not from the type, and an unknown id
33
+ // is exactly what this branch is for. `checkMacroCompatibility` guards the same way.
34
+ if (!(id in MACRO_META_REGISTRY))
35
+ return { id, label: id, icon: 'Zap', description: id };
36
+ const meta = MACRO_META_REGISTRY[id];
37
+ const action = {
38
+ id: meta.id,
39
+ label: meta.shortLabel ?? meta.label,
40
+ icon: meta.icon,
41
+ description: meta.shortDescription ?? meta.description,
42
+ // Populated for every action now. The old registry carried it on 4 of 35 entries, which
43
+ // was an artifact of who edited it last rather than a distinction — nothing reads it, and
44
+ // ActionBar already groups by category elsewhere.
45
+ category: meta.category,
46
+ };
47
+ if (meta.suggestedRole !== undefined)
48
+ action.suggestedRole = meta.suggestedRole;
49
+ return action;
50
+ });
220
51
  }
@@ -5,10 +5,12 @@
5
5
  * document templates, and skills. The underlying platform is the same
6
6
  * for all types.
7
7
  */
8
- export type { ProjectTypeConfig, ProjectPhase, SuggestedAgent, DocumentTemplate, ActionMeta, SkillMeta, } from './types.js';
8
+ export type { ProjectTypeConfig, ProjectPhase, SuggestedAgent, DocumentTemplate, ActionMeta, MacroMeta, MacroCategory, } from './types.js';
9
9
  export { generalConfig, softwareConfig, researchConfig, businessPlanConfig, contentConfig, techDocsConfig, courseConfig, bookConfig, } from './configs.js';
10
- export { SKILL_META_REGISTRY, getSkillMeta, getAllSkillMeta } from './skill-meta.js';
11
- export { ACTION_META_REGISTRY, resolveActionMeta } from './action-meta.js';
10
+ export { MACRO_META_REGISTRY, getMacroMeta, getAllMacroMeta } from './macro-meta.js';
11
+ export { resolveActionMeta } from './action-meta.js';
12
+ export { getRelevantMacros } from './macro-relevance.js';
13
+ export type { MacroCapabilities } from './macro-relevance.js';
12
14
  import type { ProjectTypeConfig } from './types.js';
13
15
  /** All registered project types */
14
16
  export declare const PROJECT_TYPES: ProjectTypeConfig[];
@@ -8,8 +8,9 @@
8
8
  // Configs
9
9
  export { generalConfig, softwareConfig, researchConfig, businessPlanConfig, contentConfig, techDocsConfig, courseConfig, bookConfig, } from './configs.js';
10
10
  // Action & Skill metadata
11
- export { SKILL_META_REGISTRY, getSkillMeta, getAllSkillMeta } from './skill-meta.js';
12
- export { ACTION_META_REGISTRY, resolveActionMeta } from './action-meta.js';
11
+ export { MACRO_META_REGISTRY, getMacroMeta, getAllMacroMeta } from './macro-meta.js';
12
+ export { resolveActionMeta } from './action-meta.js';
13
+ export { getRelevantMacros } from './macro-relevance.js';
13
14
  import { resolveActionMeta } from './action-meta.js';
14
15
  import { generalConfig, softwareConfig, researchConfig, businessPlanConfig, contentConfig, techDocsConfig, courseConfig, bookConfig, } from './configs.js';
15
16
  /** All registered project types */
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Macro Metadata Registry — the single registry for every macro we ship.
3
+ *
4
+ * 55 entries: 42 platform macros, the 6 agents-library builtins they do not shadow, and the 7
5
+ * from agents-coding. Every id here is a MACRO — a named prompt the user invokes — never an
6
+ * installed Skill, which carries its own description in its SKILL.md.
7
+ *
8
+ * ⚠️ THERE USED TO BE THREE OF THESE. This one (unread, reachable only through an IPC channel
9
+ * nothing called), ACTION_META_REGISTRY (live, shorter labels), and a third inside Desktop
10
+ * (live, the slash menu). Each was missing what the others had: this one lacked all 8 canvas
11
+ * and 7 agents-coding macros, Desktop's lacked all 20 business/content/course/book ones. The
12
+ * failure mode was never an error — a macro with no entry renders as its raw id with a generic
13
+ * icon, so a business-plan project listed `business-vision`, `market-analysis`, … verbatim.
14
+ *
15
+ * `shortLabel` is why the merge is not lossy: ACTION_META's labels were shorter ON PURPOSE
16
+ * (a button in a row of six cannot say "Competitor Analysis"), so both survive here. Every one
17
+ * of its 35 labels is reproducible as `shortLabel ?? label`, asserted before it was deleted.
18
+ *
19
+ * Coverage is enforced, in both directions, by tests/skills/macro-meta-coverage.test.ts —
20
+ * derived from the macro sources themselves, never a hand-written list, because a hand-written
21
+ * list is precisely what produced three maps.
22
+ *
23
+ * Spec: project-docs/00-requirements/compilr-dev-sdk/macro-metadata-consolidation.md
24
+ */
25
+ import type { MacroMeta } from './types.js';
26
+ /** All macro UI metadata — platform macros + the agents library's builtins. */
27
+ export declare const MACRO_META_REGISTRY: Record<string, MacroMeta>;
28
+ /**
29
+ * Get macro metadata by ID.
30
+ *
31
+ * No internal caller: `buildMacroList` and `resolveActionMeta` read the registry directly.
32
+ * Kept as public API of a published package — but do not read its existence as evidence that
33
+ * something depends on it. The IPC channel that used to was deleted for being dead.
34
+ */
35
+ export declare function getMacroMeta(macroId: string): MacroMeta | undefined;
36
+ /**
37
+ * Get all macro metadata entries.
38
+ */
39
+ export declare function getAllMacroMeta(): MacroMeta[];