@duckmind/dm-darwin-x64 0.48.5 → 0.49.6

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 (97) hide show
  1. package/dm +0 -0
  2. package/extensions/.dm-extensions.json +159 -220
  3. package/extensions/dm-9router-ext/package.json +0 -6
  4. package/extensions/dm-9router-ext/src/index.js +1 -1
  5. package/extensions/dm-ask-user/package.json +0 -4
  6. package/extensions/dm-caveman/extensions/caveman.js +29 -0
  7. package/extensions/dm-caveman/package.json +20 -0
  8. package/extensions/dm-cli-anything/index.js +5 -5
  9. package/extensions/dm-cli-anything/package.json +0 -7
  10. package/extensions/dm-cli-anything/skills/cli-anything/SKILL.md +1 -3
  11. package/extensions/dm-context/package.json +0 -1
  12. package/extensions/dm-cua/package.json +0 -7
  13. package/extensions/dm-fff/package.json +0 -6
  14. package/extensions/dm-goal/package.json +0 -8
  15. package/extensions/dm-grill-me/index.js +2 -2
  16. package/extensions/dm-grill-me/package.json +0 -7
  17. package/extensions/dm-image2/package.json +0 -8
  18. package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783845384621_9cf9262bf674.txt +1336 -0
  19. package/extensions/dm-subagents/.m/artifacts/shell/shell_output_1783846154938_6a41cefee0bf.txt +1336 -0
  20. package/extensions/dm-subagents/package.json +0 -11
  21. package/extensions/dm-subagents/src/extension/doctor.js +10 -10
  22. package/extensions/dm-subagents/src/extension/fanout-child.js +97 -97
  23. package/extensions/dm-subagents/src/extension/index.js +121 -121
  24. package/extensions/dm-subagents/src/extension/rpc.js +5 -5
  25. package/extensions/dm-subagents/src/extension/schemas.js +1 -1
  26. package/extensions/dm-subagents/src/extension/tool-description.js +2 -2
  27. package/extensions/dm-subagents/src/intercom/native-supervisor-channel.js +5 -5
  28. package/extensions/dm-subagents/src/runs/background/async-execution.js +19 -19
  29. package/extensions/dm-subagents/src/runs/background/async-job-tracker.js +9 -9
  30. package/extensions/dm-subagents/src/runs/background/async-resume.js +5 -5
  31. package/extensions/dm-subagents/src/runs/background/async-status.js +8 -8
  32. package/extensions/dm-subagents/src/runs/background/fleet-view.js +13 -13
  33. package/extensions/dm-subagents/src/runs/background/result-watcher.js +5 -5
  34. package/extensions/dm-subagents/src/runs/background/run-id-resolver.js +3 -3
  35. package/extensions/dm-subagents/src/runs/background/run-status.js +19 -19
  36. package/extensions/dm-subagents/src/runs/background/stale-run-reconciler.js +7 -7
  37. package/extensions/dm-subagents/src/runs/background/subagent-runner.js +35 -35
  38. package/extensions/dm-subagents/src/runs/background/wait.js +7 -7
  39. package/extensions/dm-subagents/src/runs/foreground/chain-execution.js +32 -32
  40. package/extensions/dm-subagents/src/runs/foreground/execution.js +26 -26
  41. package/extensions/dm-subagents/src/runs/foreground/subagent-executor.js +96 -96
  42. package/extensions/dm-subagents/src/runs/shared/dm-args.js +1 -1
  43. package/extensions/dm-subagents/src/runs/shared/nested-events.js +6 -6
  44. package/extensions/dm-subagents/src/runs/shared/subagent-prompt-runtime.js +13 -13
  45. package/extensions/dm-subagents/src/shared/fork-context.js +4 -4
  46. package/extensions/dm-tasks/package.json +0 -7
  47. package/extensions/dm-usage/package.json +0 -7
  48. package/extensions/greedysearch-dm/bin/cdp-greedy.mjs +1 -8
  49. package/extensions/greedysearch-dm/bin/gschrome.mjs +3 -3
  50. package/extensions/greedysearch-dm/bin/launch-visible.mjs +3 -3
  51. package/extensions/greedysearch-dm/bin/launch.mjs +4 -4
  52. package/extensions/greedysearch-dm/bin/search.mjs +103 -103
  53. package/extensions/greedysearch-dm/extractors/consensus.mjs +35 -35
  54. package/extensions/greedysearch-dm/extractors/gemini.mjs +38 -38
  55. package/extensions/greedysearch-dm/extractors/logically.mjs +35 -35
  56. package/extensions/greedysearch-dm/package.json +0 -10
  57. package/extensions/greedysearch-dm/src/search/chrome.mjs +23 -23
  58. package/extensions/greedysearch-dm/src/search/fetch-source.mjs +35 -35
  59. package/extensions/greedysearch-dm/src/search/research.mjs +61 -61
  60. package/extensions/greedysearch-dm/src/search/synthesis-runner.mjs +4 -4
  61. package/package.json +1 -1
  62. package/extensions/dm-9router-ext/README.md +0 -142
  63. package/extensions/dm-9router-ext/tsconfig.json +0 -17
  64. package/extensions/dm-ask-user/README.md +0 -226
  65. package/extensions/dm-cli-anything/LICENSE +0 -201
  66. package/extensions/dm-cli-anything/README.md +0 -33
  67. package/extensions/dm-cli-anything/vendor/UPSTREAM.md +0 -14
  68. package/extensions/dm-context/AGENTS.md +0 -41
  69. package/extensions/dm-context/README.md +0 -18
  70. package/extensions/dm-context/tsconfig.json +0 -16
  71. package/extensions/dm-cua/README.md +0 -24
  72. package/extensions/dm-fff/README.md +0 -36
  73. package/extensions/dm-fff/tsconfig.json +0 -13
  74. package/extensions/dm-goal/CHANGELOG.md +0 -12
  75. package/extensions/dm-goal/LICENSE +0 -21
  76. package/extensions/dm-goal/README.md +0 -29
  77. package/extensions/dm-goal/tsconfig.json +0 -15
  78. package/extensions/dm-grill-me/DESIGN.md +0 -301
  79. package/extensions/dm-grill-me/LICENSE +0 -21
  80. package/extensions/dm-grill-me/README.md +0 -82
  81. package/extensions/dm-grill-me/tsconfig.json +0 -17
  82. package/extensions/dm-image2/README.md +0 -33
  83. package/extensions/dm-subagents/CHANGELOG.md +0 -1211
  84. package/extensions/dm-subagents/README.md +0 -29
  85. package/extensions/dm-subagents/banner.png +0 -0
  86. package/extensions/dm-subagents/biome.json +0 -26
  87. package/extensions/dm-subagents/tsconfig.json +0 -18
  88. package/extensions/dm-tasks/LICENSE +0 -21
  89. package/extensions/dm-tasks/README.md +0 -30
  90. package/extensions/dm-tasks/biome.json +0 -26
  91. package/extensions/dm-tasks/tsconfig.json +0 -14
  92. package/extensions/dm-usage/LICENSE +0 -21
  93. package/extensions/dm-usage/README.md +0 -29
  94. package/extensions/dm-usage/insights-screenshot.png +0 -0
  95. package/extensions/dm-usage/screenshot.png +0 -0
  96. package/extensions/greedysearch-dm/LICENSE +0 -21
  97. package/extensions/greedysearch-dm/README.md +0 -222
@@ -1,29 +0,0 @@
1
- # dm-subagents
2
-
3
- Bundled DM extension for delegating tasks to specialized agents.
4
-
5
- ## Included tools and commands
6
-
7
- - `subagent` tool: launch, inspect, steer, interrupt, resume, schedule, and manage subagent runs
8
- - `wait` tool: block until active async subagent runs complete or need attention
9
- - `/run`, `/chain`, `/parallel`, `/prompt-workflow`, `/chain-prompts`, and `/subagents-*` slash commands
10
-
11
- ## Current upstream shape
12
-
13
- Technical provenance: this package is synced from `nicobailon/pi-subagents` release `v0.33.1`. DM ships the adapted source as `dm-subagents`.
14
- The nicobailon source-layout release includes `subagent`, `wait`, slash commands, prompts, skills, and bundled agent definitions; legacy local-only overlays are not silently claimed here.
15
-
16
- ## Default paths
17
-
18
- - User agents: `~/.dm/agent/agents/{name}.md`
19
- - Project agents: `.dm/agents/{name}.md`
20
- - Config: `~/.dm/agent/extensions/subagent/config.json`
21
-
22
- ## Environment
23
-
24
- - Preferred recursion env: `DM_SUBAGENT_MAX_DEPTH`
25
- - Compatibility fallback still accepted: `PI_SUBAGENT_MAX_DEPTH`
26
-
27
- ## Bundled with dm
28
-
29
- No separate install step is required. The extension ships inside DM's bundled extension catalog and uses the `dm` CLI by default for delegated runs.
Binary file
@@ -1,26 +0,0 @@
1
- {
2
- "$schema": "https://biomejs.dev/schemas/2.4.14/schema.json",
3
- "formatter": {
4
- "enabled": false
5
- },
6
- "linter": {
7
- "enabled": true,
8
- "rules": {
9
- "recommended": true,
10
- "style": {
11
- "recommended": false
12
- },
13
- "suspicious": {
14
- "noExplicitAny": "off",
15
- "noControlCharactersInRegex": "off",
16
- "noEmptyInterface": "off"
17
- }
18
- }
19
- },
20
- "files": {
21
- "includes": [
22
- "src/**/*.ts",
23
- "test/**/*.ts"
24
- ]
25
- }
26
- }
@@ -1,18 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "ES2022",
5
- "moduleResolution": "bundler",
6
- "strict": true,
7
- "esModuleInterop": true,
8
- "skipLibCheck": true,
9
- "noEmit": true,
10
- "types": [
11
- "node"
12
- ]
13
- },
14
- "include": [
15
- "src/**/*.ts",
16
- "test/**/*.ts"
17
- ]
18
- }
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 tintinweb
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,30 +0,0 @@
1
- # dm-tasks
2
-
3
- Bundled DM extension for Claude Code-style task tracking, dependency-aware task lists, and the `/tasks` control panel.
4
-
5
- ## Included commands
6
-
7
- - `/tasks`
8
-
9
- ## Included tools
10
-
11
- - `TaskCreate`
12
- - `TaskList`
13
- - `TaskGet`
14
- - `TaskUpdate`
15
- - `TaskOutput`
16
- - `TaskStop`
17
- - `TaskExecute`
18
-
19
- ## Default storage and env
20
-
21
- - Session task store: `<cwd>/.dm/tasks/tasks-<sessionId>.json`
22
- - Project task store: `<cwd>/.dm/tasks/tasks.json`
23
- - Named shared lists: `~/.dm/tasks/<listId>.json`
24
- - Preferred env: `DM_TASKS`, `DM_TASKS_DEBUG`
25
- - Compatibility fallbacks still accepted: `PI_TASKS`, `PI_TASKS_DEBUG`
26
- - `TaskExecute` delegates through bundled `dm-subagents` when its published service is loaded
27
-
28
- ## Bundled with dm
29
-
30
- No separate install step is required. Install `dm`, then use `/tasks` or let the agent call the task tools directly.
@@ -1,26 +0,0 @@
1
- {
2
- "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
3
- "linter": {
4
- "enabled": true,
5
- "rules": {
6
- "recommended": true,
7
- "style": {
8
- "recommended": false
9
- },
10
- "suspicious": {
11
- "noExplicitAny": "off",
12
- "noControlCharactersInRegex": "off",
13
- "noEmptyInterface": "off"
14
- }
15
- }
16
- },
17
- "formatter": {
18
- "enabled": false
19
- },
20
- "files": {
21
- "includes": [
22
- "src/**/*.ts",
23
- "test/**/*.ts"
24
- ]
25
- }
26
- }
@@ -1,14 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "ES2022",
5
- "moduleResolution": "bundler",
6
- "strict": true,
7
- "esModuleInterop": true,
8
- "skipLibCheck": true,
9
- "outDir": "dist",
10
- "rootDir": "src",
11
- "declaration": true
12
- },
13
- "include": ["src/**/*.ts"]
14
- }
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Thomas Mustier
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,29 +0,0 @@
1
- # dm-usage
2
-
3
- Bundled DM extension that adds `/usage`, an interactive dashboard for local session cost, token, provider, and model usage.
4
-
5
- ![Default table view of /usage](screenshot.png)
6
-
7
- ## Included command surface
8
-
9
- - `/usage`
10
- - `/usage use [provider-id|clear|remove <provider-id>]`
11
- - `/usage show`
12
- - `/usage rotation`
13
- - `/usage verify`
14
- - `/usage path`
15
- - `/usage reset [manual|quota|all]`
16
- - `/usage help`
17
-
18
- ## Runtime notes
19
-
20
- - Reads session JSONL files recursively from `~/.dm/agent/sessions/`.
21
- - Respects `DM_CODING_AGENT_DIR`; `PI_CODING_AGENT_DIR` is accepted only as a compatibility fallback.
22
- - Displays raw provider `openai-codex` as `duckmind-ultra` and `openrouter` as `duckmind-standard` without changing recorded session data.
23
- - Restored account-tool subcommands keep local managed-account metadata in `~/.dm/agent/usage/state.json`; they do not store API secrets or route provider requests.
24
- - `Tab` / `←` / `→` switch periods, `v` toggles table/insights view, and `q` / `Esc` closes the dashboard.
25
- - Cost data comes from recorded assistant usage payloads, so accuracy depends on providers reporting `usage.cost.total`.
26
-
27
- ## Bundled with dm
28
-
29
- No separate install step is required. Install `dm`, then run `/usage` inside the TUI.
Binary file
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,222 +0,0 @@
1
- # GreedySearch for DM
2
-
3
- ![GreedySearch](docs/banner.svg)
4
-
5
- Multi-engine AI web search for DM via browser automation.
6
-
7
- - No API keys
8
- - Real browser results from configurable engines: Perplexity, Google AI, ChatGPT, Gemini, plus opt-in Semantic Scholar and Logically research engines
9
- - Research mode as the centerpiece: iterative planning, source fetching, citation audit, and structured bundles
10
- - Optional configurable synthesis with source grounding (Gemini by default)
11
- - CloakBrowser/Chrome runs headless by default — no window, purely background
12
-
13
- ## Install
14
-
15
- ```bash
16
- dm installs this bundled GreedySearch DM extension automatically.
17
- ```
18
-
19
- Or from git:
20
-
21
- ```bash
22
- Rebuild or reinstall DM to refresh the bundled GreedySearch asset.
23
- ```
24
-
25
- ## Tool
26
-
27
- - `greedy_search` — multi-engine AI web search, source-grounded synthesis, and deep research
28
-
29
- ## Quick usage
30
-
31
- ```js
32
- greedy_search({ query: "React 19 changes" }); // all engines + fetched sources
33
- greedy_search({ query: "React 19 changes", synthesize: true }); // add configured synthesis
34
- greedy_search({ query: "Prisma vs Drizzle", engine: "perplexity" }); // individual engine
35
- greedy_search({
36
- query: "Evaluate browser automation options for AI agents",
37
- depth: "research",
38
- breadth: 3,
39
- iterations: 2,
40
- maxSources: 8,
41
- });
42
- // Research mode writes a dataroom-style bundle under .dm/greedysearch-research/ by default.
43
- // Headless is the default — no window. To force visible browser:
44
- greedy_search({ query: "Visible browser setup", engine: "perplexity", visible: true });
45
- ```
46
-
47
- ## Parameters (`greedy_search`)
48
-
49
- ### Common
50
-
51
- - `query` (required)
52
- - `fullAnswer`: return full single-engine output instead of preview
53
- - `headless`: set to `false` to show a browser window (default: `true`)
54
- - `visible` / `alwaysVisible`: set to `true` to always use a visible browser for this search
55
-
56
- ### Normal search
57
-
58
- - `engine`: `all` (default web/search fan-out), `perplexity`, `google`, `chatgpt`, `gemini`; opt-in research engines: `semantic-scholar`, `logically`; `bing` still works for signed-in users
59
- - `synthesize`: for `engine: "all"`, synthesize fetched sources with the configured synthesizer (default false)
60
- - `synthesizer`: override the configured synthesis engine for this call (`gemini` default, `chatgpt` supported)
61
- - `depth`: legacy `fast`/`standard`/`deep` aliases are still accepted for compatibility; prefer `synthesize` for normal search
62
-
63
- ### Deep research
64
-
65
- - `depth`: set to `"research"` to run the iterative research workflow
66
- - `breadth`: number of research actions per round, 1-5 (default 3)
67
- - `iterations`: research rounds, 1-3 (default 2)
68
- - `maxSources`: fetched source cap for the final report, 3-12
69
- - `researchOutDir`: optional directory for the research bundle
70
- - `writeResearchBundle`: write the research bundle to disk (default true for research mode)
71
-
72
- Deep research uses the configured `~/.dm/greedyconfig.engines` list for child searches and Gemini for planning/final synthesis.
73
-
74
- ## Environment variables
75
-
76
- | Variable | Default | Description |
77
- | ------------------------------------ | ------------- | ------------------------------------------------------------- |
78
- | `GREEDY_SEARCH_VISIBLE` | (unset) | Set to `1` to show a browser window instead of headless |
79
- | `GREEDY_SEARCH_ALWAYS_VISIBLE` | (unset) | Set to `1` to force visible browser for all GreedySearch runs |
80
- | `GREEDY_SEARCH_IDLE_TIMEOUT_MINUTES` | `5` | Minutes of inactivity before auto-killing GreedySearch browser |
81
- | `GREEDY_SEARCH_LOCALE` | `en` | Default result language (en, de, fr, es, ja, etc.) |
82
- | `GREEDY_SEARCH_BROWSER` / `DM_CUA_BROWSER` | `auto` | `auto`, `cloak`, or `chrome`; auto prefers CloakBrowser when installed |
83
- | `GREEDY_SEARCH_BROWSER_PATH` / `DM_CUA_BROWSER_PATH` | (unset) | Explicit browser executable override |
84
- | `DM_CUA_CLOAK_PATH` / `CLOAKBROWSER_BINARY_PATH` | (unset) | Explicit CloakBrowser executable; DM does not bundle the binary |
85
- | `CHROME_PATH` | auto-detected | Path to Chrome/Chromium executable fallback |
86
-
87
- ## Search modes
88
-
89
- - **Individual engine search/research** — `engine: "perplexity" | "google" | "chatgpt" | "gemini" | "semantic-scholar" | "logically" | "bing"`; returns that engine's answer and sources.
90
- - **Grounded multi-engine search** — default `engine: "all"`; fans out to configured engines, ranks sources, fetches top source content, and reports confidence metadata.
91
- - **All + synthesis** — add `synthesize: true` (or CLI `--synthesize`) to ask the configured synthesizer to combine engine answers and fetched source evidence.
92
- - **Deep research** — `depth: "research"`; iterative action planning, direct URL fetches, fast multi-engine searches, source fetching, learning extraction, deterministic floor checks, citation audit, a final cited report, and a structured on-disk bundle.
93
-
94
- Legacy `depth: "fast" | "standard" | "deep"` values remain accepted for compatibility: `fast` skips source fetching; `standard`/`deep` request synthesis.
95
-
96
- Configure all-engine fan-out and synthesis in `~/.dm/greedyconfig`:
97
-
98
- ```json
99
- {
100
- "engines": ["perplexity", "google", "chatgpt", "gemini", "semantic-scholar", "logically"],
101
- "synthesizer": "gemini"
102
- }
103
- ```
104
-
105
- Gemini is a normal search engine and can participate in `engine: "all"`. Semantic Scholar and Logically are opt-in research engines; include them in `~/.dm/greedyconfig` only when you want the all-engine fan-out to include academic paper discovery or research-assistant workflows. Deep research child searches reuse the same configured `engines` list and keep query text on stdin; Gemini remains the research planner/final-report synthesizer. If `synthesize: true` and `"synthesizer": "gemini"`, Gemini runs once as a search engine and again as the synthesizer; set `"synthesizer": "chatgpt"` to separate those roles for normal all-search synthesis.
106
-
107
- Research bundles are written by default to `.dm/greedysearch-research/<timestamp>_<query>/` and include:
108
-
109
- ```text
110
- STATUS.md # floor status, open/closed question ledger, and gaps
111
- OUTLINE.md # bundle table of contents
112
- reports/SUMMARY.md # final cited report
113
- reports/CLAIMS.md # extracted claims mapped to source IDs
114
- reports/EVIDENCE.md # goal-based evidence extracted from fetched sources
115
- reports/GAPS.md # caveats and remaining uncertainties
116
- sources/ # fetched source markdown files
117
- data/manifest.json # run metadata, stop reason, floor checks, citation audit
118
- data/rounds.json # per-round actions/learnings/gaps
119
- data/sources.json # ranked source registry
120
- data/questions.json # STATUS-style question ledger with evidence/source IDs
121
- data/evidence.json # structured rational/evidence/summary per useful source
122
- ```
123
-
124
- CLI controls:
125
-
126
- ```bash
127
- node bin/search.mjs all --inline --stdin --depth research --breadth 3 --iterations 2 --max-sources 8 <<'EOF'
128
- Evaluate browser automation options for AI agents
129
- EOF
130
- node bin/search.mjs all "topic" --depth research --research-out-dir ./research-topic
131
- node bin/search.mjs all "topic" --depth research --no-research-bundle
132
- ```
133
-
134
- ## Runtime commands
135
-
136
- Inside DM, prefer the extension commands (no package path needed):
137
-
138
- ```text
139
- /greedy-visible # launch visible browser for captcha/login/cookie setup
140
- /greedy-status # show GreedySearch browser status
141
- /greedy-kill # stop GreedySearch browser
142
- /set-greedy-locale # set default result language (de, fr, es, ja, etc.)
143
- ```
144
-
145
- Git install path:
146
-
147
- ```bash
148
- GS=~/.dm/agent/git/github.com/apmantza/greedysearch-dm
149
- node "$GS/bin/launch.mjs" --status
150
- node "$GS/bin/visible.mjs" # visible mode
151
- node "$GS/bin/visible.mjs" --kill # strong visible/port cleanup
152
- node "$GS/bin/kill-visible.mjs" # same as visible.mjs --kill
153
- node "$GS/bin/cdp-visible.mjs" list # safe CDP: GreedySearch visible browser only
154
- node "$GS/bin/cdp-headless.mjs" list # safe CDP: GreedySearch headless browser only
155
- node "$GS/bin/cdp-greedy.mjs" list # safe CDP: any GreedySearch browser mode
156
- ```
157
-
158
- npm global install path:
159
-
160
- ```bash
161
- GS="$(npm root -g)/greedysearch-dm"
162
- node "$GS/bin/launch.mjs" --status
163
- node "$GS/bin/visible.mjs"
164
- node "$GS/bin/visible.mjs" --kill
165
- node "$GS/bin/kill-visible.mjs"
166
- node "$GS/bin/cdp-visible.mjs" list
167
- node "$GS/bin/cdp-headless.mjs" list
168
- node "$GS/bin/cdp-greedy.mjs" list
169
- ```
170
-
171
- GreedySearch browser is auto-cleaned after 5 min idle. Override with `GREEDY_SEARCH_IDLE_TIMEOUT_MINUTES=10` or disable with `0`.
172
-
173
- **CDP safety:** use `cdp-visible.mjs`, `cdp-headless.mjs`, or `cdp-greedy.mjs` for debugging. They always set `CDP_PROFILE_DIR` to the dedicated GreedySearch browser profile and never fall back to your main browser session. Avoid calling raw `bin/cdp.mjs` manually unless you explicitly set `CDP_PROFILE_DIR`.
174
-
175
- ## Requirements
176
-
177
- - CloakBrowser or Chrome/Chromium
178
- - Node.js 20.11.0+
179
-
180
- ## Source fetching
181
-
182
- When using `engine: "all"`, top source content is fetched by default. Add `synthesize: true` to synthesize with the configured synthesizer:
183
-
184
- - **PDFs** — Direct PDF links are parsed to markdown text for source-grounded synthesis
185
- - **Semantic Scholar** — Discovers academic papers and prefers direct PDF/external paper links when available
186
- - **Reddit** — Uses Reddit's public `.json` API for posts and comments
187
- - **GitHub** — Uses GitHub REST API for repos, READMEs, and file trees
188
- - **General web** — Mozilla Readability extraction with browser fallback when needed
189
- - **Metadata** — title, author/byline, site name, publish date, language, excerpt
190
-
191
- ## Project layout
192
-
193
- - `bin/` — runtime CLIs (`search.mjs`, `launch.mjs`, `launch-visible.mjs`, `visible.mjs`, `kill-visible.mjs`, safe CDP wrappers, `cdp.mjs`)
194
- - `extractors/` — engine-specific automation + stealth/consent handling
195
- - `src/` — search pipeline, chrome management, source fetching, formatting
196
- - `skills/` — DM skill metadata
197
-
198
- ## Testing
199
-
200
- Cross-platform test runner (Windows + Unix):
201
-
202
- ```bash
203
- npm test # run all tests
204
- npm run test:quick # skip slow tests
205
- npm run test:smoke # basic health check
206
- ```
207
-
208
- Full bash test suite (Unix only):
209
-
210
- ```bash
211
- npm run test:bash # comprehensive tests
212
- ./test.sh parallel # race condition tests
213
- ./test.sh flags # flag/option tests
214
- ```
215
-
216
- ## Changelog
217
-
218
- See `CHANGELOG.md`.
219
-
220
- ## License
221
-
222
- MIT