Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
82 lines
2.7 KiB
TypeScript
82 lines
2.7 KiB
TypeScript
import { getActionMeta } from '../../shared/types/AgentAction'
|
|
import type { AgentAction } from '../../shared/types/AgentAction'
|
|
import type { PromptPart } from '../../shared/types/PromptPart'
|
|
import type { SystemPromptCategory } from '../../shared/types/SystemPromptCategory'
|
|
|
|
export function getSystemPromptFlags(actions: AgentAction['_type'][], parts: PromptPart['type'][]) {
|
|
return {
|
|
// Communication
|
|
hasMessage: actions.includes('message'),
|
|
|
|
// Planning
|
|
hasThink: actions.includes('think'),
|
|
hasReview: actions.includes('review'),
|
|
hasSetMyView: actions.includes('setMyView'),
|
|
hasTodoList: actions.includes('update-todo-list') && parts.includes('todoList'),
|
|
hasAddDetail: actions.includes('add-detail'),
|
|
|
|
// Individual shapes
|
|
hasCreate: actions.includes('create'),
|
|
hasDelete: actions.includes('delete'),
|
|
hasUpdate: actions.includes('update'),
|
|
hasLabel: actions.includes('label'),
|
|
hasMove: actions.includes('move'),
|
|
|
|
// Groups of shapes
|
|
hasPlace: actions.includes('place'),
|
|
hasBringToFront: actions.includes('bringToFront'),
|
|
hasSendToBack: actions.includes('sendToBack'),
|
|
hasRotate: actions.includes('rotate'),
|
|
hasResize: actions.includes('resize'),
|
|
hasAlign: actions.includes('align'),
|
|
hasDistribute: actions.includes('distribute'),
|
|
hasStack: actions.includes('stack'),
|
|
hasClear: actions.includes('clear'),
|
|
|
|
// Drawing
|
|
hasPen: actions.includes('pen'),
|
|
|
|
// Request
|
|
hasMessagesPart: parts.includes('messages'),
|
|
hasDataPart: parts.includes('data'),
|
|
hasContextItemsPart: parts.includes('contextItems'),
|
|
|
|
// Viewport
|
|
hasScreenshotPart: parts.includes('screenshot'),
|
|
hasUserViewportBoundsPart: parts.includes('userViewportBounds'),
|
|
hasAgentViewportBoundsPart: parts.includes('agentViewportBounds'),
|
|
|
|
// Shapes
|
|
hasBlurryShapesPart: parts.includes('blurryShapes'),
|
|
hasPeripheralShapesPart: parts.includes('peripheralShapes'),
|
|
hasSelectedShapesPart: parts.includes('selectedShapes'),
|
|
|
|
// History
|
|
hasChatHistoryPart: parts.includes('chatHistory'),
|
|
hasUserActionHistoryPart: parts.includes('userActionHistory'),
|
|
hasTodoListPart: parts.includes('todoList'),
|
|
|
|
// Lints
|
|
hasCanvasLintsPart: parts.includes('canvasLints'),
|
|
|
|
// Metadata
|
|
hasTimePart: parts.includes('time'),
|
|
|
|
// Derived flags for convenience
|
|
canEdit: actions.some(isEditAction),
|
|
}
|
|
}
|
|
|
|
export type SystemPromptFlags = ReturnType<typeof getSystemPromptFlags>
|
|
|
|
function isEditAction(type: AgentAction['_type']): boolean {
|
|
return isActionCategory(type, 'edit')
|
|
}
|
|
|
|
function isActionCategory(type: AgentAction['_type'], category: SystemPromptCategory): boolean {
|
|
const meta = getActionMeta(type)
|
|
if (!meta) return false
|
|
if (!meta._systemPromptCategory) return false
|
|
return meta._systemPromptCategory === category
|
|
}
|