gemiterm 2.0.0 → 2.1.1

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 (155) hide show
  1. package/README.md +32 -9
  2. package/package.json +13 -4
  3. package/src/cli/command-registry.ts +66 -62
  4. package/src/cli/commands/continue-command.ts +75 -1
  5. package/src/cli/commands/install-skills-command.ts +35 -0
  6. package/src/cli/commands/new-command.ts +62 -0
  7. package/src/cli/index.ts +19 -44
  8. package/src/cli/utils/long-arg-guard.ts +28 -0
  9. package/src/cli/utils/prompt-file.ts +26 -0
  10. package/src/infrastructure/cli-parser.ts +77 -0
  11. package/src/infrastructure/io.ts +9 -0
  12. package/src/services/skills-cli-driver.ts +58 -0
  13. package/src/services/skills-service.ts +52 -0
  14. package/.env +0 -2
  15. package/.github/workflows/manual-release.yml +0 -34
  16. package/.github/workflows/release.yml +0 -198
  17. package/.github/workflows/test.yml +0 -29
  18. package/.opencode/commands/opsx-apply.md +0 -152
  19. package/.opencode/commands/opsx-archive.md +0 -157
  20. package/.opencode/commands/opsx-explore.md +0 -169
  21. package/.opencode/commands/opsx-propose.md +0 -104
  22. package/.opencode/commands/opsx-sync.md +0 -140
  23. package/.opencode/commands/search-intelligently.md +0 -9
  24. package/.opencode/opencode.json +0 -20
  25. package/.opencode/skills/intellisearch/.version +0 -1
  26. package/.opencode/skills/intellisearch/SKILL.md +0 -84
  27. package/.opencode/skills/intellisearch/references/brave-search.md +0 -67
  28. package/.opencode/skills/intellisearch/references/ddg-search.md +0 -79
  29. package/.opencode/skills/intellisearch/references/deepwiki-tools.md +0 -246
  30. package/.opencode/skills/intellisearch/references/examples.md +0 -97
  31. package/.opencode/skills/intellisearch/references/gh-cli.md +0 -143
  32. package/.opencode/skills/intellisearch/references/google-search.md +0 -40
  33. package/.opencode/skills/intellisearch/references/search-workflow.md +0 -143
  34. package/.opencode/skills/intellisearch/references/workflow.md +0 -115
  35. package/.opencode/skills/openspec-apply-change/SKILL.md +0 -159
  36. package/.opencode/skills/openspec-archive-change/SKILL.md +0 -117
  37. package/.opencode/skills/openspec-explore/SKILL.md +0 -287
  38. package/.opencode/skills/openspec-propose/SKILL.md +0 -111
  39. package/.opencode/skills/openspec-sync-specs/SKILL.md +0 -147
  40. package/.serena/project.yml +0 -133
  41. package/AGENTS.md +0 -136
  42. package/CHANGELOG.md +0 -3
  43. package/bun.lock +0 -105
  44. package/docs/INSTALL.md +0 -185
  45. package/docs/PLAYWRIGHT_CLI_API.md +0 -306
  46. package/docs/python-release-for-reference.md +0 -175
  47. package/examples/sample_json_export.json +0 -32
  48. package/examples/sample_markdown_export.md +0 -221
  49. package/examples/usage_examples.sh +0 -222
  50. package/install.ps1 +0 -264
  51. package/install.sh +0 -275
  52. package/openspec/MAESTRO_MIGRATION.md +0 -180
  53. package/openspec/changes/archive/2026-06-08-command-spec-conformance/.openspec.yaml +0 -2
  54. package/openspec/changes/archive/2026-06-08-command-spec-conformance/design.md +0 -194
  55. package/openspec/changes/archive/2026-06-08-command-spec-conformance/proposal.md +0 -52
  56. package/openspec/changes/archive/2026-06-08-command-spec-conformance/specs/multi-profile-conversations/spec.md +0 -133
  57. package/openspec/changes/archive/2026-06-08-command-spec-conformance/tasks.md +0 -95
  58. package/openspec/changes/archive/2026-06-09-refactor-interactive-prompt-loop/.openspec.yaml +0 -2
  59. package/openspec/changes/archive/2026-06-09-refactor-interactive-prompt-loop/design.md +0 -28
  60. package/openspec/changes/archive/2026-06-09-refactor-interactive-prompt-loop/proposal.md +0 -22
  61. package/openspec/changes/archive/2026-06-09-refactor-interactive-prompt-loop/specs/interactive-prompt-loop/spec.md +0 -35
  62. package/openspec/changes/archive/2026-06-09-refactor-interactive-prompt-loop/tasks.md +0 -28
  63. package/openspec/changes/archive/2026-06-09-replace-gemini-api-placeholder-with-gemini-reverse/.openspec.yaml +0 -2
  64. package/openspec/changes/archive/2026-06-09-replace-gemini-api-placeholder-with-gemini-reverse/design.md +0 -323
  65. package/openspec/changes/archive/2026-06-09-replace-gemini-api-placeholder-with-gemini-reverse/proposal.md +0 -122
  66. package/openspec/changes/archive/2026-06-09-replace-gemini-api-placeholder-with-gemini-reverse/specs/no-capability-changes/spec.md +0 -29
  67. package/openspec/changes/archive/2026-06-09-replace-gemini-api-placeholder-with-gemini-reverse/tasks.md +0 -172
  68. package/openspec/changes/archive/2026-06-09-v2-install-migration/.openspec.yaml +0 -2
  69. package/openspec/changes/archive/2026-06-09-v2-install-migration/design.md +0 -241
  70. package/openspec/changes/archive/2026-06-09-v2-install-migration/proposal.md +0 -41
  71. package/openspec/changes/archive/2026-06-09-v2-install-migration/specs/v2-installer/spec.md +0 -205
  72. package/openspec/changes/archive/2026-06-09-v2-install-migration/tasks.md +0 -97
  73. package/openspec/changes/commander-cli-parser/.openspec.yaml +0 -2
  74. package/openspec/changes/commander-cli-parser/design.md +0 -107
  75. package/openspec/changes/commander-cli-parser/proposal.md +0 -31
  76. package/openspec/changes/commander-cli-parser/specs/cli/spec.md +0 -48
  77. package/openspec/changes/commander-cli-parser/tasks.md +0 -33
  78. package/openspec/changes/cross-platform-build-and-ci/.openspec.yaml +0 -2
  79. package/openspec/changes/cross-platform-build-and-ci/design.md +0 -213
  80. package/openspec/changes/cross-platform-build-and-ci/proposal.md +0 -50
  81. package/openspec/changes/cross-platform-build-and-ci/specs/path-and-file-mediation/spec.md +0 -335
  82. package/openspec/changes/cross-platform-build-and-ci/specs/release-pipeline/spec.md +0 -95
  83. package/openspec/changes/cross-platform-build-and-ci/tasks.md +0 -164
  84. package/openspec/config.yaml +0 -20
  85. package/openspec/specs/auth/spec.md +0 -394
  86. package/openspec/specs/cli/spec.md +0 -108
  87. package/openspec/specs/commands/spec.md +0 -409
  88. package/openspec/specs/configuration/spec.md +0 -130
  89. package/openspec/specs/conversations/spec.md +0 -139
  90. package/openspec/specs/domain-model/spec.md +0 -128
  91. package/openspec/specs/formatters/spec.md +0 -158
  92. package/openspec/specs/install-browser/spec.md +0 -146
  93. package/openspec/specs/interactive-prompt-loop/spec.md +0 -41
  94. package/openspec/specs/logger/spec.md +0 -71
  95. package/openspec/specs/mediator/spec.md +0 -72
  96. package/openspec/specs/multi-profile-conversations/spec.md +0 -145
  97. package/openspec/specs/path-utils/spec.md +0 -101
  98. package/openspec/specs/profiles/spec.md +0 -94
  99. package/openspec/specs/storage/spec.md +0 -198
  100. package/openspec/specs/testing/spec.md +0 -237
  101. package/openspec/specs/v2-installer/spec.md +0 -205
  102. package/openspec/specs/validators/spec.md +0 -65
  103. package/scripts/build.ts +0 -88
  104. package/scripts/clean-build.ps1 +0 -4
  105. package/scripts/clean-build.sh +0 -5
  106. package/scripts/install-browser.ps1 +0 -5
  107. package/scripts/install-browser.sh +0 -6
  108. package/scripts/lint-path-mediation.ps1 +0 -65
  109. package/scripts/lint-path-mediation.sh +0 -40
  110. package/tests/cli/auth-command.test.ts +0 -220
  111. package/tests/cli/command-registry.test.ts +0 -67
  112. package/tests/cli/continue-command.test.ts +0 -100
  113. package/tests/cli/delete-command.test.ts +0 -128
  114. package/tests/cli/export-all-command.test.ts +0 -375
  115. package/tests/cli/install-browser-command.test.ts +0 -48
  116. package/tests/cli/list-command.test.ts +0 -179
  117. package/tests/cli/new-command.test.ts +0 -139
  118. package/tests/cli/status-command.test.ts +0 -106
  119. package/tests/core/query-handlers.test.ts +0 -187
  120. package/tests/fixtures/auth-fixtures.ts +0 -98
  121. package/tests/fixtures/chat-fixtures.ts +0 -87
  122. package/tests/infrastructure/cli-table.test.ts +0 -107
  123. package/tests/infrastructure/formatters.test.ts +0 -202
  124. package/tests/infrastructure/io.test.ts +0 -197
  125. package/tests/infrastructure/logger.test.ts +0 -74
  126. package/tests/infrastructure/storage.test.ts +0 -335
  127. package/tests/infrastructure/validators.test.ts +0 -67
  128. package/tests/integration/commands/auth.test.ts +0 -186
  129. package/tests/integration/commands/continue.test.ts +0 -130
  130. package/tests/integration/commands/delete.test.ts +0 -140
  131. package/tests/integration/commands/export.test.ts +0 -266
  132. package/tests/integration/commands/fetch.test.ts +0 -238
  133. package/tests/integration/commands/list.test.ts +0 -281
  134. package/tests/integration/commands/profile.test.ts +0 -258
  135. package/tests/integration/commands/status.test.ts +0 -223
  136. package/tests/integration/installer-script-shape.test.ts +0 -67
  137. package/tests/parity/compare-outputs.ts +0 -359
  138. package/tests/parity/test-commands-parity.ps1 +0 -82
  139. package/tests/parity/test-commands-parity.sh +0 -61
  140. package/tests/services/auth-service.test.ts +0 -315
  141. package/tests/services/cookie-monitor.test.ts +0 -229
  142. package/tests/services/cookie-storage-service.test.ts +0 -230
  143. package/tests/services/gemini-client-wrapper.test.ts +0 -688
  144. package/tests/services/install-browser-service.test.ts +0 -83
  145. package/tests/services/playwright-cli-driver.test.ts +0 -468
  146. package/tests/services/profile-auth-manager.test.ts +0 -334
  147. package/tests/services/profile-service.test.ts +0 -224
  148. package/tests/setup.ts +0 -95
  149. package/tests/smoke/smoke.test.ts +0 -52
  150. package/tests/unit/config.test.ts +0 -159
  151. package/tests/unit/errors.test.ts +0 -119
  152. package/tests/unit/formatters.test.ts +0 -316
  153. package/tests/unit/mediator.test.ts +0 -152
  154. package/tests/unit/path-utils.test.ts +0 -289
  155. package/tsconfig.json +0 -16
@@ -1,67 +0,0 @@
1
- # Brave Search Operators
2
-
3
- Source: https://search.brave.com/help/operators
4
-
5
- ## File & Content Operators
6
-
7
- | Operator | Syntax | Example | Purpose |
8
- |----------|--------|---------|---------|
9
- | File extension | `ext:ext` | `honda gx120 manual ext:pdf` | Specific file extension |
10
- | File type | `filetype:type` | `evaluation filetype:pdf` | File type (pdf, doc, etc.) |
11
- | In body | `inbody:term` | `nvidia 1080 ti inbody:"founders edition"` | Term in page body |
12
- | In title | `intitle:term` | `seo conference intitle:2023` | Term in page title |
13
- | In page | `inpage:term` | `oscars 2024 inpage:"best costume"` | Term in title or body |
14
-
15
- ## Location & Language Operators
16
-
17
- | Operator | Syntax | Example | Purpose |
18
- |----------|--------|---------|---------|
19
- | Language | `lang:code` or `language:code` | `visas lang:es` | Language (ISO 639-1 code) |
20
- | Location | `loc:code` or `location:code` | `niagara falls loc:ca` | Country/region (ISO 3166-1 alpha-2) |
21
-
22
- ## Site & Term Operators
23
-
24
- | Operator | Syntax | Example | Purpose |
25
- |----------|--------|---------|---------|
26
- | Site | `site:domain.com` | `goggles site:brave.com` | Search specific site |
27
- | Include | `+term` | `gpu +freesync` | Must contain term |
28
- | Exclude | `-term` | `office -microsoft` | Must not contain term |
29
- | Exact match | `"phrase"` | `"order of the phoenix"` | Exact phrase |
30
-
31
- ## Logical Operators
32
-
33
- | Operator | Syntax | Example | Purpose |
34
- |----------|--------|---------|---------|
35
- | AND | `term AND term` | `visa loc:gb AND lang:en` | All conditions met |
36
- | OR | `term OR term` | `inpage:australia OR inpage:"new zealand"` | Any condition met |
37
- | NOT | `term NOT condition` | `brave search NOT site:brave.com` | Excludes condition |
38
-
39
- ## Usage Notes
40
-
41
- <important>
42
- - Search operators are experimental and in early development
43
- - Can place operators anywhere in query
44
- - Language codes: ISO 639-1 (en, es, fr, etc.)
45
- - Country codes: ISO 3166-1 alpha-2 (us, ca, gb, etc.)
46
- </important>
47
-
48
- ## Common Patterns for Technical Search
49
-
50
- <patterns>
51
- ```bash
52
- # Find documentation files
53
- "user guide" filetype:pdf
54
-
55
- # Language-specific results
56
- react hooks typescript tutorial lang:en
57
-
58
- # Combined conditions
59
- typescript validator intitle:library AND loc:us
60
-
61
- # Exclude specific results
62
- graph database library -mongodb
63
-
64
- # Package search
65
- npm package semver validation
66
- ```
67
- </patterns>
@@ -1,79 +0,0 @@
1
- # DuckDuckGo Search Operators
2
-
3
- Source: https://duckduckgo.com/duckduckgo-help-pages/results/syntax
4
-
5
- ## Basic Operators
6
-
7
- | Operator | Syntax | Example | Purpose |
8
- |----------|--------|---------|---------|
9
- | Exact match | `"phrase"` | `"cats and dogs"` | Exact phrase match |
10
- | Semantic similar | `~"phrase"` | `~"cats and dogs"` | Semantically similar results (experimental) |
11
- | Include more | `term +term2` | `cats +dogs` | More emphasis on term |
12
- | Exclude | `term -term2` | `cats -dogs` | Exclude term from results |
13
-
14
- ## File & Site Operators
15
-
16
- | Operator | Syntax | Example | Purpose |
17
- |----------|--------|---------|---------|
18
- | File type | `filetype:type` | `cats filetype:pdf` | Specific file type |
19
- | Site search | `site:domain.com` | `dogs site:example.com` | Search specific site |
20
- | Exclude site | `-site:domain.com` | `cats -site:example.com` | Exclude specific site |
21
-
22
- ## Page Location Operators
23
-
24
- | Operator | Syntax | Example | Purpose |
25
- |----------|--------|---------|---------|
26
- | In title | `intitle:term` | `intitle:dogs` | Term in page title |
27
- | In URL | `inurl:term` | `inurl:cats` | Term in page URL |
28
-
29
- ## Navigation Operators
30
-
31
- | Operator | Syntax | Example | Purpose |
32
- |----------|--------|---------|---------|
33
- | Go to first | `\term` | `\futurama` | Navigate to first result |
34
- | Bang shortcut | `!site term` | `!a blink182` | Search on other site directly |
35
- | Safe search on | `!safeon` | `term !safeon` | Enable safe search |
36
- | Safe search off | `!safeoff` | `term !safeoff` | Disable safe search |
37
-
38
- ## Supported File Types
39
-
40
- <file_types>
41
- - `pdf` - PDF documents
42
- - `doc` / `docx` - Word documents
43
- - `xls` / `xlsx` - Excel spreadsheets
44
- - `ppt` / `pptx` - PowerPoint presentations
45
- - `html` - HTML files
46
- </file_types>
47
-
48
- ## Usage Notes
49
-
50
- <important>
51
- - If no results found with advanced syntax, related results may be shown
52
- - Bang shortcuts search other sites' search engines (subject to that site's policies)
53
- - Thousands of bang shortcuts available (see: https://duckduckgo.com/bang)
54
- - Note: Some advanced syntax may not work correctly on all queries
55
- </important>
56
-
57
- ## Common Patterns for Technical Search
58
-
59
- <patterns>
60
- ```bash
61
- # Find libraries
62
- typescript validation library
63
-
64
- # Exact phrase
65
- "semantic versioning" npm package
66
-
67
- # File type filter
68
- "readme" filetype:md tutorial
69
-
70
- # Title search
71
- intitle:react hooks typescript
72
-
73
- # Combined
74
- semver validation -test intitle:library
75
-
76
- # Package search
77
- nodejs graph database library
78
- ```
79
- </patterns>
@@ -1,246 +0,0 @@
1
- # DeepWiki Tools Reference
2
-
3
- Complete reference for DeepWiki MCP server tools for repository documentation Q&A.
4
-
5
- ## MCP Configuration Requirement
6
-
7
- DeepWiki MCP tools require configuration in `.opencode/opencode.json`:
8
-
9
- ```json
10
- {
11
- "mcp": {
12
- "deepwiki": {
13
- "type": "remote",
14
- "url": "https://mcp.deepwiki.com/mcp",
15
- "enabled": true
16
- }
17
- }
18
- }
19
- ```
20
-
21
- <critical_rules priority="highest">
22
- <rule>Validate repo name against blocked list before calling</rule>
23
- <rule>Use string for single repo: `repoName="owner/repo"`</rule>
24
- <rule>Use array for multiple repos: `repoName=["owner1/repo1", "owner2/repo2"]` (2+ items)</rule>
25
- <rule>NEVER use single-item array: `repoName=["owner/repo"]` (causes failure)</rule>
26
- <rule>If deepwiki tools aren't available, use direct HTTP calls via `curl`. See Fallback section below.</rule>
27
- <rule>"OpenCode" never refers to the archived and deprecated "opencode-ai/opencode" github repo. "OpenCode" always refers to "anomalyco/opencode" owned by "anomalyco" in github.</rule>
28
- </critical_rules>
29
-
30
- ## Fallback: Missing DeepWiki MCP
31
-
32
- When MCP tools are not configured, use direct HTTP calls via curl:
33
-
34
- ### ask_question
35
-
36
- <bash_command name="ask_question">
37
- ```bash
38
- curl -s -X POST https://mcp.deepwiki.com/mcp \
39
- -H "Content-Type: application/json" \
40
- -H "Accept: application/json, text/event-stream" \
41
- -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "ask_question", "arguments": {"repoName": "OWNER/REPO", "question": "YOUR_QUESTION"}}}' | grep -oP '(?<="text":")[^"]*' | sed 's/\\n/\n/g'
42
- ```
43
- </bash_command>
44
-
45
- ### read_wiki_structure
46
-
47
- <bash_command name="read_wiki_structure">
48
- ```bash
49
- curl -s -X POST https://mcp.deepwiki.com/mcp \
50
- -H "Content-Type: application/json" \
51
- -H "Accept: application/json, text/event-stream" \
52
- -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "read_wiki_structure", "arguments": {"repoName": "OWNER/REPO"}}}' | grep -oP '(?<="text":")[^"]*' | sed 's/\\n/\n/g'
53
- ```
54
- </bash_command>
55
-
56
- ### read_wiki_contents
57
-
58
- <bash_command name="read_wiki_contents">
59
- ```bash
60
- curl -s -X POST https://mcp.deepwiki.com/mcp \
61
- -H "Content-Type: application/json" \
62
- -H "Accept: application/json, text/event-stream" \
63
- -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "read_wiki_contents", "arguments": {"repoName": "OWNER/REPO"}}}' | grep -oP '(?<="text":")[^"]*' | sed 's/\\n/\n/g'
64
- ```
65
- </bash_command>
66
-
67
- ### Critical Notes for Fallback Execution
68
-
69
- <fallback_notes>
70
- - **Argument Key**: Always use `repoName` (not `repo`)
71
- - **Headers**: The `Accept` header must include `text/event-stream` or the server will reject the request
72
- - **Output Parsing**: The `grep` and `sed` suffix is useful to extract clean text from the JSON-RPC stream but may sometimes need to be omitted.
73
- </fallback_notes>
74
-
75
- ## Repository Name Validation
76
-
77
- Before calling DeepWiki, validate that the repository name is legitimate and not a GitHub website path.
78
-
79
- ### Blocked First Segments
80
-
81
- <blocked_owners>
82
- Reject any `owner/repo` where the owner (first segment) matches these:
83
-
84
- ```
85
- about, accelerator, apps, archiveprogram, blog, careers, changelog,
86
- collections, community, contact, customer-stories, docs, enterprise,
87
- events, explore, features, gist, github, github-apps, issues, login,
88
- maintainers, marketplace, mcp, notifications, oauth-apps, orgs,
89
- organizations, password_reset, press, pricing, pull_requests, pulls,
90
- resources, security, securitylab, sessions, settings, site-policy,
91
- skills, solutions, sponsors, support, team, topics, trending,
92
- trust-center, whitepapers, why-github
93
- ```
94
- </blocked_owners>
95
-
96
- ### Validation Rules
97
-
98
- | Check | Rule | Example |
99
- |-------|------|---------|
100
- | Owner format | Alphanumeric, `-`, `_` only | `npm`, `node-js` ✅ |
101
- | Repo format | Alphanumeric, `-`, `_`, `.` only | `node-semver`, `lib.js` ✅ |
102
- | Not blocked | Owner not in blocked list | `npm/node-semver` ✅ |
103
- | Blocked path | Owner in blocked list | `features/spark` ❌ |
104
-
105
- ### Examples
106
-
107
- | Input | Verdict | Reason |
108
- |-------|---------|--------|
109
- | `npm/node-semver` | ✅ Valid | `npm` not blocked |
110
- | `graphology/graphology` | ✅ Valid | `graphology` not blocked |
111
- | `features/spark` | ❌ Invalid | `features` is GitHub product page |
112
- | `topics/database` | ❌ Invalid | `topics` is GitHub topic page |
113
- | `enterprise/startups` | ❌ Invalid | `enterprise` is GitHub marketing |
114
- | `resources/articles` | ❌ Invalid | `resources` is GitHub content |
115
- | `github/explore` | ❌ Invalid | `github` is org page, not repo |
116
- | `site-policy/terms` | ❌ Invalid | `site-policy` is GitHub legal |
117
- | `orgs/community` | ❌ Invalid | `orgs` is GitHub navigation |
118
-
119
- ## Available Tools
120
-
121
- ### deepWiki_read_wiki_structure
122
-
123
- <tool name="deepWiki_read_wiki_structure">
124
- <params>
125
- - `repoName` (required): Repository in `owner/repo` format
126
- </params>
127
- <returns>List of available documentation sections and topics</returns>
128
- <use_when>Exploring what documentation is available before asking specific questions</use_when>
129
- </tool>
130
-
131
- ### deepWiki_read_wiki_contents
132
-
133
- <tool name="deepWiki_read_wiki_contents">
134
- <params>
135
- - `repoName` (required): Repository in `owner/repo` format
136
- </params>
137
- <returns>Complete documentation content</returns>
138
- <use_when>You need comprehensive documentation overview or when `ask_question` doesn't provide enough detail</use_when>
139
- </tool>
140
-
141
- ### deepWiki_ask_question
142
-
143
- <tool name="deepWiki_ask_question">
144
- <params>
145
- - `repoName` (required): Repository in `owner/repo` format
146
- - **Single repo**: Use string: `"owner/repo"`
147
- - **Multiple repos**: Use array: `["owner1/repo1", "owner2/repo2"]`
148
- - **Critical**: Do not pass single-item array like `["owner/repo"]` for one repo
149
- - `question` (required): Specific question about the repository
150
- </params>
151
- <returns>Targeted answer based on repository documentation</returns>
152
- <use_when>You have a specific question and want a direct answer</use_when>
153
- </tool>
154
-
155
- <format_rules>
156
- - Single repository: `repoName="anomalyco/opencode"`
157
- - Multiple repositories: `repoName=["anomalyco/opencode", "vercel/next.js"]`
158
- - ❌ Wrong: `repoName=["anomalyco/opencode"]` (single-item array causes search failure)
159
- </format_rules>
160
-
161
- ## When to Use DeepWiki
162
-
163
- <use_cases>
164
- - Query is about a **specific GitHub repository**
165
- - You need **authoritative code answers** (from official docs)
166
- - The question involves **implementation details** of a library/framework
167
- - You want **installation/setup instructions** for a specific tool
168
- - The query is about **API usage patterns** for a known package
169
- </use_cases>
170
-
171
- ## repoName Format
172
-
173
- Always use `owner/repo` format:
174
-
175
- | Repository | Correct | Incorrect |
176
- |------------|---------|-----------|
177
- | React | `facebook/react` | `react`, `React` |
178
- | Next.js | `vercel/next.js` | `nextjs`, `next` |
179
- | TypeScript | `microsoft/TypeScript` | `typescript`, `ts` |
180
- | Vue | `vuejs/core` | `vue`, `Vue.js` |
181
-
182
- ## Example Workflows
183
-
184
- ### Getting Started with a Library
185
-
186
- ```json
187
- // Step 1: Check documentation structure
188
- {
189
- "tool": "deepwiki:deepWiki_read_wiki_structure",
190
- "params": {
191
- "repoName": "vercel/next.js"
192
- }
193
- }
194
-
195
- // Step 2: Ask specific question
196
- {
197
- "tool": "deepwiki:deepWiki_ask_question",
198
- "params": {
199
- "repoName": "vercel/next.js",
200
- "question": "How do I create a dynamic route with parameters?"
201
- }
202
- }
203
- ```
204
-
205
- ### Troubleshooting
206
-
207
- ```json
208
- {
209
- "tool": "deepwiki:deepWiki_ask_question",
210
- "params": {
211
- "repoName": "facebook/react",
212
- "question": "Why am I getting the 'rules of hooks' warning?"
213
- }
214
- }
215
- ```
216
-
217
- ### Installation Questions
218
-
219
- ```json
220
- {
221
- "tool": "deepwiki:deepWiki_ask_question",
222
- "params": {
223
- "repoName": "tailwindlabs/tailwindcss",
224
- "question": "How do I install and configure Tailwind with Vite?"
225
- }
226
- }
227
- ```
228
-
229
- ## Best Practices
230
-
231
- <best_practices>
232
- 1. **Validate repo name** against blocked list before calling
233
- 2. **Use `ask_question`** for specific queries (most efficient)
234
- 3. **Use `read_wiki_contents`** only when you need the full documentation
235
- 4. **Check `read_wiki_structure`** first when exploring unfamiliar repos
236
- 5. **Use string for single repo, array for multiple repos** in `repoName` parameter
237
- </best_practices>
238
-
239
- ## Limitations
240
-
241
- <limitations>
242
- - Only works for **public GitHub repositories**
243
- - Documentation must be **indexed by DeepWiki**
244
- - Very new or obscure repos may not be available
245
- - Cannot access private repositories
246
- </limitations>
@@ -1,97 +0,0 @@
1
- # Few-Shot Examples
2
-
3
- Real-world patterns for IntelliSearch skill execution.
4
-
5
- ## Example 1: Library Discovery
6
-
7
- **Query:** "Find a TypeScript library for semantic versioning validation"
8
-
9
- <execution>
10
- <step name="search" tool="gh search repos">
11
- CMD: `gh search repos "semver validation typescript" --language=typescript --json fullName,stargazersCount,createdAt,updatedAt,description --limit 10`
12
- RESULT: [npm/node-semver: 4.5K★, mattfarina/semver: 892★, ...]
13
- </step>
14
-
15
- <step name="filter" action="Top 3 by stars">
16
- SELECTED: [npm/node-semver, mattfarina/semver, ieee802js/node-semver]
17
- </step>
18
-
19
- <step name="query" tool="DeepWiki_ask_question">
20
- PAYLOAD: {
21
- repoName: ["npm/node-semver", "mattfarina/semver", "ieee802js/node-semver"],
22
- question: "Which is best for TypeScript semver validation?"
23
- }
24
- </step>
25
-
26
- <step name="synthesize">
27
- OUTPUT: npm/node-semver recommended (most stars, active maintenance, TypeScript typings included)
28
- </step>
29
- </execution>
30
-
31
- ---
32
-
33
- ## Example 2: Framework Comparison
34
-
35
- **Query:** "Compare React state management libraries: Zustand vs Jotai vs Valtio"
36
-
37
- <execution>
38
- <step name="search" tool="gh search repos (parallel)">
39
- CMDS:
40
- - `gh search repos "zustand" --json fullName,stargazersCount,createdAt,updatedAt --limit 5`
41
- - `gh search repos "jotai" --json fullName,stargazersCount,createdAt,updatedAt --limit 5`
42
- - `gh search repos "valtio" --json fullName,stargazersCount,createdAt,updatedAt --limit 5`
43
- RESULT: [pmndrs/zustand: 47K★, pmndrs/jotai: 18K★, pmndrs/valtio: 7K★]
44
- </step>
45
-
46
- <step name="filter" action="Exact matches only">
47
- SELECTED: [pmndrs/zustand, pmndrs/jotai, pmndrs/valtio]
48
- </step>
49
-
50
- <step name="query" tool="DeepWiki_ask_question">
51
- PAYLOAD: {
52
- repoName: ["pmndrs/zustand", "pmndrs/jotai", "pmndrs/valtio"],
53
- question: "Compare these React state management libraries: API design, performance, bundle size, learning curve"
54
- }
55
- </step>
56
-
57
- <step name="synthesize">
58
- OUTPUT: Zustand (simplest API, largest), Jotai (atomic, smallest), Valtio (proxy-based, mutable patterns)
59
- </step>
60
- </execution>
61
-
62
- ---
63
-
64
- ## Example 3: Fallback Chain
65
-
66
- **Query:** "Is there a browser-based WebGL physics engine?"
67
-
68
- <execution>
69
- <step name="search" tool="gh search repos" status="failed">
70
- CMD: `gh search repos "webgl physics engine browser" --language=javascript --limit 10`
71
- ERROR: gh CLI not authenticated
72
- </step>
73
-
74
- <step name="fallback" tool="google_search">
75
- PAYLOAD: {query: "webgl physics engine javascript npm github"}
76
- RESULT: Snippets mentioning cannon-es, ammo.js, Oimo.js
77
- </step>
78
-
79
- <step name="extract" action="owner/repo patterns">
80
- EXTRACTED: [pmndrs/cannon-es, kripken/ammo.js, lo-th/Oimo.js]
81
- </step>
82
-
83
- <step name="filter" action="Top 3 by relevance">
84
- SELECTED: [pmndrs/cannon-es, kripken/ammo.js, lo-th/Oimo.js]
85
- </step>
86
-
87
- <step name="query" tool="DeepWiki_ask_question">
88
- PAYLOAD: {
89
- repoName: ["pmndrs/cannon-es", "kripken/ammo.js", "lo-th/Oimo.js"],
90
- question: "Which is best for browser WebGL physics with Three.js integration?"
91
- }
92
- </step>
93
-
94
- <step name="synthesize">
95
- OUTPUT: cannon-es recommended (ES modules, maintained fork of cannon.js, Three.js examples available)
96
- </step>
97
- </execution>
@@ -1,143 +0,0 @@
1
- # GitHub CLI Search
2
-
3
- Using `gh` CLI for direct GitHub repository search.
4
-
5
- <detection>
6
- ```bash
7
- gh auth status
8
- ```
9
- - Exit code 0: gh is available and authenticated
10
- - Exit code non-zero: gh not available or not authenticated
11
- </detection>
12
-
13
- ## Search Command
14
-
15
- ```bash
16
- gh search repos [query] [flags]
17
- ```
18
-
19
- ## Query Strategy
20
-
21
- <approach>
22
- 1. **Topics + Language** (preferred when topics identifiable)
23
- 2. **Keywords only** (fallback)
24
- </approach>
25
-
26
- <topic_detection>
27
- Infer topics from user query context:
28
- - Framework names → topics (react, vue, express)
29
- - Library names → topics (lodash, axios, moment)
30
- - Concepts → topics (semver, validation, authentication)
31
- </topic_detection>
32
-
33
- <language_inference>
34
- Extract programming language from:
35
- - Explicit mention: "in TypeScript", "Python library"
36
- - File extensions: ".ts", ".py", ".go"
37
- - Context: "npm package" → JavaScript/TypeScript
38
- </language_inference>
39
-
40
- ## Examples
41
-
42
- <examples>
43
- <example category="topic_language">
44
- ```bash
45
- # Query: "semver validation in TypeScript"
46
- gh search repos --topic=semver,validation --language=typescript --json fullName,stargazersCount,createdAt,updatedAt,description --limit 10
47
- ```
48
- </example>
49
-
50
- <example category="keyword">
51
- ```bash
52
- # Query: "cli shell terminal"
53
- gh search repos cli shell terminal --json fullName,stargazersCount,createdAt,updatedAt,description --limit 10
54
- ```
55
- </example>
56
-
57
- <example category="combined">
58
- ```bash
59
- # Topics with additional keywords
60
- gh search repos "release automation" --topic=semver,versioning --language=typescript --json fullName,stargazersCount,createdAt,updatedAt,description --limit 10
61
- ```
62
- </example>
63
- </examples>
64
-
65
- ## Output Format
66
-
67
- ```bash
68
- --json fullName,stargazersCount,createdAt,updatedAt,description --limit 10
69
- ```
70
-
71
- <example_output>
72
- ```json
73
- [
74
- {"createdAt":"2020-03-17T21:23:36Z","description":"SEMVER validation Github Action","fullName":"rubenesp87/semver-validation-action","stargazersCount":8,"updatedAt":"2024-03-29T19:31:00Z"},
75
- {"createdAt":"2024-10-07T16:18:55Z","description":"An example to prove semverValidate Helm function","fullName":"lucabaggi/helm-semver-validation","stargazersCount":0,"updatedAt":"2024-10-07T16:24:06Z"}
76
- ]
77
- ```
78
- </example_output>
79
-
80
- ## Result Processing
81
-
82
- <process>
83
- 1. Get top 10 results from gh
84
- 2. Sort by `stargazersCount` descending
85
- 3. Return top 5 for DeepWiki queries
86
- </process>
87
-
88
- ## Common Flags
89
-
90
- | Flag | Purpose | Example |
91
- |------|---------|---------|
92
- | `--topic` | Filter by topics | `--topic=react,hooks` |
93
- | `--language` | Filter by language | `--language=typescript` |
94
- | `--owner` | Filter by owner | `--owner=facebook` |
95
- | `--stars` | Min stars | `--stars=">100"` |
96
- | `--sort` | Sort field | `--sort=stars` |
97
- | `--order` | Sort order | `--order=desc` |
98
- | `--limit` | Max results | `--limit=10` |
99
- | `--json` | Output format | `--json fullName,stargazersCount` |
100
- | `--archived` | Exclude archived | `--archived=false` |
101
-
102
- ## JSON Available Fields
103
- - createdAt
104
- - defaultBranch
105
- - description
106
- - forksCount
107
- - fullName
108
- - hasDownloads
109
- - hasIssues
110
- - hasPages
111
- - hasProjects
112
- - hasWiki
113
- - homepage
114
- - id
115
- - isArchived
116
- - isDisabled
117
- - isFork
118
- - isPrivate
119
- - language
120
- - license
121
- - name
122
- - openIssuesCount
123
- - owner
124
- - pushedAt
125
- - size
126
- - stargazersCount
127
- - updatedAt
128
- - url
129
- - visibility
130
- - watchersCount
131
-
132
- ## Error Handling
133
-
134
- ```yaml
135
- IF gh auth status fails:
136
- → Fall back to search_tool or fetch_tool
137
- IF gh search repos fails:
138
- → Fall back to search_tool or fetch_tool
139
- ```
140
-
141
- ## Permission Opt-Out
142
-
143
- Users can deny `gh` tool permission in OpenCode to opt out of this search method. The skill will automatically fall back to web search tools.
@@ -1,40 +0,0 @@
1
- # Google Search Operators
2
-
3
- Source: https://support.google.com/websearch/answer/2466433?hl=en
4
-
5
- ## Essential Operators
6
-
7
- | Operator | Syntax | Example | Purpose |
8
- |----------|--------|---------|---------|
9
- | Exact match | `"phrase"` | `"tallest building"` | Exact phrase match |
10
- | Site search | `site:domain.com` | `site:youtube.com cat videos` | Search specific domain |
11
- | Exclude | `-word` | `jaguar speed -car` | Exclude word from results |
12
-
13
- ## Usage Notes
14
-
15
- <important>
16
- - No spaces between operator and search term: `site:nytimes.com` works, `site: nytimes.com` does not
17
- - Operators can be combined: `"typescript" tutorial -paid`
18
- - Quotes are useful for exact phrases like `"order of the phoenix"`
19
- </important>
20
-
21
- ## Common Patterns for Technical Search
22
-
23
- <patterns>
24
- ```bash
25
- # Find libraries
26
- typescript validation library npm
27
-
28
- # Exact phrase
29
- "semantic versioning" nodejs package
30
-
31
- # Exclude results
32
- graph database python -javascript
33
-
34
- # Combined
35
- semver typescript validation -test
36
-
37
- # Package search
38
- npm package semver compare
39
- ```
40
- </patterns>