@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
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestration Service Initialization Module
|
|
3
|
+
*
|
|
4
|
+
* This module registers all orchestration-layer services with the service registry.
|
|
5
|
+
* Encapsulating these here maintains strict layering (Infrastructure → Core ← Orchestration).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { registerService, getServiceContainer, getService, type IService } from '../core/service-registry.ts';
|
|
9
|
+
import type { ServiceContainer } from '../core/service-registry.ts';
|
|
10
|
+
import { ServiceNames } from '../core/service-interfaces.ts';
|
|
11
|
+
import { ResearchOrchestrationService } from './research-orchestration-service.ts';
|
|
12
|
+
import { ResearchSessionService } from './research-session-service.ts';
|
|
13
|
+
import { ResearchSynthesisService } from './research-synthesis-service.ts';
|
|
14
|
+
import { HealthCheckRegistry } from '../healthcheck/registry.ts';
|
|
15
|
+
import { registerHealthChecks } from '../healthcheck/index.ts';
|
|
16
|
+
import { logger } from '../logger.ts';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Register all orchestration services with the service registry
|
|
20
|
+
*/
|
|
21
|
+
export function registerOrchestrationServices(container: ServiceContainer = getServiceContainer()): void {
|
|
22
|
+
logger.debug('[OrchestrationServiceInit] Registering orchestration services...');
|
|
23
|
+
|
|
24
|
+
// Register Research Orchestration Service
|
|
25
|
+
registerService(
|
|
26
|
+
ServiceNames.RESEARCH_ORCHESTRATION,
|
|
27
|
+
() => new ResearchOrchestrationService(),
|
|
28
|
+
{
|
|
29
|
+
allowOverwrite: false,
|
|
30
|
+
enableLogging: true,
|
|
31
|
+
},
|
|
32
|
+
container
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
// Register Research Session Service
|
|
36
|
+
registerService(
|
|
37
|
+
ServiceNames.RESEARCH_SESSION_SERVICE,
|
|
38
|
+
() => new ResearchSessionService(),
|
|
39
|
+
{
|
|
40
|
+
allowOverwrite: false,
|
|
41
|
+
enableLogging: true,
|
|
42
|
+
},
|
|
43
|
+
container
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
// Register Research Synthesis Service
|
|
47
|
+
registerService(
|
|
48
|
+
ServiceNames.RESEARCH_SYNTHESIS_SERVICE,
|
|
49
|
+
() => new ResearchSynthesisService(),
|
|
50
|
+
{
|
|
51
|
+
allowOverwrite: false,
|
|
52
|
+
enableLogging: true,
|
|
53
|
+
},
|
|
54
|
+
container
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
// Register Health Registry Service
|
|
58
|
+
// This is registered here because it coordinates checks across layers
|
|
59
|
+
registerService(
|
|
60
|
+
ServiceNames.HEALTH_REGISTRY,
|
|
61
|
+
async () => {
|
|
62
|
+
const registry = new HealthCheckRegistry();
|
|
63
|
+
await registry.initialize();
|
|
64
|
+
registerHealthChecks(registry, container);
|
|
65
|
+
return registry;
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
allowOverwrite: false,
|
|
69
|
+
enableLogging: true,
|
|
70
|
+
},
|
|
71
|
+
container
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
logger.debug('[OrchestrationServiceInit] Orchestration services registered');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Initialize all orchestration services
|
|
79
|
+
*/
|
|
80
|
+
export async function initializeOrchestrationServices(ctx?: any, container: ServiceContainer = getServiceContainer()): Promise<{ success: boolean; initialized: string[]; failed: string[] }> {
|
|
81
|
+
logger.log('[OrchestrationServiceInit] Initializing orchestration services...');
|
|
82
|
+
|
|
83
|
+
const servicesToInit = [
|
|
84
|
+
{ name: ServiceNames.RESEARCH_ORCHESTRATION, label: 'Research Orchestration Service' },
|
|
85
|
+
{ name: ServiceNames.RESEARCH_SESSION_SERVICE, label: 'Research Session Service' },
|
|
86
|
+
{ name: ServiceNames.RESEARCH_SYNTHESIS_SERVICE, label: 'Research Synthesis Service' },
|
|
87
|
+
{ name: ServiceNames.HEALTH_REGISTRY, label: 'Health Registry Service' },
|
|
88
|
+
];
|
|
89
|
+
|
|
90
|
+
const initialized: string[] = [];
|
|
91
|
+
const failed: string[] = [];
|
|
92
|
+
|
|
93
|
+
for (const service of servicesToInit) {
|
|
94
|
+
try {
|
|
95
|
+
await getService<IService>(service.name, ctx, container);
|
|
96
|
+
initialized.push(service.label);
|
|
97
|
+
} catch (err) {
|
|
98
|
+
const msg = `${service.label} init failed`;
|
|
99
|
+
logger.error(`[OrchestrationServiceInit] ${msg}:`, err);
|
|
100
|
+
failed.push(msg);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return {
|
|
105
|
+
success: failed.length === 0,
|
|
106
|
+
initialized,
|
|
107
|
+
failed
|
|
108
|
+
};
|
|
109
|
+
}
|
|
@@ -5,19 +5,23 @@
|
|
|
5
5
|
* Returns the uncompacted history of the current conversation branch.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionContext } from '@
|
|
8
|
+
import type { ExtensionContext } from '@earendil-works/pi-coding-agent';
|
|
9
9
|
import {
|
|
10
10
|
buildSessionContext,
|
|
11
11
|
convertToLlm,
|
|
12
12
|
serializeConversation
|
|
13
|
-
} from '@
|
|
13
|
+
} from '@earendil-works/pi-coding-agent';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Formats parent context for the initial coordinator.
|
|
17
17
|
* Provides the full linear history of the current branch.
|
|
18
18
|
*/
|
|
19
19
|
export async function formatParentContext(ctx: ExtensionContext): Promise<string> {
|
|
20
|
-
|
|
20
|
+
// Defensive: a synthesized/older host context may not provide sessionManager or
|
|
21
|
+
// getBranch. Treat a missing branch as "no prior context" rather than throwing a
|
|
22
|
+
// raw TypeError that would abort the coordinator.
|
|
23
|
+
const branch =
|
|
24
|
+
typeof ctx.sessionManager?.getBranch === 'function' ? ctx.sessionManager.getBranch() : [];
|
|
21
25
|
const sessionContext = buildSessionContext(branch);
|
|
22
26
|
const allMessages = sessionContext.messages;
|
|
23
27
|
|