@lincoln504/pi-research 0.1.12 → 1.0.0
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.
- package/LICENSE +1 -1
- package/README.md +64 -115
- package/dist/cli.mjs +23211 -0
- package/dist/prompts/research-knowledge-relevance-triage.md +35 -0
- package/dist/prompts/research-knowledge-search-extractor.md +41 -0
- package/dist/prompts/research-tool-usage.md +92 -0
- package/dist/prompts/researcher.md +89 -0
- package/dist/prompts/system-coordinator.md +75 -0
- package/dist/prompts/system-lead-evaluator.md +118 -0
- package/dist/thread-worker.mjs +2611 -0
- package/dist/webgpu-probe.mjs +80 -0
- package/docs/AGENT-SKILL.md +102 -0
- package/docs/ARCHITECTURE.md +306 -80
- package/docs/CONFIGURATION.md +249 -0
- package/docs/KNOWLEDGE-STORE.md +213 -0
- package/docs/PI-EXTENSION.md +91 -0
- package/docs/SDK.md +113 -0
- package/docs/THIRD-PARTY-NOTICES.md +64 -0
- package/package.json +102 -36
- package/scripts/build.cjs +140 -0
- package/scripts/cleanup.cjs +149 -0
- package/scripts/prepare.cjs +28 -0
- package/scripts/setup.cjs +134 -0
- package/skills/pi-research/README.md +90 -0
- package/skills/pi-research/SKILL.md +102 -0
- package/skills/pi-research/references/configuration.md +77 -0
- package/skills/pi-research/scripts/run.mjs +237 -0
- package/src/cleanup/research-cleanup.ts +140 -0
- package/src/cli.ts +1044 -0
- package/src/config.ts +1036 -147
- package/src/constants.ts +115 -84
- package/src/core/health-check-service.ts +265 -0
- package/src/core/interfaces/health-check-interfaces.ts +50 -0
- package/src/core/interfaces/knowledge-interfaces.ts +190 -0
- package/src/core/interfaces/observer-interfaces.ts +67 -0
- package/src/core/interfaces/orchestration-interfaces.ts +86 -0
- package/src/core/interfaces/planning-interfaces.ts +100 -0
- package/src/core/interfaces/process-interfaces.ts +37 -0
- package/src/core/interfaces/research-plan-types.ts +52 -0
- package/src/core/interfaces/scheduler-interfaces.ts +91 -0
- package/src/core/interfaces/service-names.ts +39 -0
- package/src/core/interfaces/state-manager-interfaces.ts +29 -0
- package/src/core/interfaces/steering-interfaces.ts +31 -0
- package/src/core/llm/agentic-repair.ts +169 -0
- package/src/core/llm/inject-date.ts +52 -0
- package/src/core/llm/llm-timeout.ts +64 -0
- package/src/core/llm/llm-utils.ts +86 -0
- package/src/core/llm/model-registry-factory.ts +287 -0
- package/src/core/llm/pi-ai-completion.ts +29 -0
- package/src/core/llm/prompts.ts +50 -0
- package/src/core/llm/research-model-resolver.ts +91 -0
- package/src/core/planning-constants.ts +13 -0
- package/src/core/planning-service.ts +649 -0
- package/src/core/planning-utils.ts +299 -0
- package/src/core/scheduler-factory.ts +48 -0
- package/src/core/scheduler-service.ts +123 -0
- package/src/core/service-initialization.ts +194 -0
- package/src/core/service-interfaces.ts +48 -0
- package/src/core/service-registry.ts +659 -0
- package/src/healthcheck/index.ts +271 -265
- package/src/healthcheck/registry.ts +130 -0
- package/src/index.ts +639 -50
- package/src/infrastructure/browser/browser-cleanup.ts +309 -0
- package/src/infrastructure/browser/browser-client.ts +199 -0
- package/src/infrastructure/browser/browser-error-utils.ts +160 -0
- package/src/infrastructure/browser/browser-lifecycle.ts +120 -0
- package/src/infrastructure/browser/browser-server.ts +174 -0
- package/src/infrastructure/browser/browser-task-scheduler.ts +461 -0
- package/src/infrastructure/browser/cleanup-utils.ts +155 -0
- package/src/infrastructure/browser/client-agent.ts +31 -0
- package/src/infrastructure/browser/config.ts +288 -0
- package/src/infrastructure/browser/ensure-browser.ts +205 -0
- package/src/infrastructure/browser/index.ts +37 -0
- package/src/infrastructure/browser/priority-task-queue.ts +226 -0
- package/src/infrastructure/browser/scheduler-factory.ts +354 -0
- package/src/infrastructure/browser/task-execution-service.ts +209 -0
- package/src/infrastructure/browser/thread-worker-browser.ts +282 -0
- package/src/infrastructure/browser/thread-worker-lifecycle.ts +323 -0
- package/src/infrastructure/browser/thread-worker-messaging.ts +662 -0
- package/src/infrastructure/browser/thread-worker-types.ts +25 -0
- package/src/infrastructure/browser/thread-worker.mjs +2611 -0
- package/src/infrastructure/browser/thread-worker.ts +168 -0
- package/src/infrastructure/browser/worker-pool-manager.ts +449 -0
- package/src/infrastructure/embedding/embedding-client.ts +205 -0
- package/src/infrastructure/embedding/embedding-factory.ts +324 -0
- package/src/infrastructure/embedding/embedding-server.ts +535 -0
- package/src/infrastructure/file-lock-service.ts +592 -0
- package/src/infrastructure/gpu-resource-service.ts +191 -0
- package/src/infrastructure/knowledge-store-service.ts +475 -0
- package/src/infrastructure/metrics-service.ts +129 -0
- package/src/infrastructure/process-lifecycle-service.ts +253 -0
- package/src/infrastructure/scheduler-factory-service.ts +58 -0
- package/src/infrastructure/service-initialization.ts +292 -0
- package/src/infrastructure/state/state-backup-manager.ts +290 -0
- package/src/infrastructure/state/state-browser-api.ts +62 -0
- package/src/infrastructure/state/state-browser-manager.ts +70 -0
- package/src/infrastructure/state/state-manager-service.ts +264 -0
- package/src/infrastructure/state/state-manager.ts +547 -0
- package/src/infrastructure/state/state-metrics.ts +92 -0
- package/src/infrastructure/state/state-migration.ts +103 -0
- package/src/infrastructure/state/state-path-configuration.ts +119 -0
- package/src/infrastructure/state/state-session-api.ts +94 -0
- package/src/infrastructure/state/state-session-manager.ts +127 -0
- package/src/infrastructure/state/state-validator.ts +93 -0
- package/src/infrastructure/types/state-types.ts +85 -0
- package/src/knowledge/chunker.ts +157 -0
- package/src/knowledge/embedder-init.ts +413 -0
- package/src/knowledge/embedder-utils.ts +296 -0
- package/src/knowledge/embedder.ts +592 -0
- package/src/knowledge/index.ts +126 -0
- package/src/knowledge/lancedb-loader.ts +35 -0
- package/src/knowledge/migration.ts +17 -0
- package/src/knowledge/model-config.ts +132 -0
- package/src/knowledge/onnx-env.ts +48 -0
- package/src/knowledge/store-operations.ts +291 -0
- package/src/knowledge/store-schema.ts +79 -0
- package/src/knowledge/store.ts +1251 -0
- package/src/knowledge/transformers-loader.ts +31 -0
- package/src/knowledge/webgpu-probe.mjs +80 -0
- package/src/knowledge/webgpu-viability.ts +255 -0
- package/src/knowledge/writer-queue.ts +252 -0
- package/src/logger.ts +316 -122
- package/src/observers/research-observer-impl.ts +459 -0
- package/src/orchestration/deep-research-orchestrator.ts +524 -773
- package/src/orchestration/deep-research-types.ts +47 -35
- package/src/orchestration/headless-observer.ts +114 -0
- package/src/orchestration/orchestration-types.ts +33 -0
- package/src/orchestration/quick-research-orchestrator.ts +463 -0
- package/src/orchestration/research-orchestration-service.ts +549 -0
- package/src/orchestration/research-session-service.ts +178 -0
- package/src/orchestration/research-synthesis-service.ts +348 -0
- package/src/orchestration/researcher-executor.ts +394 -0
- package/src/orchestration/researcher.ts +115 -42
- package/src/orchestration/service-initialization.ts +109 -0
- package/src/orchestration/session-context.ts +7 -3
- package/src/orchestration/session-state.ts +672 -0
- package/src/prompts/research-knowledge-relevance-triage.md +35 -0
- package/src/prompts/research-knowledge-search-extractor.md +41 -0
- package/src/prompts/research-tool-usage.md +63 -16
- package/src/prompts/researcher.md +59 -136
- package/src/prompts/system-coordinator.md +64 -13
- package/src/prompts/system-lead-evaluator.md +82 -189
- package/src/research-config.ts +872 -0
- package/src/sdk.ts +847 -0
- package/src/security/cisa-kev.ts +72 -9
- package/src/security/cvss.ts +92 -0
- package/src/security/ecosystem.ts +45 -0
- package/src/security/github-advisories.ts +168 -428
- package/src/security/github-advisory-types.ts +282 -0
- package/src/security/index.ts +63 -177
- package/src/security/nvd-client.ts +550 -0
- package/src/security/nvd-types.ts +179 -0
- package/src/security/osv-client.ts +246 -0
- package/src/security/osv-types.ts +285 -0
- package/src/security/types.ts +67 -53
- package/src/skill-install/skill-installer.ts +519 -0
- package/src/stackexchange/index.ts +81 -27
- package/src/stackexchange/output/compact.ts +7 -6
- package/src/stackexchange/output/table.ts +11 -7
- package/src/stackexchange/queries.ts +0 -10
- package/src/stackexchange/rest-client.ts +141 -66
- package/src/stackexchange/types.ts +0 -17
- package/src/tool.ts +15 -423
- package/src/tools/grep.ts +32 -310
- package/src/tools/health-tool-definition.ts +101 -0
- package/src/tools/index.ts +38 -9
- package/src/tools/research-knowledge-search.ts +974 -0
- package/src/tools/research-knowledge-types.ts +77 -0
- package/src/tools/research-tool-definition.ts +494 -0
- package/src/tools/scrape.ts +286 -388
- package/src/tools/search.ts +98 -153
- package/src/tools/security.ts +107 -80
- package/src/tools/stackexchange.ts +58 -35
- package/src/tools/youtube-transcript.ts +163 -0
- package/src/tui/knowledge-search-panel.ts +86 -0
- package/src/tui/pulse.ts +86 -0
- package/src/tui/research-health.ts +124 -0
- package/src/tui/research-panel-color-utils.ts +340 -0
- package/src/tui/research-panel-format.ts +54 -0
- package/src/tui/research-panel-state.ts +404 -0
- package/src/tui/research-panel-wave.ts +280 -0
- package/src/tui/research-panel.ts +339 -435
- package/src/tui/research-tui-manager.ts +233 -0
- package/src/tui/tui-controller.ts +137 -0
- package/src/types/extension-context.ts +18 -49
- package/src/types/index.ts +61 -0
- package/src/types/llm.ts +68 -29
- package/src/types/research-panel-types.ts +61 -0
- package/src/utils/circuit-breaker.ts +146 -0
- package/src/utils/citation-utils.ts +97 -0
- package/src/utils/disk-space-checker.ts +55 -0
- package/src/utils/error-tracker.ts +265 -0
- package/src/utils/host-config.ts +45 -0
- package/src/utils/input-validation.ts +8 -10
- package/src/utils/json-utils.ts +150 -16
- package/src/utils/llm-usage.ts +54 -0
- package/src/utils/log-rotation.ts +125 -0
- package/src/utils/log-utils.ts +159 -0
- package/src/utils/make-resource-loader.ts +3 -1
- package/src/utils/metrics-summary.ts +459 -0
- package/src/utils/metrics.ts +302 -0
- package/src/utils/research-export.ts +28 -12
- package/src/utils/safe-unref.ts +31 -0
- package/src/utils/shared-links.ts +195 -90
- package/src/utils/shutdown-manager.ts +65 -0
- package/src/utils/stdio-capture.ts +407 -0
- package/src/utils/text-utils.ts +264 -7
- package/src/utils/tool-usage-tracker.ts +83 -16
- package/src/utils/url-utils.ts +255 -0
- package/src/utils/user-agent.ts +28 -0
- package/src/web-research/browser-search.ts +179 -0
- package/src/web-research/retry-utils.ts +173 -77
- package/src/web-research/scraper-types.ts +72 -0
- package/src/web-research/scraper-utils.ts +434 -0
- package/src/web-research/search.ts +78 -218
- package/src/web-research/types.ts +9 -24
- package/src/web-research/utils.ts +2 -143
- package/src/web-research/web-scraper.ts +477 -0
- package/src/youtube/index.ts +154 -0
- package/src/youtube/potoken.ts +259 -0
- package/src/youtube/transcript-client.ts +390 -0
- package/src/youtube/video-id.ts +118 -0
- package/config/searxng/default-settings.yml +0 -189
- package/config/searxng/limiter.toml +0 -34
- package/config/tooling/eslint.config.js +0 -73
- package/config/tooling/vitest.config.integration.ts +0 -17
- package/config/tooling/vitest.config.ts +0 -40
- package/config/tooling/vitest.config.unit.ts +0 -12
- package/docs/assets/README-banner.jpg +0 -0
- package/scripts/setup.js +0 -174
- package/src/infrastructure/searxng-lifecycle.ts +0 -577
- package/src/infrastructure/searxng-manager.ts +0 -1183
- package/src/infrastructure/state-manager.ts +0 -918
- package/src/orchestration/deep-research-reducer.ts +0 -129
- package/src/orchestration/id-utils.ts +0 -63
- package/src/security/nvd.ts +0 -532
- package/src/security/osv.ts +0 -487
- package/src/stackexchange/cache.ts +0 -111
- package/src/stackexchange/output/index.ts +0 -7
- package/src/stackexchange/output/json.ts +0 -21
- package/src/tui/searxng-status.ts +0 -80
- package/src/utils/inject-date.ts +0 -29
- package/src/utils/research-error.ts +0 -205
- package/src/utils/searxng-config.ts +0 -94
- package/src/utils/session-state.ts +0 -295
- package/src/web-research/dependencies.ts +0 -20
- package/src/web-research/scrapers.ts +0 -935
- package/tsconfig.json +0 -40
package/src/security/types.ts
CHANGED
|
@@ -4,6 +4,27 @@
|
|
|
4
4
|
* Type definitions for security database integrations
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Standardized advisory interface (mutable version for GitHub API)
|
|
9
|
+
*/
|
|
10
|
+
export interface Advisory {
|
|
11
|
+
id: string;
|
|
12
|
+
source: 'github' | 'nvd' | 'osv';
|
|
13
|
+
severity: string;
|
|
14
|
+
summary: string;
|
|
15
|
+
description: string;
|
|
16
|
+
published: string;
|
|
17
|
+
modified: string;
|
|
18
|
+
cveId?: string;
|
|
19
|
+
references: string[];
|
|
20
|
+
affectedPackages: string[];
|
|
21
|
+
cvssScore?: number;
|
|
22
|
+
cvssVector?: string;
|
|
23
|
+
cwes?: string[];
|
|
24
|
+
knownExploited?: boolean;
|
|
25
|
+
fixes?: string[];
|
|
26
|
+
}
|
|
27
|
+
|
|
7
28
|
export interface Vulnerability {
|
|
8
29
|
readonly id: string;
|
|
9
30
|
readonly source: string;
|
|
@@ -24,48 +45,35 @@ export interface Vulnerability {
|
|
|
24
45
|
readonly requiredAction?: string;
|
|
25
46
|
}
|
|
26
47
|
|
|
27
|
-
export interface Advisory {
|
|
28
|
-
readonly id: string;
|
|
29
|
-
readonly source: string;
|
|
30
|
-
readonly severity: string;
|
|
31
|
-
readonly summary: string;
|
|
32
|
-
readonly description?: string;
|
|
33
|
-
readonly published: string;
|
|
34
|
-
readonly modified: string;
|
|
35
|
-
readonly cveId?: string;
|
|
36
|
-
readonly references: readonly string[];
|
|
37
|
-
readonly affectedPackages: readonly string[];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
48
|
export interface NVDResult {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
count: number;
|
|
50
|
+
vulnerabilities: Vulnerability[];
|
|
51
|
+
error?: string;
|
|
44
52
|
}
|
|
45
53
|
|
|
46
54
|
export interface CisaKevResult {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
55
|
+
count: number;
|
|
56
|
+
vulnerabilities: Vulnerability[];
|
|
57
|
+
error?: string;
|
|
50
58
|
}
|
|
51
59
|
|
|
52
60
|
export interface GitHubResult {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
count: number;
|
|
62
|
+
advisories: Advisory[];
|
|
63
|
+
error?: string;
|
|
56
64
|
}
|
|
57
65
|
|
|
58
66
|
export interface OSVResult {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
67
|
+
count: number;
|
|
68
|
+
vulnerabilities: Vulnerability[];
|
|
69
|
+
error?: string;
|
|
62
70
|
}
|
|
63
71
|
|
|
64
72
|
export interface SecurityDatabaseResults {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
73
|
+
nvd?: NVDResult;
|
|
74
|
+
cisa_kev?: CisaKevResult;
|
|
75
|
+
github?: GitHubResult;
|
|
76
|
+
osv?: OSVResult;
|
|
69
77
|
}
|
|
70
78
|
|
|
71
79
|
export interface SecuritySearchParams {
|
|
@@ -79,10 +87,13 @@ export interface SecuritySearchParams {
|
|
|
79
87
|
}
|
|
80
88
|
|
|
81
89
|
export interface SecuritySearchResult {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
results: SecurityDatabaseResults;
|
|
91
|
+
totalDatabases: number;
|
|
92
|
+
totalVulnerabilities: number;
|
|
93
|
+
duration: number;
|
|
94
|
+
/** Databases that THREW (rejected) rather than returning an `error` field — those are omitted
|
|
95
|
+
* from `results` entirely, so surface them here so a dropped source isn't mistaken for "found nothing". */
|
|
96
|
+
errors?: string[];
|
|
86
97
|
}
|
|
87
98
|
|
|
88
99
|
// ============================================================================
|
|
@@ -91,16 +102,18 @@ export interface SecuritySearchResult {
|
|
|
91
102
|
|
|
92
103
|
export interface INVDClient {
|
|
93
104
|
search(terms: readonly string[], options?: NVDSearchOptions): Promise<NVDResult>;
|
|
94
|
-
getById(cveId: string): Promise<Vulnerability | null>;
|
|
95
105
|
}
|
|
96
106
|
|
|
97
107
|
export interface NVDSearchOptions {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
108
|
+
severity?: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
|
|
109
|
+
maxResults?: number;
|
|
110
|
+
includeExploited?: boolean;
|
|
111
|
+
cweId?: string;
|
|
112
|
+
startDate?: string;
|
|
113
|
+
endDate?: string;
|
|
114
|
+
// Caller cancellation: composed with each request's own timeout and used to
|
|
115
|
+
// short-circuit rate-limit/backoff waits and stop pagination promptly.
|
|
116
|
+
signal?: AbortSignal;
|
|
104
117
|
}
|
|
105
118
|
|
|
106
119
|
export interface ICisaKevClient {
|
|
@@ -108,31 +121,32 @@ export interface ICisaKevClient {
|
|
|
108
121
|
}
|
|
109
122
|
|
|
110
123
|
export interface CisaKevSearchOptions {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
124
|
+
vendor?: string;
|
|
125
|
+
product?: string;
|
|
126
|
+
maxResults?: number;
|
|
127
|
+
signal?: AbortSignal;
|
|
114
128
|
}
|
|
115
129
|
|
|
116
130
|
export interface IGitHubAdvisoriesClient {
|
|
117
131
|
search(terms: readonly string[], options?: GitHubSearchOptions): Promise<GitHubResult>;
|
|
118
|
-
getById(id: string): Promise<Advisory | null>;
|
|
119
132
|
}
|
|
120
133
|
|
|
121
134
|
export interface GitHubSearchOptions {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
135
|
+
ecosystem?: string;
|
|
136
|
+
severity?: string;
|
|
137
|
+
maxResults?: number;
|
|
138
|
+
repo?: string;
|
|
139
|
+
signal?: AbortSignal;
|
|
126
140
|
}
|
|
127
141
|
|
|
128
142
|
export interface IOSVClient {
|
|
129
143
|
search(terms: readonly string[], options?: OSVSearchOptions): Promise<OSVResult>;
|
|
130
|
-
getById(osvId: string): Promise<Vulnerability | null>;
|
|
131
144
|
}
|
|
132
145
|
|
|
133
146
|
export interface OSVSearchOptions {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
147
|
+
ecosystem?: string;
|
|
148
|
+
severity?: string;
|
|
149
|
+
maxResults?: number;
|
|
150
|
+
includeAffected?: boolean;
|
|
151
|
+
signal?: AbortSignal;
|
|
138
152
|
}
|