pulseed 0.4.19 → 0.5.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/README.md +34 -27
- package/dist/adapters/types/mcp.d.ts +6 -6
- package/dist/base/config/global-config.d.ts +4 -4
- package/dist/base/llm/codex-llm-client.d.ts +8 -2
- package/dist/base/llm/codex-llm-client.d.ts.map +1 -1
- package/dist/base/llm/codex-llm-client.js +75 -30
- package/dist/base/llm/codex-llm-client.js.map +1 -1
- package/dist/base/llm/provider-config.d.ts +14 -0
- package/dist/base/llm/provider-config.d.ts.map +1 -1
- package/dist/base/llm/provider-config.js +56 -2
- package/dist/base/llm/provider-config.js.map +1 -1
- package/dist/base/llm/provider-factory.d.ts.map +1 -1
- package/dist/base/llm/provider-factory.js +3 -0
- package/dist/base/llm/provider-factory.js.map +1 -1
- package/dist/grounding/contracts.d.ts +160 -0
- package/dist/grounding/contracts.d.ts.map +1 -0
- package/dist/grounding/contracts.js +2 -0
- package/dist/grounding/contracts.js.map +1 -0
- package/dist/grounding/gateway.d.ts +12 -0
- package/dist/grounding/gateway.d.ts.map +1 -0
- package/dist/grounding/gateway.js +116 -0
- package/dist/grounding/gateway.js.map +1 -0
- package/dist/grounding/profiles.d.ts +4 -0
- package/dist/grounding/profiles.d.ts.map +1 -0
- package/dist/grounding/profiles.js +159 -0
- package/dist/grounding/profiles.js.map +1 -0
- package/dist/grounding/providers/agents-provider.d.ts +14 -0
- package/dist/grounding/providers/agents-provider.d.ts.map +1 -0
- package/dist/grounding/providers/agents-provider.js +129 -0
- package/dist/grounding/providers/agents-provider.js.map +1 -0
- package/dist/grounding/providers/goal-state-provider.d.ts +3 -0
- package/dist/grounding/providers/goal-state-provider.d.ts.map +1 -0
- package/dist/grounding/providers/goal-state-provider.js +34 -0
- package/dist/grounding/providers/goal-state-provider.js.map +1 -0
- package/dist/grounding/providers/helpers.d.ts +13 -0
- package/dist/grounding/providers/helpers.d.ts.map +1 -0
- package/dist/grounding/providers/helpers.js +93 -0
- package/dist/grounding/providers/helpers.js.map +1 -0
- package/dist/grounding/providers/knowledge-provider.d.ts +3 -0
- package/dist/grounding/providers/knowledge-provider.d.ts.map +1 -0
- package/dist/grounding/providers/knowledge-provider.js +49 -0
- package/dist/grounding/providers/knowledge-provider.js.map +1 -0
- package/dist/grounding/providers/lessons-provider.d.ts +3 -0
- package/dist/grounding/providers/lessons-provider.d.ts.map +1 -0
- package/dist/grounding/providers/lessons-provider.js +36 -0
- package/dist/grounding/providers/lessons-provider.js.map +1 -0
- package/dist/grounding/providers/plugins-provider.d.ts +3 -0
- package/dist/grounding/providers/plugins-provider.d.ts.map +1 -0
- package/dist/grounding/providers/plugins-provider.js +35 -0
- package/dist/grounding/providers/plugins-provider.js.map +1 -0
- package/dist/grounding/providers/progress-history-provider.d.ts +3 -0
- package/dist/grounding/providers/progress-history-provider.d.ts.map +1 -0
- package/dist/grounding/providers/progress-history-provider.js +30 -0
- package/dist/grounding/providers/progress-history-provider.js.map +1 -0
- package/dist/grounding/providers/provider-state-provider.d.ts +3 -0
- package/dist/grounding/providers/provider-state-provider.d.ts.map +1 -0
- package/dist/grounding/providers/provider-state-provider.js +32 -0
- package/dist/grounding/providers/provider-state-provider.js.map +1 -0
- package/dist/grounding/providers/session-history-provider.d.ts +3 -0
- package/dist/grounding/providers/session-history-provider.d.ts.map +1 -0
- package/dist/grounding/providers/session-history-provider.js +72 -0
- package/dist/grounding/providers/session-history-provider.js.map +1 -0
- package/dist/grounding/providers/soil-provider.d.ts +3 -0
- package/dist/grounding/providers/soil-provider.d.ts.map +1 -0
- package/dist/grounding/providers/soil-provider.js +70 -0
- package/dist/grounding/providers/soil-provider.js.map +1 -0
- package/dist/grounding/providers/static-policy-provider.d.ts +8 -0
- package/dist/grounding/providers/static-policy-provider.d.ts.map +1 -0
- package/dist/grounding/providers/static-policy-provider.js +81 -0
- package/dist/grounding/providers/static-policy-provider.js.map +1 -0
- package/dist/grounding/providers/task-state-provider.d.ts +3 -0
- package/dist/grounding/providers/task-state-provider.d.ts.map +1 -0
- package/dist/grounding/providers/task-state-provider.js +55 -0
- package/dist/grounding/providers/task-state-provider.js.map +1 -0
- package/dist/grounding/providers/trust-state-provider.d.ts +3 -0
- package/dist/grounding/providers/trust-state-provider.d.ts.map +1 -0
- package/dist/grounding/providers/trust-state-provider.js +25 -0
- package/dist/grounding/providers/trust-state-provider.js.map +1 -0
- package/dist/grounding/providers/workspace-facts-provider.d.ts +3 -0
- package/dist/grounding/providers/workspace-facts-provider.d.ts.map +1 -0
- package/dist/grounding/providers/workspace-facts-provider.js +22 -0
- package/dist/grounding/providers/workspace-facts-provider.js.map +1 -0
- package/dist/grounding/renderers/debug-renderer.d.ts +3 -0
- package/dist/grounding/renderers/debug-renderer.d.ts.map +1 -0
- package/dist/grounding/renderers/debug-renderer.js +11 -0
- package/dist/grounding/renderers/debug-renderer.js.map +1 -0
- package/dist/grounding/renderers/prompt-renderer.d.ts +10 -0
- package/dist/grounding/renderers/prompt-renderer.d.ts.map +1 -0
- package/dist/grounding/renderers/prompt-renderer.js +23 -0
- package/dist/grounding/renderers/prompt-renderer.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/interface/chat/chat-event-state.d.ts +1 -0
- package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
- package/dist/interface/chat/chat-event-state.js +12 -2
- package/dist/interface/chat/chat-event-state.js.map +1 -1
- package/dist/interface/chat/chat-runner.d.ts +18 -6
- package/dist/interface/chat/chat-runner.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner.js +331 -148
- package/dist/interface/chat/chat-runner.js.map +1 -1
- package/dist/interface/chat/cross-platform-session-global.d.ts +5 -0
- package/dist/interface/chat/cross-platform-session-global.d.ts.map +1 -0
- package/dist/interface/chat/cross-platform-session-global.js +17 -0
- package/dist/interface/chat/cross-platform-session-global.js.map +1 -0
- package/dist/interface/chat/cross-platform-session.d.ts +22 -0
- package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
- package/dist/interface/chat/cross-platform-session.js +192 -61
- package/dist/interface/chat/cross-platform-session.js.map +1 -1
- package/dist/interface/chat/event-subscriber.d.ts +14 -0
- package/dist/interface/chat/event-subscriber.d.ts.map +1 -1
- package/dist/interface/chat/event-subscriber.js +138 -28
- package/dist/interface/chat/event-subscriber.js.map +1 -1
- package/dist/interface/chat/grounding.d.ts +22 -1
- package/dist/interface/chat/grounding.d.ts.map +1 -1
- package/dist/interface/chat/grounding.js +82 -127
- package/dist/interface/chat/grounding.js.map +1 -1
- package/dist/interface/chat/ingress-router.d.ts +110 -0
- package/dist/interface/chat/ingress-router.d.ts.map +1 -0
- package/dist/interface/chat/ingress-router.js +183 -0
- package/dist/interface/chat/ingress-router.js.map +1 -0
- package/dist/interface/cli/setup.d.ts.map +1 -1
- package/dist/interface/cli/setup.js +1 -0
- package/dist/interface/cli/setup.js.map +1 -1
- package/dist/interface/tui/app.d.ts +2 -2
- package/dist/interface/tui/app.d.ts.map +1 -1
- package/dist/interface/tui/app.js +9 -0
- package/dist/interface/tui/app.js.map +1 -1
- package/dist/interface/tui/chat/scroll.d.ts +1 -0
- package/dist/interface/tui/chat/scroll.d.ts.map +1 -1
- package/dist/interface/tui/chat/scroll.js +20 -1
- package/dist/interface/tui/chat/scroll.js.map +1 -1
- package/dist/interface/tui/chat/suggestions.d.ts.map +1 -1
- package/dist/interface/tui/chat/suggestions.js +6 -0
- package/dist/interface/tui/chat/suggestions.js.map +1 -1
- package/dist/interface/tui/chat/types.d.ts +2 -0
- package/dist/interface/tui/chat/types.d.ts.map +1 -1
- package/dist/interface/tui/chat/viewport.d.ts.map +1 -1
- package/dist/interface/tui/chat/viewport.js +1 -0
- package/dist/interface/tui/chat/viewport.js.map +1 -1
- package/dist/interface/tui/chat-surface.d.ts +20 -0
- package/dist/interface/tui/chat-surface.d.ts.map +1 -0
- package/dist/interface/tui/chat-surface.js +59 -0
- package/dist/interface/tui/chat-surface.js.map +1 -0
- package/dist/interface/tui/chat.d.ts +1 -1
- package/dist/interface/tui/chat.d.ts.map +1 -1
- package/dist/interface/tui/chat.js +7 -4
- package/dist/interface/tui/chat.js.map +1 -1
- package/dist/interface/tui/entry.d.ts.map +1 -1
- package/dist/interface/tui/entry.js +64 -8
- package/dist/interface/tui/entry.js.map +1 -1
- package/dist/interface/tui/flicker/MouseTracking.d.ts +1 -0
- package/dist/interface/tui/flicker/MouseTracking.d.ts.map +1 -1
- package/dist/interface/tui/flicker/MouseTracking.js +7 -0
- package/dist/interface/tui/flicker/MouseTracking.js.map +1 -1
- package/dist/interface/tui/flicker/frame-writer.d.ts.map +1 -1
- package/dist/interface/tui/flicker/frame-writer.js +5 -4
- package/dist/interface/tui/flicker/frame-writer.js.map +1 -1
- package/dist/interface/tui/flicker/index.d.ts +1 -1
- package/dist/interface/tui/flicker/index.d.ts.map +1 -1
- package/dist/interface/tui/flicker/index.js +1 -1
- package/dist/interface/tui/flicker/index.js.map +1 -1
- package/dist/interface/tui/fullscreen-chat.d.ts +28 -0
- package/dist/interface/tui/fullscreen-chat.d.ts.map +1 -1
- package/dist/interface/tui/fullscreen-chat.js +59 -33
- package/dist/interface/tui/fullscreen-chat.js.map +1 -1
- package/dist/interface/tui/help-overlay.d.ts.map +1 -1
- package/dist/interface/tui/help-overlay.js +1 -1
- package/dist/interface/tui/help-overlay.js.map +1 -1
- package/dist/interface/tui/markdown-renderer.d.ts +1 -1
- package/dist/interface/tui/markdown-renderer.d.ts.map +1 -1
- package/dist/interface/tui/markdown-renderer.js +137 -11
- package/dist/interface/tui/markdown-renderer.js.map +1 -1
- package/dist/interface/tui/test-entry.d.ts.map +1 -1
- package/dist/interface/tui/test-entry.js +3 -2
- package/dist/interface/tui/test-entry.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts +3 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js +76 -112
- package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts +11 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +13 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts +1 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-events.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js +8 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts +1 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js +1 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts +3 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts +1 -1
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +60 -50
- package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts +239 -10
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +298 -96
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/prompted-tool-protocol.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/prompted-tool-protocol.js +1 -0
- package/dist/orchestrator/execution/agent-loop/prompted-tool-protocol.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts +2 -5
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js +10 -12
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.d.ts +2 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js +16 -9
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.d.ts +6 -6
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js +53 -36
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/loop/core-loop/phase-policy.d.ts.map +1 -1
- package/dist/orchestrator/loop/core-loop/phase-policy.js +87 -34
- package/dist/orchestrator/loop/core-loop/phase-policy.js.map +1 -1
- package/dist/orchestrator/loop/core-loop.d.ts +1 -0
- package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
- package/dist/orchestrator/loop/core-loop.js +191 -176
- package/dist/orchestrator/loop/core-loop.js.map +1 -1
- package/dist/platform/dream/dream-types.d.ts +14 -14
- package/dist/platform/knowledge/index.d.ts +3 -0
- package/dist/platform/knowledge/index.d.ts.map +1 -0
- package/dist/platform/knowledge/index.js +3 -0
- package/dist/platform/knowledge/index.js.map +1 -0
- package/dist/platform/knowledge/knowledge-manager.d.ts +1 -4
- package/dist/platform/knowledge/knowledge-manager.d.ts.map +1 -1
- package/dist/platform/knowledge/knowledge-manager.js +1 -4
- package/dist/platform/knowledge/knowledge-manager.js.map +1 -1
- package/dist/platform/knowledge/public-api.d.ts +4 -0
- package/dist/platform/knowledge/public-api.d.ts.map +1 -0
- package/dist/platform/knowledge/public-api.js +4 -0
- package/dist/platform/knowledge/public-api.js.map +1 -0
- package/dist/platform/soil/contracts.d.ts +66 -66
- package/dist/runtime/daemon/runner-goal-cycle.d.ts.map +1 -1
- package/dist/runtime/daemon/runner-goal-cycle.js +36 -1
- package/dist/runtime/daemon/runner-goal-cycle.js.map +1 -1
- package/dist/runtime/plugin-loader.d.ts.map +1 -1
- package/dist/runtime/plugin-loader.js +3 -6
- package/dist/runtime/plugin-loader.js.map +1 -1
- package/dist/runtime/schedule/history.d.ts +3 -3
- package/dist/runtime/schedule/presets.d.ts +20 -20
- package/dist/runtime/schedule/source.d.ts +4 -4
- package/dist/runtime/store/runtime-operation-schemas.d.ts +2 -2
- package/dist/runtime/store/runtime-schemas.d.ts +2 -2
- package/dist/runtime/types/cron.d.ts +4 -4
- package/dist/runtime/types/schedule.d.ts +51 -51
- package/dist/runtime/types/trigger.d.ts +6 -6
- package/dist/tools/builtin/exports.d.ts +79 -0
- package/dist/tools/builtin/exports.d.ts.map +1 -0
- package/dist/tools/builtin/exports.js +78 -0
- package/dist/tools/builtin/exports.js.map +1 -0
- package/dist/tools/builtin/factory.d.ts +33 -0
- package/dist/tools/builtin/factory.d.ts.map +1 -0
- package/dist/tools/builtin/factory.js +182 -0
- package/dist/tools/builtin/factory.js.map +1 -0
- package/dist/tools/builtin/index.d.ts +3 -110
- package/dist/tools/builtin/index.d.ts.map +1 -1
- package/dist/tools/builtin/index.js +2 -262
- package/dist/tools/builtin/index.js.map +1 -1
- package/dist/tools/execution/SoilOpenTool/SoilOpenTool.d.ts +4 -4
- package/dist/tools/execution/SoilPublishTool/SoilPublishTool.d.ts +2 -2
- package/dist/tools/index.d.ts +5 -3
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mutation/TaskCreateTool/TaskCreateTool.d.ts +4 -4
- package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts +4 -4
- package/dist/tools/network/McpStdioTool/McpStdioTool.d.ts +8 -8
- package/dist/tools/schedule/CreateScheduleTool/CreateScheduleTool.d.ts +44 -44
- package/dist/tools/schedule/ListSchedulesTool/ListSchedulesTool.d.ts +4 -4
- package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.d.ts +58 -58
- package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts +6 -6
- package/dist/tools/types.d.ts +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
import { dirname, join, relative, resolve } from "node:path";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { makeSection, makeSource } from "./helpers.js";
|
|
6
|
+
const UNTRUSTED_SEGMENTS = new Set([
|
|
7
|
+
".git",
|
|
8
|
+
"node_modules",
|
|
9
|
+
".next",
|
|
10
|
+
".turbo",
|
|
11
|
+
".cache",
|
|
12
|
+
"vendor",
|
|
13
|
+
"dist",
|
|
14
|
+
"build",
|
|
15
|
+
"coverage",
|
|
16
|
+
"tmp",
|
|
17
|
+
"temp",
|
|
18
|
+
]);
|
|
19
|
+
function findProjectRoot(cwd) {
|
|
20
|
+
let cursor = resolve(cwd);
|
|
21
|
+
while (true) {
|
|
22
|
+
if (existsSync(join(cursor, ".git")))
|
|
23
|
+
return cursor;
|
|
24
|
+
const next = dirname(cursor);
|
|
25
|
+
if (next === cursor)
|
|
26
|
+
return resolve(cwd);
|
|
27
|
+
cursor = next;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function hasUntrustedSegment(filePath) {
|
|
31
|
+
return filePath.split(/[\\/]+/).some((segment) => UNTRUSTED_SEGMENTS.has(segment));
|
|
32
|
+
}
|
|
33
|
+
function hasUntrustedWorkspaceSegment(projectRoot, filePath) {
|
|
34
|
+
const relativePath = relative(projectRoot, filePath);
|
|
35
|
+
if (!relativePath || relativePath.startsWith("..")) {
|
|
36
|
+
return hasUntrustedSegment(filePath);
|
|
37
|
+
}
|
|
38
|
+
return relativePath.split(/[\\/]+/).some((segment) => UNTRUSTED_SEGMENTS.has(segment));
|
|
39
|
+
}
|
|
40
|
+
export async function discoverAgentInstructionCandidates(cwd, maxChars, options = {}) {
|
|
41
|
+
const root = findProjectRoot(cwd);
|
|
42
|
+
const dirs = [];
|
|
43
|
+
let cursor = resolve(cwd);
|
|
44
|
+
while (true) {
|
|
45
|
+
dirs.push(cursor);
|
|
46
|
+
if (cursor === root)
|
|
47
|
+
break;
|
|
48
|
+
const next = dirname(cursor);
|
|
49
|
+
if (next === cursor)
|
|
50
|
+
break;
|
|
51
|
+
cursor = next;
|
|
52
|
+
}
|
|
53
|
+
const candidates = [];
|
|
54
|
+
let remaining = maxChars;
|
|
55
|
+
const homeCandidates = [
|
|
56
|
+
join(homedir(), ".pulseed", "AGENTS.md"),
|
|
57
|
+
join(homedir(), ".pulseed", "AGENTS.override.md"),
|
|
58
|
+
];
|
|
59
|
+
for (const filePath of homeCandidates) {
|
|
60
|
+
if (!existsSync(filePath) || remaining <= 0)
|
|
61
|
+
continue;
|
|
62
|
+
const content = (await readFile(filePath, "utf-8")).slice(0, remaining);
|
|
63
|
+
remaining -= content.length;
|
|
64
|
+
candidates.push({
|
|
65
|
+
filePath,
|
|
66
|
+
content,
|
|
67
|
+
priority: filePath.endsWith("override.md") ? 1 : 2,
|
|
68
|
+
trusted: true,
|
|
69
|
+
accepted: true,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
for (const dir of dirs.reverse()) {
|
|
73
|
+
const projectCandidates = [join(dir, "AGENTS.md"), join(dir, "AGENTS.override.md")];
|
|
74
|
+
for (const filePath of projectCandidates) {
|
|
75
|
+
if (!existsSync(filePath) || remaining <= 0)
|
|
76
|
+
continue;
|
|
77
|
+
const trusted = options.trustProjectInstructions !== false && !hasUntrustedWorkspaceSegment(root, filePath);
|
|
78
|
+
const content = (await readFile(filePath, "utf-8")).slice(0, remaining);
|
|
79
|
+
remaining -= content.length;
|
|
80
|
+
candidates.push({
|
|
81
|
+
filePath,
|
|
82
|
+
content,
|
|
83
|
+
priority: filePath.endsWith("override.md") ? 3 : 5,
|
|
84
|
+
trusted,
|
|
85
|
+
accepted: trusted,
|
|
86
|
+
reason: trusted
|
|
87
|
+
? undefined
|
|
88
|
+
: options.trustProjectInstructions === false
|
|
89
|
+
? "project instructions disabled by execution policy"
|
|
90
|
+
: "untrusted path segment",
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return candidates.sort((a, b) => a.priority - b.priority || a.filePath.localeCompare(b.filePath));
|
|
95
|
+
}
|
|
96
|
+
export const repoInstructionsProvider = {
|
|
97
|
+
key: "repo_instructions",
|
|
98
|
+
kind: "dynamic",
|
|
99
|
+
async build(context) {
|
|
100
|
+
const cwd = context.request.workspaceRoot ?? process.cwd();
|
|
101
|
+
const candidates = await discoverAgentInstructionCandidates(cwd, context.profile.budgets.maxRepoInstructionChars, { trustProjectInstructions: context.request.trustProjectInstructions });
|
|
102
|
+
const accepted = candidates.filter((candidate) => candidate.accepted);
|
|
103
|
+
const rejected = candidates.filter((candidate) => !candidate.accepted);
|
|
104
|
+
for (const candidate of rejected) {
|
|
105
|
+
context.warnings.push(`Rejected repo instructions from ${candidate.filePath}: ${candidate.reason ?? "untrusted"}`);
|
|
106
|
+
}
|
|
107
|
+
if (accepted.length > 1) {
|
|
108
|
+
context.warnings.push("Multiple repo instruction files accepted; higher-precedence entries appear first.");
|
|
109
|
+
}
|
|
110
|
+
const sources = candidates.map((candidate) => makeSource("repo_instructions", candidate.filePath, {
|
|
111
|
+
type: "file",
|
|
112
|
+
path: candidate.filePath,
|
|
113
|
+
trusted: candidate.trusted,
|
|
114
|
+
accepted: candidate.accepted,
|
|
115
|
+
metadata: candidate.reason ? { reason: candidate.reason } : undefined,
|
|
116
|
+
}));
|
|
117
|
+
const content = accepted.length > 0
|
|
118
|
+
? accepted.map((candidate) => `[${candidate.filePath}]\n${candidate.content}`).join("\n\n")
|
|
119
|
+
: "No trusted repository instructions available.";
|
|
120
|
+
return makeSection("repo_instructions", content, sources.length > 0 ? sources : [
|
|
121
|
+
makeSource("repo_instructions", "repo instructions", {
|
|
122
|
+
type: "none",
|
|
123
|
+
trusted: true,
|
|
124
|
+
accepted: true,
|
|
125
|
+
}),
|
|
126
|
+
]);
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=agents-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-provider.js","sourceRoot":"","sources":["../../../src/grounding/providers/agents-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-state-provider.d.ts","sourceRoot":"","sources":["../../../src/grounding/providers/goal-state-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAQzD,eAAO,MAAM,iBAAiB,EAAE,iBAkC/B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { makeSection, makeSource } from "./helpers.js";
|
|
2
|
+
function formatGoal(goalId, goal) {
|
|
3
|
+
const loopStatus = goal.loop_status && goal.loop_status !== "idle" ? ` [${goal.loop_status}]` : "";
|
|
4
|
+
return `- ${goal.title} (${goalId})${loopStatus} - status: ${goal.status}`;
|
|
5
|
+
}
|
|
6
|
+
export const goalStateProvider = {
|
|
7
|
+
key: "goal_state",
|
|
8
|
+
kind: "dynamic",
|
|
9
|
+
async build(context) {
|
|
10
|
+
const stateManager = context.deps.stateManager;
|
|
11
|
+
if (!stateManager) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const ids = await stateManager.listGoalIds();
|
|
15
|
+
const focusedIds = context.request.goalId && ids.includes(context.request.goalId)
|
|
16
|
+
? [context.request.goalId, ...ids.filter((id) => id !== context.request.goalId)]
|
|
17
|
+
: ids;
|
|
18
|
+
const limitedIds = focusedIds.slice(0, context.profile.budgets.maxGoalCount);
|
|
19
|
+
const goals = await Promise.all(limitedIds.map(async (id) => await stateManager.loadGoal(id)));
|
|
20
|
+
const lines = goals
|
|
21
|
+
.map((goal, index) => (goal ? formatGoal(limitedIds[index], goal) : null))
|
|
22
|
+
.filter((line) => Boolean(line));
|
|
23
|
+
const content = lines.length > 0 ? lines.join("\n") : "No goals configured yet.";
|
|
24
|
+
return makeSection("goal_state", content, [
|
|
25
|
+
makeSource("goal_state", "stateManager.listGoalIds", {
|
|
26
|
+
type: lines.length > 0 ? "state" : "none",
|
|
27
|
+
trusted: true,
|
|
28
|
+
accepted: true,
|
|
29
|
+
retrievalId: lines.length > 0 ? `goals:${limitedIds.join(",")}` : "none:goal_state",
|
|
30
|
+
}),
|
|
31
|
+
], { title: "Current Goals" });
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=goal-state-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-state-provider.js","sourceRoot":"","sources":["../../../src/grounding/providers/goal-state-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,SAAS,UAAU,CAAC,MAAc,EAAE,IAAU;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnG,OAAO,KAAK,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,UAAU,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,CAAC,KAAK,CAAC,OAAO;QACjB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/E,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChF,CAAC,CAAC,GAAG,CAAC;QACR,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,KAAK,GAAG,KAAK;aAChB,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC1E,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAEjF,OAAO,WAAW,CAChB,YAAY,EACZ,OAAO,EACP;YACE,UAAU,CAAC,YAAY,EAAE,0BAA0B,EAAE;gBACnD,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBACzC,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB;aACpF,CAAC;SACH,EACD,EAAE,KAAK,EAAE,eAAe,EAAE,CAC3B,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { GroundingSection, GroundingSectionKey, GroundingSourceRef } from "../contracts.js";
|
|
2
|
+
export declare function estimateTokens(content: string): number;
|
|
3
|
+
export declare function makeSection(key: GroundingSectionKey, content: string, sources: GroundingSourceRef[], overrides?: Partial<Pick<GroundingSection, "title" | "priority">>): GroundingSection;
|
|
4
|
+
export declare function makeSource(sectionKey: GroundingSectionKey, label: string, overrides?: Partial<GroundingSourceRef>): GroundingSourceRef;
|
|
5
|
+
export declare function sortSections<T extends GroundingSection>(sections: T[]): T[];
|
|
6
|
+
export declare function resolveHomeDir(homeDir?: string): string;
|
|
7
|
+
export declare function resolveStateManagerBaseDir(stateManager?: {
|
|
8
|
+
getBaseDir?: () => string;
|
|
9
|
+
}): string | undefined;
|
|
10
|
+
export declare function readJsonFile(filePath: string): Promise<Record<string, unknown> | null>;
|
|
11
|
+
export declare function listDirectoryNames(dirPath: string): Promise<string[]>;
|
|
12
|
+
export declare function soilRootFromHome(homeDir: string): string;
|
|
13
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/grounding/providers/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAsCjG,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,GAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,UAAU,CAAC,CAAM,GACpE,gBAAgB,CASlB;AAED,wBAAgB,UAAU,CACxB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC1C,kBAAkB,CAWpB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,gBAAgB,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAE3E;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,0BAA0B,CAAC,YAAY,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAE3G;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAO5F;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAO3E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as fsp from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { getPulseedDirPath } from "../../base/utils/paths.js";
|
|
4
|
+
const SECTION_TITLES = {
|
|
5
|
+
identity: "Identity",
|
|
6
|
+
execution_policy: "Execution Policy",
|
|
7
|
+
approval_policy: "Approval Policy",
|
|
8
|
+
trust_state: "Trust State",
|
|
9
|
+
repo_instructions: "Repository Instructions",
|
|
10
|
+
goal_state: "Goal State",
|
|
11
|
+
task_state: "Task State",
|
|
12
|
+
progress_history: "Progress History",
|
|
13
|
+
session_history: "Session History",
|
|
14
|
+
soil_knowledge: "Soil Knowledge",
|
|
15
|
+
knowledge_query: "Knowledge Query",
|
|
16
|
+
lessons: "Lessons",
|
|
17
|
+
provider_state: "Provider State",
|
|
18
|
+
plugins: "Plugins",
|
|
19
|
+
workspace_facts: "Workspace Facts",
|
|
20
|
+
};
|
|
21
|
+
const SECTION_PRIORITIES = {
|
|
22
|
+
identity: 10,
|
|
23
|
+
execution_policy: 20,
|
|
24
|
+
approval_policy: 30,
|
|
25
|
+
repo_instructions: 40,
|
|
26
|
+
trust_state: 50,
|
|
27
|
+
provider_state: 60,
|
|
28
|
+
plugins: 70,
|
|
29
|
+
goal_state: 80,
|
|
30
|
+
task_state: 90,
|
|
31
|
+
session_history: 100,
|
|
32
|
+
progress_history: 110,
|
|
33
|
+
workspace_facts: 120,
|
|
34
|
+
soil_knowledge: 130,
|
|
35
|
+
knowledge_query: 140,
|
|
36
|
+
lessons: 150,
|
|
37
|
+
};
|
|
38
|
+
export function estimateTokens(content) {
|
|
39
|
+
return Math.max(1, Math.ceil(content.length / 4));
|
|
40
|
+
}
|
|
41
|
+
export function makeSection(key, content, sources, overrides = {}) {
|
|
42
|
+
return {
|
|
43
|
+
key,
|
|
44
|
+
title: overrides.title ?? SECTION_TITLES[key],
|
|
45
|
+
priority: overrides.priority ?? SECTION_PRIORITIES[key],
|
|
46
|
+
estimatedTokens: estimateTokens(content),
|
|
47
|
+
content,
|
|
48
|
+
sources,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export function makeSource(sectionKey, label, overrides = {}) {
|
|
52
|
+
return {
|
|
53
|
+
sectionKey,
|
|
54
|
+
type: overrides.type ?? "derived",
|
|
55
|
+
label,
|
|
56
|
+
...(overrides.path ? { path: overrides.path } : {}),
|
|
57
|
+
...(overrides.trusted !== undefined ? { trusted: overrides.trusted } : {}),
|
|
58
|
+
...(overrides.accepted !== undefined ? { accepted: overrides.accepted } : {}),
|
|
59
|
+
...(overrides.retrievalId ? { retrievalId: overrides.retrievalId } : {}),
|
|
60
|
+
...(overrides.metadata ? { metadata: overrides.metadata } : {}),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function sortSections(sections) {
|
|
64
|
+
return [...sections].sort((a, b) => a.priority - b.priority || a.title.localeCompare(b.title));
|
|
65
|
+
}
|
|
66
|
+
export function resolveHomeDir(homeDir) {
|
|
67
|
+
return homeDir ?? getPulseedDirPath();
|
|
68
|
+
}
|
|
69
|
+
export function resolveStateManagerBaseDir(stateManager) {
|
|
70
|
+
return typeof stateManager?.getBaseDir === "function" ? stateManager.getBaseDir() : undefined;
|
|
71
|
+
}
|
|
72
|
+
export async function readJsonFile(filePath) {
|
|
73
|
+
try {
|
|
74
|
+
const raw = await fsp.readFile(filePath, "utf-8");
|
|
75
|
+
return JSON.parse(raw);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export async function listDirectoryNames(dirPath) {
|
|
82
|
+
try {
|
|
83
|
+
const entries = await fsp.readdir(dirPath, { withFileTypes: true });
|
|
84
|
+
return entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export function soilRootFromHome(homeDir) {
|
|
91
|
+
return path.join(homeDir, "soil");
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/grounding/providers/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-provider.d.ts","sourceRoot":"","sources":["../../../src/grounding/providers/knowledge-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGnF,eAAO,MAAM,sBAAsB,EAAE,iBAmDpC,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { makeSection, makeSource } from "./helpers.js";
|
|
2
|
+
export const knowledgeQueryProvider = {
|
|
3
|
+
key: "knowledge_query",
|
|
4
|
+
kind: "dynamic",
|
|
5
|
+
async build(context) {
|
|
6
|
+
const query = context.request.query ?? context.request.userMessage;
|
|
7
|
+
if (!query?.trim()) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const soilHitCount = Number(context.runtime.get("soil_hit_count") ?? 0);
|
|
11
|
+
if (soilHitCount > 0 && !context.request.knowledgeContext?.trim()) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
let result = null;
|
|
15
|
+
if (context.request.knowledgeContext?.trim()) {
|
|
16
|
+
result = {
|
|
17
|
+
retrievalId: "knowledge:prefetched",
|
|
18
|
+
items: [
|
|
19
|
+
{
|
|
20
|
+
id: "knowledge:prefetched",
|
|
21
|
+
content: context.request.knowledgeContext.trim(),
|
|
22
|
+
source: "request.knowledgeContext",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
else if (context.request.knowledgeQuery) {
|
|
28
|
+
result = await context.request.knowledgeQuery({
|
|
29
|
+
query,
|
|
30
|
+
goalId: context.request.goalId,
|
|
31
|
+
limit: context.profile.budgets.maxKnowledgeHits,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const items = result?.items ?? [];
|
|
35
|
+
context.runtime.set("knowledge_hit_count", items.length);
|
|
36
|
+
return makeSection("knowledge_query", items.length > 0
|
|
37
|
+
? items.slice(0, context.profile.budgets.maxKnowledgeHits).map((item) => `- ${item.content}`).join("\n")
|
|
38
|
+
: "No broader knowledge results.", [
|
|
39
|
+
makeSource("knowledge_query", "knowledge query", {
|
|
40
|
+
type: items.length > 0 ? "tool" : "none",
|
|
41
|
+
trusted: true,
|
|
42
|
+
accepted: true,
|
|
43
|
+
retrievalId: items.length > 0 ? result?.retrievalId ?? "knowledge:query" : "none:knowledge_query",
|
|
44
|
+
metadata: result?.warnings ? { warnings: result.warnings } : undefined,
|
|
45
|
+
}),
|
|
46
|
+
]);
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=knowledge-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-provider.js","sourceRoot":"","sources":["../../../src/grounding/providers/knowledge-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,SAAS;IACf,KAAK,CAAC,KAAK,CAAC,OAAO;QACjB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;QACnE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,MAAM,GAAoC,IAAI,CAAC;QACnD,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YAC7C,MAAM,GAAG;gBACP,WAAW,EAAE,sBAAsB;gBACnC,KAAK,EAAE;oBACL;wBACE,EAAE,EAAE,sBAAsB;wBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE;wBAChD,MAAM,EAAE,0BAA0B;qBACnC;iBACF;aACF,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC1C,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;gBAC5C,KAAK;gBACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;gBAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB;aAChD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,WAAW,CAChB,iBAAiB,EACjB,KAAK,CAAC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACxG,CAAC,CAAC,+BAA+B,EACnC;YACE,UAAU,CAAC,iBAAiB,EAAE,iBAAiB,EAAE;gBAC/C,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBACxC,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,iBAAiB,CAAC,CAAC,CAAC,sBAAsB;gBACjG,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aACvE,CAAC;SACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lessons-provider.d.ts","sourceRoot":"","sources":["../../../src/grounding/providers/lessons-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,eAAO,MAAM,eAAe,EAAE,iBAqC7B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { makeSection, makeSource } from "./helpers.js";
|
|
2
|
+
export const lessonsProvider = {
|
|
3
|
+
key: "lessons",
|
|
4
|
+
kind: "dynamic",
|
|
5
|
+
async build(context) {
|
|
6
|
+
const query = context.request.query ?? context.request.userMessage;
|
|
7
|
+
if (!query?.trim() || !context.request.lessonsQuery) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const result = await context.request.lessonsQuery({
|
|
11
|
+
query,
|
|
12
|
+
goalId: context.request.goalId,
|
|
13
|
+
limit: context.profile.budgets.maxKnowledgeHits,
|
|
14
|
+
});
|
|
15
|
+
const items = result?.items ?? [];
|
|
16
|
+
if (items.length === 0) {
|
|
17
|
+
return makeSection("lessons", "No lesson snippets matched.", [
|
|
18
|
+
makeSource("lessons", "lessons query", {
|
|
19
|
+
type: "none",
|
|
20
|
+
trusted: true,
|
|
21
|
+
accepted: true,
|
|
22
|
+
retrievalId: "none:lessons",
|
|
23
|
+
}),
|
|
24
|
+
]);
|
|
25
|
+
}
|
|
26
|
+
return makeSection("lessons", items.map((item) => `- ${item.content}`).join("\n"), [
|
|
27
|
+
makeSource("lessons", "lessons query", {
|
|
28
|
+
type: "derived",
|
|
29
|
+
trusted: true,
|
|
30
|
+
accepted: true,
|
|
31
|
+
retrievalId: "lessons:query",
|
|
32
|
+
}),
|
|
33
|
+
]);
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=lessons-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lessons-provider.js","sourceRoot":"","sources":["../../../src/grounding/providers/lessons-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,KAAK,CAAC,KAAK,CAAC,OAAO;QACjB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;QACnE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;YAChD,KAAK;YACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB;SAChD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC,SAAS,EAAE,6BAA6B,EAAE;gBAC3D,UAAU,CAAC,SAAS,EAAE,eAAe,EAAE;oBACrC,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,cAAc;iBAC5B,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QACD,OAAO,WAAW,CAChB,SAAS,EACT,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACnD;YACE,UAAU,CAAC,SAAS,EAAE,eAAe,EAAE;gBACrC,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,eAAe;aAC7B,CAAC;SACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins-provider.d.ts","sourceRoot":"","sources":["../../../src/grounding/providers/plugins-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,eAAO,MAAM,eAAe,EAAE,iBAsC7B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import { listDirectoryNames, makeSection, makeSource, resolveHomeDir } from "./helpers.js";
|
|
3
|
+
export const pluginsProvider = {
|
|
4
|
+
key: "plugins",
|
|
5
|
+
kind: "dynamic",
|
|
6
|
+
async build(context) {
|
|
7
|
+
let plugins = [];
|
|
8
|
+
const homeDir = resolveHomeDir(context.request.homeDir ?? context.deps.stateManager?.getBaseDir?.());
|
|
9
|
+
const pluginsDir = path.join(homeDir, "plugins");
|
|
10
|
+
if (context.deps.pluginLoader) {
|
|
11
|
+
try {
|
|
12
|
+
const loaded = await context.deps.pluginLoader.loadAll();
|
|
13
|
+
plugins = loaded
|
|
14
|
+
.filter((plugin) => plugin.enabled !== false)
|
|
15
|
+
.map((plugin) => plugin.name)
|
|
16
|
+
.sort((a, b) => a.localeCompare(b));
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
context.warnings.push(`plugins provider failed to load plugin metadata: ${error instanceof Error ? error.message : String(error)}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (plugins.length === 0) {
|
|
23
|
+
plugins = (await listDirectoryNames(pluginsDir)).sort((a, b) => a.localeCompare(b));
|
|
24
|
+
}
|
|
25
|
+
return makeSection("plugins", `Installed: ${plugins.length > 0 ? plugins.join(", ") : "none"}`, [
|
|
26
|
+
makeSource("plugins", "plugins directory", {
|
|
27
|
+
type: plugins.length > 0 ? "file" : "none",
|
|
28
|
+
path: pluginsDir,
|
|
29
|
+
trusted: true,
|
|
30
|
+
accepted: true,
|
|
31
|
+
}),
|
|
32
|
+
], { title: "Installed Plugins" });
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=plugins-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins-provider.js","sourceRoot":"","sources":["../../../src/grounding/providers/plugins-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3F,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,KAAK,CAAC,KAAK,CAAC,OAAO;QACjB,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACrG,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzD,OAAO,GAAG,MAAM;qBACb,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC;qBAC5C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;qBAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,oDAAoD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtI,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,WAAW,CAChB,SAAS,EACT,cAAc,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAChE;YACE,UAAU,CAAC,SAAS,EAAE,mBAAmB,EAAE;gBACzC,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBAC1C,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC;SACH,EACD,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAC/B,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-history-provider.d.ts","sourceRoot":"","sources":["../../../src/grounding/providers/progress-history-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,eAAO,MAAM,uBAAuB,EAAE,iBAiCrC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { makeSection, makeSource } from "./helpers.js";
|
|
2
|
+
export const progressHistoryProvider = {
|
|
3
|
+
key: "progress_history",
|
|
4
|
+
kind: "dynamic",
|
|
5
|
+
async build(context) {
|
|
6
|
+
const stateManager = context.deps.stateManager;
|
|
7
|
+
const goalId = context.request.goalId;
|
|
8
|
+
if (!stateManager || !goalId) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
const entries = await stateManager.loadGapHistory(goalId);
|
|
12
|
+
const limited = entries.slice(-context.profile.budgets.maxProgressEntries);
|
|
13
|
+
const lines = limited.map((entry) => {
|
|
14
|
+
const gaps = entry.gap_vector
|
|
15
|
+
.slice(0, 3)
|
|
16
|
+
.map((gap) => `${gap.dimension_name}=${gap.normalized_weighted_gap.toFixed(2)}`)
|
|
17
|
+
.join(", ");
|
|
18
|
+
return `- iteration ${entry.iteration} @ ${entry.timestamp}: ${gaps || "no dimensions"}`;
|
|
19
|
+
});
|
|
20
|
+
return makeSection("progress_history", lines.length > 0 ? lines.join("\n") : "No progress history available.", [
|
|
21
|
+
makeSource("progress_history", "gap history", {
|
|
22
|
+
type: lines.length > 0 ? "state" : "none",
|
|
23
|
+
trusted: true,
|
|
24
|
+
accepted: true,
|
|
25
|
+
retrievalId: lines.length > 0 ? `progress:${goalId}` : "none:progress_history",
|
|
26
|
+
}),
|
|
27
|
+
]);
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=progress-history-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-history-provider.js","sourceRoot":"","sources":["../../../src/grounding/providers/progress-history-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,GAAG,EAAE,kBAAkB;IACvB,IAAI,EAAE,SAAS;IACf,KAAK,CAAC,KAAK,CAAC,OAAO;QACjB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU;iBAC1B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/E,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,eAAe,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,eAAe,EAAE,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAChB,kBAAkB,EAClB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gCAAgC,EACtE;YACE,UAAU,CAAC,kBAAkB,EAAE,aAAa,EAAE;gBAC5C,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBACzC,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,uBAAuB;aAC/E,CAAC;SACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-state-provider.d.ts","sourceRoot":"","sources":["../../../src/grounding/providers/provider-state-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAczD,eAAO,MAAM,qBAAqB,EAAE,iBAgBnC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import { makeSection, makeSource, readJsonFile, resolveHomeDir } from "./helpers.js";
|
|
3
|
+
function summarizeProviderState(raw) {
|
|
4
|
+
if (!raw) {
|
|
5
|
+
return "not configured";
|
|
6
|
+
}
|
|
7
|
+
const llm = typeof raw["llm"] === "string" ? raw["llm"] : null;
|
|
8
|
+
const adapter = typeof raw["default_adapter"] === "string" ? raw["default_adapter"] : null;
|
|
9
|
+
if (llm && adapter)
|
|
10
|
+
return `${llm} / ${adapter}`;
|
|
11
|
+
if (llm)
|
|
12
|
+
return llm;
|
|
13
|
+
return "not configured";
|
|
14
|
+
}
|
|
15
|
+
export const providerStateProvider = {
|
|
16
|
+
key: "provider_state",
|
|
17
|
+
kind: "dynamic",
|
|
18
|
+
async build(context) {
|
|
19
|
+
const homeDir = resolveHomeDir(context.request.homeDir ?? context.deps.stateManager?.getBaseDir?.());
|
|
20
|
+
const providerPath = path.join(homeDir, "provider.json");
|
|
21
|
+
const raw = await readJsonFile(providerPath);
|
|
22
|
+
return makeSection("provider_state", summarizeProviderState(raw), [
|
|
23
|
+
makeSource("provider_state", "provider.json", {
|
|
24
|
+
type: raw ? "file" : "none",
|
|
25
|
+
path: providerPath,
|
|
26
|
+
trusted: true,
|
|
27
|
+
accepted: true,
|
|
28
|
+
}),
|
|
29
|
+
], { title: "Provider" });
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=provider-state-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-state-provider.js","sourceRoot":"","sources":["../../../src/grounding/providers/provider-state-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAErF,SAAS,sBAAsB,CAAC,GAAmC;IACjE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,iBAAiB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,IAAI,GAAG,IAAI,OAAO;QAAE,OAAO,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;IACjD,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,SAAS;IACf,KAAK,CAAC,KAAK,CAAC,OAAO;QACjB,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACrG,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE;YAChE,UAAU,CAAC,gBAAgB,EAAE,eAAe,EAAE;gBAC5C,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBAC3B,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC;SACH,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-history-provider.d.ts","sourceRoot":"","sources":["../../../src/grounding/providers/session-history-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAS3E,eAAO,MAAM,sBAAsB,EAAE,iBAwEpC,CAAC"}
|