thread-master/frontend/src/lib/islander/config.ts

56 lines
1.6 KiB
TypeScript
Raw Normal View History

2026-06-26 08:37:04 +00:00
/** Islander interaction runtime — single source of truth for selectors & limits. */
export const ISLANDER_CONFIG = {
rootSelectors: ['.ac-app-shell', 'main', 'body'],
refAttr: 'data-islander-ref',
labelAttr: 'data-islander-label',
kindAttr: 'data-islander-kind',
ignoreAttr: 'data-islander-ignore',
pageTitleSelectors: ['[data-islander-page-title]', '.ac-title-bar', 'main h1'],
maxElements: 48,
maxAgentRounds: 4,
navigateWaitMs: 450,
actionBlockRe: '```islander-actions\\s*([\\s\\S]*?)```',
excludeSelectors: [
'.ac-islander',
'.ac-job-monitor',
`[data-islander-ignore]`,
'[aria-hidden="true"]',
'script',
'style',
'svg',
'path',
],
interactiveSelectors: [
'a[href]',
'button',
'input',
'textarea',
'select',
'summary',
'[role="button"]',
'[role="tab"]',
'[role="menuitem"]',
'[role="link"]',
'[role="switch"]',
'[role="checkbox"]',
'label[for]',
`[data-islander-label]`,
],
blockedClickPatterns: [/登出/i, /logout/i],
2026-06-26 16:02:06 +00:00
// 這些 action 會實際對外發布、啟動背景/付費任務或寫入後端,
// 必須由真人確認window.confirm不能只靠 AI 在 JSON 自填 confirm。
// 避免被海巡抓回的不可信貼文做 prompt injection 觸發自動發文。
dangerousActionTypes: [
'publishOutreach',
'publishCopyDraft',
'startViralScan',
'startCopyMissionAnalyze',
'startCopyMissionScan',
'generateCopyMatrix',
'generateCopyDraft',
] as string[],
2026-06-26 08:37:04 +00:00
defaultSuggestions: [] as string[],
highlightClass: 'ac-islander-target-highlight',
highlightDurationMs: 1800,
} as const