@skj1724/oh-my-opencode 3.19.1 → 3.19.4

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.
@@ -28,4 +28,5 @@ export * from "./agent-tool-restrictions";
28
28
  export * from "./model-requirements";
29
29
  export * from "./model-resolver";
30
30
  export * from "./model-availability";
31
+ export * from "./perf-timer";
31
32
  export * from "./case-insensitive";
@@ -0,0 +1,26 @@
1
+ export interface SpanData {
2
+ name: string;
3
+ durationMs: number;
4
+ start: number;
5
+ end: number;
6
+ }
7
+ export interface FormatDurationOptions {
8
+ precision?: "full" | "compact";
9
+ }
10
+ export declare class PerfTimer {
11
+ private marks;
12
+ private spans;
13
+ mark(name: string): void;
14
+ measure(name: string, startMark: string, endMark?: string): number;
15
+ getReport(): SpanData[];
16
+ reset(): void;
17
+ /**
18
+ * Format a duration between two Date objects into a human-readable string.
19
+ *
20
+ * @param start - Start date
21
+ * @param end - End date (defaults to now if undefined)
22
+ * @param options - Formatting options
23
+ * @returns "Xs", "Xm Ys", "Xh Ym Ys" or "Xh Ym" (compact)
24
+ */
25
+ static formatDuration(start: Date, end?: Date, options?: FormatDurationOptions): string;
26
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,3 @@
1
- export declare const BACKGROUND_TASK_DESCRIPTION = "Run agent task in background. Returns task_id immediately; notifies on completion.\n\nUse `background_output` to get results. Prompts MUST be in English.";
2
- export declare const BACKGROUND_OUTPUT_DESCRIPTION = "Get output from background task. System notifies on completion, so block=true rarely needed.";
3
- export declare const BACKGROUND_CANCEL_DESCRIPTION = "Cancel running background task(s). Use all=true to cancel ALL before final answer.";
1
+ export declare const BACKGROUND_TASK_DESCRIPTION = "\u5728\u540E\u53F0\u8FD0\u884C agent \u4EFB\u52A1\u3002\u7ACB\u5373\u8FD4\u56DE task_id\uFF0C\u5B8C\u6210\u540E\u901A\u77E5\u3002\n\n\u4F7F\u7528 `background_output` \u83B7\u53D6\u7ED3\u679C\u3002Prompts \u5FC5\u987B\u4E3A\u4E2D\u6587\u3002";
2
+ export declare const BACKGROUND_OUTPUT_DESCRIPTION = "\u83B7\u53D6\u540E\u53F0\u4EFB\u52A1\u7684\u8F93\u51FA\u3002\u7CFB\u7EDF\u5728\u4EFB\u52A1\u5B8C\u6210\u540E\u4F1A\u901A\u77E5\uFF0C\u56E0\u6B64 block=true \u5F88\u5C11\u9700\u8981\u3002";
3
+ export declare const BACKGROUND_CANCEL_DESCRIPTION = "\u53D6\u6D88\u6B63\u5728\u8FD0\u884C\u7684\u540E\u53F0\u4EFB\u52A1\u3002\u4F7F\u7528 all=true \u53EF\u5728\u6700\u7EC8\u56DE\u7B54\u524D\u53D6\u6D88\u6240\u6709\u4EFB\u52A1\u3002";
@@ -1,2 +1,2 @@
1
1
  export declare const ALLOWED_AGENTS: readonly ["explore", "librarian"];
2
- export declare const CALL_OMO_AGENT_DESCRIPTION = "Spawn explore/librarian agent. run_in_background REQUIRED (true=async with task_id, false=sync).\n\nAvailable: {agents}\n\nPass `session_id=<id>` to continue previous agent with full context. Prompts MUST be in English. Use `background_output` for async results.";
2
+ export declare const CALL_OMO_AGENT_DESCRIPTION = "\u542F\u52A8 explore/librarian agent\u3002run_in_background \u5FC5\u586B\uFF08true=\u5F02\u6B65\u8FD4\u56DE task_id\uFF0Cfalse=\u540C\u6B65\uFF09\u3002\n\n\u53EF\u7528\u7684 agent\uFF1A{agents}\n\n\u4F20\u5165 `session_id=<id>` \u53EF\u7EE7\u7EED\u4E4B\u524D\u7684 agent\uFF0C\u4FDD\u7559\u5B8C\u6574\u4E0A\u4E0B\u6587\u3002Prompts \u5FC5\u987B\u4E3A\u4E2D\u6587\u3002\u4F7F\u7528 `background_output` \u83B7\u53D6\u5F02\u6B65\u7ED3\u679C\u3002";
@@ -4,9 +4,9 @@ export declare const PART_STORAGE: string;
4
4
  export declare const SESSION_STORAGE: string;
5
5
  export declare const TODO_DIR: string;
6
6
  export declare const TRANSCRIPT_DIR: string;
7
- export declare const SESSION_LIST_DESCRIPTION = "List all OpenCode sessions with optional filtering.\n\nReturns a list of available session IDs with metadata including message count, date range, and agents used.\n\nArguments:\n- limit (optional): Maximum number of sessions to return\n- from_date (optional): Filter sessions from this date (ISO 8601 format)\n- to_date (optional): Filter sessions until this date (ISO 8601 format)\n\nExample output:\n| Session ID | Messages | First | Last | Agents |\n|------------|----------|-------|------|--------|\n| ses_abc123 | 45 | 2025-12-20 | 2025-12-24 | build, oracle |\n| ses_def456 | 12 | 2025-12-19 | 2025-12-19 | build |";
8
- export declare const SESSION_READ_DESCRIPTION = "Read messages and history from an OpenCode session.\n\nReturns a formatted view of session messages with role, timestamp, and content. Optionally includes todos and transcript data.\n\nArguments:\n- session_id (required): Session ID to read\n- include_todos (optional): Include todo list if available (default: false)\n- include_transcript (optional): Include transcript log if available (default: false)\n- limit (optional): Maximum number of messages to return (default: all)\n\nExample output:\nSession: ses_abc123\nMessages: 45\nDate Range: 2025-12-20 to 2025-12-24\n\n[Message 1] user (2025-12-20 10:30:00)\nHello, can you help me with...\n\n[Message 2] assistant (2025-12-20 10:30:15)\nOf course! Let me help you with...";
9
- export declare const SESSION_SEARCH_DESCRIPTION = "Search for content within OpenCode session messages.\n\nPerforms full-text search across session messages and returns matching excerpts with context.\n\nArguments:\n- query (required): Search query string\n- session_id (optional): Search within specific session only (default: all sessions)\n- case_sensitive (optional): Case-sensitive search (default: false)\n- limit (optional): Maximum number of results to return (default: 20)\n\nExample output:\nFound 3 matches across 2 sessions:\n\n[ses_abc123] Message msg_001 (user)\n...implement the **session manager** tool...\n\n[ses_abc123] Message msg_005 (assistant)\n...I'll create a **session manager** with full search...\n\n[ses_def456] Message msg_012 (user)\n...use the **session manager** to find...";
10
- export declare const SESSION_INFO_DESCRIPTION = "Get metadata and statistics about an OpenCode session.\n\nReturns detailed information about a session including message count, date range, agents used, and available data sources.\n\nArguments:\n- session_id (required): Session ID to inspect\n\nExample output:\nSession ID: ses_abc123\nMessages: 45\nDate Range: 2025-12-20 10:30:00 to 2025-12-24 15:45:30\nDuration: 4 days, 5 hours\nAgents Used: build, oracle, librarian\nHas Todos: Yes (12 items, 8 completed)\nHas Transcript: Yes (234 entries)";
11
- export declare const SESSION_DELETE_DESCRIPTION = "Delete an OpenCode session and all associated data.\n\nRemoves session messages, parts, todos, and transcript. This operation cannot be undone.\n\nArguments:\n- session_id (required): Session ID to delete\n- confirm (required): Must be true to confirm deletion\n\nExample:\nsession_delete(session_id=\"ses_abc123\", confirm=true)\nSuccessfully deleted session ses_abc123";
7
+ export declare const SESSION_LIST_DESCRIPTION = "\u5217\u51FA\u6240\u6709 OpenCode session\uFF0C\u652F\u6301\u53EF\u9009\u8FC7\u6EE4\u3002\n\n\u8FD4\u56DE\u53EF\u7528\u7684 session ID \u5217\u8868\uFF0C\u5305\u542B\u6D88\u606F\u6570\u91CF\u3001\u65E5\u671F\u8303\u56F4\u548C\u4F7F\u7528\u8FC7\u7684 agents \u7B49\u5143\u6570\u636E\u3002\n\n\u53C2\u6570\uFF1A\n- limit\uFF08\u53EF\u9009\uFF09\uFF1A\u6700\u5927\u8FD4\u56DE session \u6570\u91CF\n- from_date\uFF08\u53EF\u9009\uFF09\uFF1A\u8FC7\u6EE4\u6B64\u65E5\u671F\u4E4B\u540E\u7684 session\uFF08ISO 8601 \u683C\u5F0F\uFF09\n- to_date\uFF08\u53EF\u9009\uFF09\uFF1A\u8FC7\u6EE4\u6B64\u65E5\u671F\u4E4B\u524D\u7684 session\uFF08ISO 8601 \u683C\u5F0F\uFF09\n\n\u8F93\u51FA\u793A\u4F8B\uFF1A\n| Session ID | Messages | First | Last | Agents |\n|------------|----------|-------|------|--------|\n| ses_abc123 | 45 | 2025-12-20 | 2025-12-24 | build, oracle |\n| ses_def456 | 12 | 2025-12-19 | 2025-12-19 | build |";
8
+ export declare const SESSION_READ_DESCRIPTION = "\u8BFB\u53D6 OpenCode session \u4E2D\u7684\u6D88\u606F\u548C\u5386\u53F2\u8BB0\u5F55\u3002\n\n\u8FD4\u56DE\u683C\u5F0F\u5316\u7684 session \u6D88\u606F\u89C6\u56FE\uFF0C\u5305\u542B\u89D2\u8272\u3001\u65F6\u95F4\u6233\u548C\u5185\u5BB9\u3002\u53EF\u9009\u62E9\u5305\u542B todo \u548C transcript \u6570\u636E\u3002\n\n\u53C2\u6570\uFF1A\n- session_id\uFF08\u5FC5\u586B\uFF09\uFF1A\u8981\u8BFB\u53D6\u7684 Session ID\n- include_todos\uFF08\u53EF\u9009\uFF09\uFF1A\u5305\u542B todo \u5217\u8868\uFF08\u5982\u679C\u6709\u7684\u8BDD\uFF09\uFF08\u9ED8\u8BA4\u503C: false\uFF09\n- include_transcript\uFF08\u53EF\u9009\uFF09\uFF1A\u5305\u542B transcript \u65E5\u5FD7\uFF08\u5982\u679C\u6709\u7684\u8BDD\uFF09\uFF08\u9ED8\u8BA4\u503C: false\uFF09\n- limit\uFF08\u53EF\u9009\uFF09\uFF1A\u6700\u5927\u8FD4\u56DE\u6D88\u606F\u6570\u91CF\uFF08\u9ED8\u8BA4\u503C: \u5168\u90E8\uFF09\n\n\u8F93\u51FA\u793A\u4F8B\uFF1A\nSession: ses_abc123\nMessages: 45\nDate Range: 2025-12-20 to 2025-12-24\n\n[Message 1] user (2025-12-20 10:30:00)\nHello, can you help me with...\n\n[Message 2] assistant (2025-12-20 10:30:15)\nOf course! Let me help you with...";
9
+ export declare const SESSION_SEARCH_DESCRIPTION = "\u5728 OpenCode session \u6D88\u606F\u4E2D\u641C\u7D22\u5185\u5BB9\u3002\n\n\u5BF9 session \u6D88\u606F\u6267\u884C\u5168\u6587\u641C\u7D22\uFF0C\u8FD4\u56DE\u5339\u914D\u7684\u6458\u8981\u53CA\u4E0A\u4E0B\u6587\u3002\n\n\u53C2\u6570\uFF1A\n- query\uFF08\u5FC5\u586B\uFF09\uFF1A\u641C\u7D22\u67E5\u8BE2\u5B57\u7B26\u4E32\n- session_id\uFF08\u53EF\u9009\uFF09\uFF1A\u4EC5\u5728\u6307\u5B9A session \u4E2D\u641C\u7D22\uFF08\u9ED8\u8BA4\u503C: \u5168\u90E8 session\uFF09\n- case_sensitive\uFF08\u53EF\u9009\uFF09\uFF1A\u533A\u5206\u5927\u5C0F\u5199\u641C\u7D22\uFF08\u9ED8\u8BA4\u503C: false\uFF09\n- limit\uFF08\u53EF\u9009\uFF09\uFF1A\u6700\u5927\u8FD4\u56DE\u7ED3\u679C\u6570\u91CF\uFF08\u9ED8\u8BA4\u503C: 20\uFF09\n\n\u8F93\u51FA\u793A\u4F8B\uFF1A\n\u5728 2 \u4E2A session \u4E2D\u627E\u5230 3 \u6761\u5339\u914D\uFF1A\n\n[ses_abc123] Message msg_001 (user)\n...implement the **session manager** tool...\n\n[ses_abc123] Message msg_005 (assistant)\n...I'll create a **session manager** with full search...\n\n[ses_def456] Message msg_012 (user)\n...use the **session manager** to find...";
10
+ export declare const SESSION_INFO_DESCRIPTION = "\u83B7\u53D6 OpenCode session \u7684\u5143\u6570\u636E\u548C\u7EDF\u8BA1\u4FE1\u606F\u3002\n\n\u8FD4\u56DE session \u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u5305\u62EC\u6D88\u606F\u6570\u91CF\u3001\u65E5\u671F\u8303\u56F4\u3001\u4F7F\u7528\u8FC7\u7684 agents \u548C\u53EF\u7528\u7684\u6570\u636E\u6E90\u3002\n\n\u53C2\u6570\uFF1A\n- session_id\uFF08\u5FC5\u586B\uFF09\uFF1A\u8981\u67E5\u770B\u7684 Session ID\n\n\u8F93\u51FA\u793A\u4F8B\uFF1A\nSession ID: ses_abc123\nMessages: 45\nDate Range: 2025-12-20 10:30:00 to 2025-12-24 15:45:30\nDuration: 4 days, 5 hours\nAgents Used: build, oracle, librarian\nHas Todos: Yes (12 items, 8 completed)\nHas Transcript: Yes (234 entries)";
11
+ export declare const SESSION_DELETE_DESCRIPTION = "\u5220\u9664 OpenCode session \u53CA\u5176\u6240\u6709\u5173\u8054\u6570\u636E\u3002\n\n\u5220\u9664 session \u7684\u6D88\u606F\u3001parts\u3001todos \u548C transcript\u3002\u6B64\u64CD\u4F5C\u65E0\u6CD5\u64A4\u9500\u3002\n\n\u53C2\u6570\uFF1A\n- session_id\uFF08\u5FC5\u586B\uFF09\uFF1A\u8981\u5220\u9664\u7684 Session ID\n- confirm\uFF08\u5FC5\u586B\uFF09\uFF1A\u5FC5\u987B\u4E3A true \u624D\u80FD\u786E\u8BA4\u5220\u9664\n\n\u793A\u4F8B\uFF1A\nsession_delete(session_id=\"ses_abc123\", confirm=true)\nSuccessfully deleted session ses_abc123";
12
12
  export declare const TOOL_NAME_PREFIX = "session_";
@@ -1,3 +1,3 @@
1
1
  export declare const TOOL_NAME: "skill";
2
- export declare const TOOL_DESCRIPTION_NO_SKILLS = "Load a skill to get detailed instructions for a specific task. No skills are currently available.";
3
- export declare const TOOL_DESCRIPTION_PREFIX = "Load a skill to get detailed instructions for a specific task.\n\nSkills provide specialized knowledge and step-by-step guidance.\nUse this when a task matches an available skill's description.";
2
+ export declare const TOOL_DESCRIPTION_NO_SKILLS = "\u52A0\u8F7D skill \u4EE5\u83B7\u53D6\u7279\u5B9A\u4EFB\u52A1\u7684\u8BE6\u7EC6\u8BF4\u660E\u3002\u5F53\u524D\u6CA1\u6709\u53EF\u7528\u7684 skills\u3002";
3
+ export declare const TOOL_DESCRIPTION_PREFIX = "\u52A0\u8F7D skill \u4EE5\u83B7\u53D6\u7279\u5B9A\u4EFB\u52A1\u7684\u8BE6\u7EC6\u8BF4\u660E\u3002\n\nSkills \u63D0\u4F9B\u4E13\u4E1A\u77E5\u8BC6\u548C\u5206\u6B65\u6307\u5BFC\u3002\n\u5F53\u4EFB\u52A1\u4E0E\u53EF\u7528 skill \u7684\u63CF\u8FF0\u76F8\u5339\u914D\u65F6\u4F7F\u7528\u6B64\u5DE5\u5177\u3002";
@@ -1,2 +1,2 @@
1
1
  export declare const SKILL_MCP_TOOL_NAME = "skill_mcp";
2
- export declare const SKILL_MCP_DESCRIPTION = "Invoke MCP server operations from skill-embedded MCPs. Requires mcp_name plus exactly one of: tool_name, resource_name, or prompt_name.";
2
+ export declare const SKILL_MCP_DESCRIPTION = "\u4ECE skill \u5D4C\u5165\u7684 MCP \u8C03\u7528 MCP server \u64CD\u4F5C\u3002\u9700\u8981 mcp_name \u5E76\u6070\u597D\u9009\u62E9\u4EE5\u4E0B\u4E4B\u4E00\uFF1Atool_name\u3001resource_name \u6216 prompt_name\u3002";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skj1724/oh-my-opencode",
3
- "version": "3.19.1",
3
+ "version": "3.19.4",
4
4
  "description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",