chore: include pre-built dist for github install
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Analyze mode keyword detector.
|
||||
*
|
||||
* Triggers on analysis-related keywords across multiple languages:
|
||||
* - English: analyze, analyse, investigate, examine, research, study, deep-dive, inspect, audit, evaluate, assess, review, diagnose, scrutinize, dissect, debug, comprehend, interpret, breakdown, understand, why is, how does, how to
|
||||
* - Korean: 분석, 조사, 파악, 연구, 검토, 진단, 이해, 설명, 원인, 이유, 뜯어봐, 따져봐, 평가, 해석, 디버깅, 디버그, 어떻게, 왜, 살펴
|
||||
* - Japanese: 分析, 調査, 解析, 検討, 研究, 診断, 理解, 説明, 検証, 精査, 究明, デバッグ, なぜ, どう, 仕組み
|
||||
* - Chinese: 调查, 检查, 剖析, 深入, 诊断, 解释, 调试, 为什么, 原理, 搞清楚, 弄明白
|
||||
* - Vietnamese: phân tích, điều tra, nghiên cứu, kiểm tra, xem xét, chẩn đoán, giải thích, tìm hiểu, gỡ lỗi, tại sao
|
||||
*/
|
||||
export declare const ANALYZE_PATTERN: RegExp;
|
||||
export declare const ANALYZE_MESSAGE = "[analyze-mode]\nANALYSIS MODE. Gather context before diving deep:\n\nCONTEXT GATHERING (parallel):\n- 1-2 explore agents (codebase patterns, implementations)\n- 1-2 librarian agents (if external library involved)\n- Direct tools: Grep, AST-grep, LSP for targeted searches\n\nIF COMPLEX - DO NOT STRUGGLE ALONE. Consult specialists:\n- **Oracle**: Conventional problems (architecture, debugging, complex logic)\n- **Artistry**: Non-conventional problems (different approach needed)\n\nSYNTHESIZE findings before proceeding.";
|
||||
@@ -0,0 +1 @@
|
||||
export { ANALYZE_PATTERN, ANALYZE_MESSAGE } from "./default";
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
export declare const CODE_BLOCK_PATTERN: RegExp;
|
||||
export declare const INLINE_CODE_PATTERN: RegExp;
|
||||
export { isPlannerAgent, getUltraworkMessage } from "./ultrawork";
|
||||
export { SEARCH_PATTERN, SEARCH_MESSAGE } from "./search";
|
||||
export { ANALYZE_PATTERN, ANALYZE_MESSAGE } from "./analyze";
|
||||
export type KeywordDetector = {
|
||||
pattern: RegExp;
|
||||
message: string | ((agentName?: string, modelID?: string) => string);
|
||||
};
|
||||
export declare const KEYWORD_DETECTORS: KeywordDetector[];
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
export interface DetectedKeyword {
|
||||
type: "ultrawork" | "search" | "analyze";
|
||||
message: string;
|
||||
}
|
||||
export declare function removeCodeBlocks(text: string): string;
|
||||
export declare function detectKeywords(text: string, agentName?: string, modelID?: string): string[];
|
||||
export declare function detectKeywordsWithType(text: string, agentName?: string, modelID?: string): DetectedKeyword[];
|
||||
export declare function extractPromptText(parts: Array<{
|
||||
type: string;
|
||||
text?: string;
|
||||
}>): string;
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
import type { PluginInput } from "@opencode-ai/plugin";
|
||||
import type { ContextCollector } from "../../features/context-injector";
|
||||
export declare function createKeywordDetectorHook(ctx: PluginInput, _collector?: ContextCollector): {
|
||||
"chat.message": (input: {
|
||||
sessionID: string;
|
||||
agent?: string;
|
||||
model?: {
|
||||
providerID: string;
|
||||
modelID: string;
|
||||
};
|
||||
messageID?: string;
|
||||
variant?: string;
|
||||
}, output: {
|
||||
message: Record<string, unknown>;
|
||||
parts: Array<{
|
||||
type: string;
|
||||
text?: string;
|
||||
[key: string]: unknown;
|
||||
}>;
|
||||
}) => Promise<void>;
|
||||
};
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
export * from "./detector";
|
||||
export * from "./constants";
|
||||
export * from "./types";
|
||||
export { createKeywordDetectorHook } from "./hook";
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Search mode keyword detector.
|
||||
*
|
||||
* Triggers on search-related keywords across multiple languages:
|
||||
* - English: search, find, locate, lookup, explore, discover, scan, grep, query, browse, detect, trace, seek, track, pinpoint, hunt, where is, show me, list all
|
||||
* - Korean: 검색, 찾아, 탐색, 조회, 스캔, 서치, 뒤져, 찾기, 어디, 추적, 탐지, 찾아봐, 찾아내, 보여줘, 목록
|
||||
* - Japanese: 検索, 探して, 見つけて, サーチ, 探索, スキャン, どこ, 発見, 捜索, 見つけ出す, 一覧
|
||||
* - Chinese: 搜索, 查找, 寻找, 查询, 检索, 定位, 扫描, 发现, 在哪里, 找出来, 列出
|
||||
* - Vietnamese: tìm kiếm, tra cứu, định vị, quét, phát hiện, truy tìm, tìm ra, ở đâu, liệt kê
|
||||
*/
|
||||
export declare const SEARCH_PATTERN: RegExp;
|
||||
export declare const SEARCH_MESSAGE = "[search-mode]\nMAXIMIZE SEARCH EFFORT. Launch multiple background agents IN PARALLEL:\n- explore agents (codebase patterns, file structures, ast-grep)\n- librarian agents (remote repos, official docs, GitHub examples)\nPlus direct tools: Grep, ripgrep (rg), ast-grep (sg)\nNEVER stop at first result - be exhaustive.";
|
||||
@@ -0,0 +1 @@
|
||||
export { SEARCH_PATTERN, SEARCH_MESSAGE } from "./default";
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
export interface KeywordDetectorState {
|
||||
detected: boolean;
|
||||
injected: boolean;
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+11
File diff suppressed because one or more lines are too long
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Ultrawork message module - routes to appropriate message based on agent/model.
|
||||
*
|
||||
* Routing:
|
||||
* 1. Planner agents (prometheus, plan) → planner.ts
|
||||
* 2. GPT models → gpt.ts
|
||||
* 3. Gemini models → gemini.ts
|
||||
* 4. Default (Claude, etc.) → default.ts (optimized for Claude series)
|
||||
*/
|
||||
export { isPlannerAgent, isGptModel, isGeminiModel, getUltraworkSource, } from "./source-detector";
|
||||
export type { UltraworkSource } from "./source-detector";
|
||||
export { ULTRAWORK_PLANNER_SECTION, getPlannerUltraworkMessage, } from "./planner";
|
||||
export { ULTRAWORK_GPT_MESSAGE, getGptUltraworkMessage } from "./gpt";
|
||||
export { ULTRAWORK_GEMINI_MESSAGE, getGeminiUltraworkMessage } from "./gemini";
|
||||
export { ULTRAWORK_DEFAULT_MESSAGE, getDefaultUltraworkMessage, } from "./default";
|
||||
/**
|
||||
* Gets the appropriate ultrawork message based on agent and model context.
|
||||
*/
|
||||
export declare function getUltraworkMessage(agentName?: string, modelID?: string): string;
|
||||
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Ultrawork message section for planner agents (Prometheus).
|
||||
* Planner agents should NOT be told to call plan agent - they ARE the planner.
|
||||
*/
|
||||
export declare const ULTRAWORK_PLANNER_SECTION = "## CRITICAL: YOU ARE A PLANNER, NOT AN IMPLEMENTER\n\n**IDENTITY CONSTRAINT (NON-NEGOTIABLE):**\nYou ARE the planner. You ARE NOT an implementer. You DO NOT write code. You DO NOT execute tasks.\n\n**TOOL RESTRICTIONS (SYSTEM-ENFORCED):**\n| Tool | Allowed | Blocked |\n|------|---------|---------|\n| Write/Edit | `.sisyphus/**/*.md` ONLY | Everything else |\n| Read | All files | - |\n| Bash | Research commands only | Implementation commands |\n| task | explore, librarian | - |\n\n**IF YOU TRY TO WRITE/EDIT OUTSIDE `.sisyphus/`:**\n- System will BLOCK your action\n- You will receive an error\n- DO NOT retry - you are not supposed to implement\n\n**YOUR ONLY WRITABLE PATHS:**\n- `.sisyphus/plans/*.md` - Final work plans\n- `.sisyphus/drafts/*.md` - Working drafts during interview\n\n**WHEN USER ASKS YOU TO IMPLEMENT:**\nREFUSE. Say: \"I'm a planner. I create work plans, not implementations. Run `/start-work` after I finish planning.\"\n\n---\n\n## CONTEXT GATHERING (MANDATORY BEFORE PLANNING)\n\nYou ARE the planner. Your job: create bulletproof work plans.\n**Before drafting ANY plan, gather context via explore/librarian agents.**\n\n### Research Protocol\n1. **Fire parallel background agents** for comprehensive context:\n ```\n task(subagent_type=\"explore\", load_skills=[], prompt=\"Find existing patterns for [topic] in codebase\", run_in_background=true)\n task(subagent_type=\"explore\", load_skills=[], prompt=\"Find test infrastructure and conventions\", run_in_background=true)\n task(subagent_type=\"librarian\", load_skills=[], prompt=\"Find official docs and best practices for [technology]\", run_in_background=true)\n ```\n2. **Wait for results** before planning - rushed plans fail\n3. **Synthesize findings** into informed requirements\n\n### What to Research\n- Existing codebase patterns and conventions\n- Test infrastructure (TDD possible?)\n- External library APIs and constraints\n- Similar implementations in OSS (via librarian)\n\n**NEVER plan blind. Context first, plan second.**\n\n---\n\n## MANDATORY OUTPUT: PARALLEL TASK GRAPH + TODO LIST\n\n**YOUR PRIMARY OUTPUT IS A PARALLEL EXECUTION TASK GRAPH.**\n\nWhen you finalize a plan, you MUST structure it for maximum parallel execution:\n\n### 1. Parallel Execution Waves (REQUIRED)\n\nAnalyze task dependencies and group independent tasks into parallel waves:\n\n```\nWave 1 (Start Immediately - No Dependencies):\n\u251C\u2500\u2500 Task 1: [description] \u2192 category: X, skills: [a, b]\n\u2514\u2500\u2500 Task 4: [description] \u2192 category: Y, skills: [c]\n\nWave 2 (After Wave 1 Completes):\n\u251C\u2500\u2500 Task 2: [depends: 1] \u2192 category: X, skills: [a]\n\u251C\u2500\u2500 Task 3: [depends: 1] \u2192 category: Z, skills: [d]\n\u2514\u2500\u2500 Task 5: [depends: 4] \u2192 category: Y, skills: [c]\n\nWave 3 (After Wave 2 Completes):\n\u2514\u2500\u2500 Task 6: [depends: 2, 3] \u2192 category: X, skills: [a, b]\n\nCritical Path: Task 1 \u2192 Task 2 \u2192 Task 6\nEstimated Parallel Speedup: ~40% faster than sequential\n```\n\n### 2. Dependency Matrix (REQUIRED)\n\n| Task | Depends On | Blocks | Can Parallelize With |\n|------|------------|--------|---------------------|\n| 1 | None | 2, 3 | 4 |\n| 2 | 1 | 6 | 3, 5 |\n| 3 | 1 | 6 | 2, 5 |\n| 4 | None | 5 | 1 |\n| 5 | 4 | None | 2, 3 |\n| 6 | 2, 3 | None | None (final) |\n\n### 3. TODO List Structure (REQUIRED)\n\nEach TODO item MUST include:\n\n```markdown\n- [ ] N. [Task Title]\n\n **What to do**: [Clear steps]\n \n **Dependencies**: [Task numbers this depends on] | None\n **Blocks**: [Task numbers that depend on this]\n **Parallel Group**: Wave N (with Tasks X, Y)\n \n **Recommended Agent Profile**:\n - **Category**: `[visual-engineering | ultrabrain | artistry | quick | unspecified-low | unspecified-high | writing]`\n - **Skills**: [`skill-1`, `skill-2`]\n \n **Acceptance Criteria**: [Verifiable conditions]\n```\n\n### 4. Agent Dispatch Summary (REQUIRED)\n\n| Wave | Tasks | Dispatch Command |\n|------|-------|------------------|\n| 1 | 1, 4 | `task(category=\"...\", load_skills=[...], run_in_background=false)` \u00D7 2 |\n| 2 | 2, 3, 5 | `task(...)` \u00D7 3 after Wave 1 completes |\n| 3 | 6 | `task(...)` final integration |\n\n**WHY PARALLEL TASK GRAPH IS MANDATORY:**\n- Orchestrator (Sisyphus) executes tasks in parallel waves\n- Independent tasks run simultaneously via background agents\n- Proper dependency tracking prevents race conditions\n- Category + skills ensure optimal model routing per task";
|
||||
export declare function getPlannerUltraworkMessage(): string;
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Agent/model detection utilities for ultrawork message routing.
|
||||
*
|
||||
* Routing logic:
|
||||
* 1. Planner agents (prometheus, plan) → planner.ts
|
||||
* 2. GPT 5.4 models → gpt5.4.ts
|
||||
* 3. Gemini models → gemini.ts
|
||||
* 4. Everything else (Claude, etc.) → default.ts
|
||||
*/
|
||||
import { isGptModel, isGeminiModel } from "../../../agents/types";
|
||||
/**
|
||||
* Checks if agent is a planner-type agent.
|
||||
* Planners don't need ultrawork injection (they ARE the planner).
|
||||
*/
|
||||
export declare function isPlannerAgent(agentName?: string): boolean;
|
||||
export { isGptModel, isGeminiModel };
|
||||
/** Ultrawork message source type */
|
||||
export type UltraworkSource = "planner" | "gpt" | "gemini" | "default";
|
||||
/**
|
||||
* Determines which ultrawork message source to use.
|
||||
*/
|
||||
export declare function getUltraworkSource(agentName?: string, modelID?: string): UltraworkSource;
|
||||
Reference in New Issue
Block a user