@roarpeng/graphflow 1.7.0 → 1.7.5
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/CHANGELOG.md +47 -0
- package/README.md +13 -10
- package/dist/agents/insight.d.ts +13 -2
- package/dist/agents/insight.d.ts.map +1 -1
- package/dist/agents/insight.js +56 -26
- package/dist/agents/insight.js.map +1 -1
- package/dist/agents/task-profile.d.ts +19 -0
- package/dist/agents/task-profile.d.ts.map +1 -0
- package/dist/agents/task-profile.js +64 -0
- package/dist/agents/task-profile.js.map +1 -0
- package/dist/agents/validator.js +1 -1
- package/dist/agents/validator.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +3 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/discover-workspace.d.ts.map +1 -1
- package/dist/config/discover-workspace.js +10 -2
- package/dist/config/discover-workspace.js.map +1 -1
- package/dist/config/embedding-factory.d.ts.map +1 -1
- package/dist/config/embedding-factory.js +88 -9
- package/dist/config/embedding-factory.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +9 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/provider-env.d.ts +32 -0
- package/dist/config/provider-env.d.ts.map +1 -0
- package/dist/config/provider-env.js +51 -0
- package/dist/config/provider-env.js.map +1 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +7 -2
- package/dist/config/resolve.js.map +1 -1
- package/dist/config/schema.d.ts +17 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/workspace-root.d.ts +0 -12
- package/dist/config/workspace-root.d.ts.map +1 -1
- package/dist/config/workspace-root.js +21 -5
- package/dist/config/workspace-root.js.map +1 -1
- package/dist/core/agent-delegation.d.ts +5 -0
- package/dist/core/agent-delegation.d.ts.map +1 -1
- package/dist/core/agent-delegation.js +131 -57
- package/dist/core/agent-delegation.js.map +1 -1
- package/dist/core/cancellation.d.ts +57 -0
- package/dist/core/cancellation.d.ts.map +1 -0
- package/dist/core/cancellation.js +195 -0
- package/dist/core/cancellation.js.map +1 -0
- package/dist/core/dag-engine.d.ts +6 -1
- package/dist/core/dag-engine.d.ts.map +1 -1
- package/dist/core/dag-engine.js +67 -9
- package/dist/core/dag-engine.js.map +1 -1
- package/dist/core/orchestrator-context.d.ts.map +1 -1
- package/dist/core/orchestrator-context.js +3 -0
- package/dist/core/orchestrator-context.js.map +1 -1
- package/dist/core/orchestrator-route.d.ts +1 -1
- package/dist/core/orchestrator-route.d.ts.map +1 -1
- package/dist/core/orchestrator-route.js.map +1 -1
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +61 -42
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/runtime-controller.d.ts +19 -0
- package/dist/core/runtime-controller.d.ts.map +1 -0
- package/dist/core/runtime-controller.js +89 -0
- package/dist/core/runtime-controller.js.map +1 -0
- package/dist/core/types.d.ts +5 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/graph/context-cache.d.ts +23 -0
- package/dist/graph/context-cache.d.ts.map +1 -0
- package/dist/graph/context-cache.js +92 -0
- package/dist/graph/context-cache.js.map +1 -0
- package/dist/graph/context-slicer-types.d.ts +2 -0
- package/dist/graph/context-slicer-types.d.ts.map +1 -1
- package/dist/graph/context-slicer-types.js.map +1 -1
- package/dist/graph/context-slicer.d.ts +1 -0
- package/dist/graph/context-slicer.d.ts.map +1 -1
- package/dist/graph/context-slicer.js +54 -8
- package/dist/graph/context-slicer.js.map +1 -1
- package/dist/graph/file-indexer.d.ts +4 -1
- package/dist/graph/file-indexer.d.ts.map +1 -1
- package/dist/graph/file-indexer.js +16 -5
- package/dist/graph/file-indexer.js.map +1 -1
- package/dist/graph/file-watcher.d.ts.map +1 -1
- package/dist/graph/file-watcher.js +9 -2
- package/dist/graph/file-watcher.js.map +1 -1
- package/dist/graph/graph-utils.d.ts +6 -1
- package/dist/graph/graph-utils.d.ts.map +1 -1
- package/dist/graph/graph-utils.js +116 -2
- package/dist/graph/graph-utils.js.map +1 -1
- package/dist/graph/graphify-file-client.d.ts.map +1 -1
- package/dist/graph/graphify-file-client.js +2 -1
- package/dist/graph/graphify-file-client.js.map +1 -1
- package/dist/graph/hit-diversify.d.ts +31 -0
- package/dist/graph/hit-diversify.d.ts.map +1 -0
- package/dist/graph/hit-diversify.js +270 -0
- package/dist/graph/hit-diversify.js.map +1 -0
- package/dist/graph/language-indexers/go.d.ts.map +1 -1
- package/dist/graph/language-indexers/go.js +2 -3
- package/dist/graph/language-indexers/go.js.map +1 -1
- package/dist/graph/language-indexers/incremental-parse.d.ts +9 -0
- package/dist/graph/language-indexers/incremental-parse.d.ts.map +1 -0
- package/dist/graph/language-indexers/incremental-parse.js +114 -0
- package/dist/graph/language-indexers/incremental-parse.js.map +1 -0
- package/dist/graph/language-indexers/python.d.ts.map +1 -1
- package/dist/graph/language-indexers/python.js +2 -3
- package/dist/graph/language-indexers/python.js.map +1 -1
- package/dist/graph/language-indexers/rust.d.ts.map +1 -1
- package/dist/graph/language-indexers/rust.js +2 -3
- package/dist/graph/language-indexers/rust.js.map +1 -1
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts +19 -3
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -1
- package/dist/graph/language-indexers/tree-sitter-loader.js +24 -4
- package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -1
- package/dist/graph/query-expand.d.ts.map +1 -1
- package/dist/graph/query-expand.js +2 -0
- package/dist/graph/query-expand.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/agent-mcp-installer.d.ts +39 -0
- package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
- package/dist/integrations/agent-mcp-installer.js +242 -31
- package/dist/integrations/agent-mcp-installer.js.map +1 -1
- package/dist/integrations/agent-profiles/index.d.ts +26 -0
- package/dist/integrations/agent-profiles/index.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/index.js +31 -0
- package/dist/integrations/agent-profiles/index.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/amazon-q.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/amazon-q.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/amazon-q.js +18 -0
- package/dist/integrations/agent-profiles/profiles/amazon-q.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/antigravity.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/antigravity.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/antigravity.js +33 -0
- package/dist/integrations/agent-profiles/profiles/antigravity.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/claude-code.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/claude-code.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/claude-code.js +22 -0
- package/dist/integrations/agent-profiles/profiles/claude-code.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/cline.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/cline.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/cline.js +33 -0
- package/dist/integrations/agent-profiles/profiles/cline.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/codex.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/codex.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/codex.js +22 -0
- package/dist/integrations/agent-profiles/profiles/codex.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/continue.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/continue.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/continue.js +23 -0
- package/dist/integrations/agent-profiles/profiles/continue.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/cursor.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/cursor.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/cursor.js +28 -0
- package/dist/integrations/agent-profiles/profiles/cursor.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/gemini.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/gemini.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/gemini.js +30 -0
- package/dist/integrations/agent-profiles/profiles/gemini.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/kilocode.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/kilocode.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/kilocode.js +33 -0
- package/dist/integrations/agent-profiles/profiles/kilocode.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/pearai.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/pearai.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/pearai.js +23 -0
- package/dist/integrations/agent-profiles/profiles/pearai.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/qoder.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/qoder.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/qoder.js +32 -0
- package/dist/integrations/agent-profiles/profiles/qoder.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/roo-code.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/roo-code.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/roo-code.js +33 -0
- package/dist/integrations/agent-profiles/profiles/roo-code.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/trae.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/trae.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/trae.js +42 -0
- package/dist/integrations/agent-profiles/profiles/trae.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/vscode.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/vscode.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/vscode.js +28 -0
- package/dist/integrations/agent-profiles/profiles/vscode.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/windsurf.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/windsurf.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/windsurf.js +21 -0
- package/dist/integrations/agent-profiles/profiles/windsurf.js.map +1 -0
- package/dist/integrations/agent-profiles/profiles/zed.d.ts +2 -0
- package/dist/integrations/agent-profiles/profiles/zed.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/profiles/zed.js +26 -0
- package/dist/integrations/agent-profiles/profiles/zed.js.map +1 -0
- package/dist/integrations/agent-profiles/registry.d.ts +5 -0
- package/dist/integrations/agent-profiles/registry.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/registry.js +45 -0
- package/dist/integrations/agent-profiles/registry.js.map +1 -0
- package/dist/integrations/agent-profiles/skills/antigravity.d.ts +2 -0
- package/dist/integrations/agent-profiles/skills/antigravity.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/skills/antigravity.js +13 -0
- package/dist/integrations/agent-profiles/skills/antigravity.js.map +1 -0
- package/dist/integrations/agent-profiles/skills/claude-code.d.ts +2 -0
- package/dist/integrations/agent-profiles/skills/claude-code.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/skills/claude-code.js +13 -0
- package/dist/integrations/agent-profiles/skills/claude-code.js.map +1 -0
- package/dist/integrations/agent-profiles/skills/codex.d.ts +2 -0
- package/dist/integrations/agent-profiles/skills/codex.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/skills/codex.js +18 -0
- package/dist/integrations/agent-profiles/skills/codex.js.map +1 -0
- package/dist/integrations/agent-profiles/skills/cursor.d.ts +2 -0
- package/dist/integrations/agent-profiles/skills/cursor.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/skills/cursor.js +13 -0
- package/dist/integrations/agent-profiles/skills/cursor.js.map +1 -0
- package/dist/integrations/agent-profiles/skills/kilocode.d.ts +2 -0
- package/dist/integrations/agent-profiles/skills/kilocode.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/skills/kilocode.js +13 -0
- package/dist/integrations/agent-profiles/skills/kilocode.js.map +1 -0
- package/dist/integrations/agent-profiles/skills/qoder.d.ts +2 -0
- package/dist/integrations/agent-profiles/skills/qoder.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/skills/qoder.js +13 -0
- package/dist/integrations/agent-profiles/skills/qoder.js.map +1 -0
- package/dist/integrations/agent-profiles/skills/roo-code.d.ts +2 -0
- package/dist/integrations/agent-profiles/skills/roo-code.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/skills/roo-code.js +13 -0
- package/dist/integrations/agent-profiles/skills/roo-code.js.map +1 -0
- package/dist/integrations/agent-profiles/types.d.ts +31 -0
- package/dist/integrations/agent-profiles/types.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/types.js +3 -0
- package/dist/integrations/agent-profiles/types.js.map +1 -0
- package/dist/integrations/agent-profiles/utils.d.ts +12 -0
- package/dist/integrations/agent-profiles/utils.d.ts.map +1 -0
- package/dist/integrations/agent-profiles/utils.js +75 -0
- package/dist/integrations/agent-profiles/utils.js.map +1 -0
- package/dist/integrations/errors.d.ts +28 -0
- package/dist/integrations/errors.d.ts.map +1 -0
- package/dist/integrations/errors.js +97 -0
- package/dist/integrations/errors.js.map +1 -0
- package/dist/integrations/skill-health.d.ts +24 -0
- package/dist/integrations/skill-health.d.ts.map +1 -0
- package/dist/integrations/skill-health.js +111 -0
- package/dist/integrations/skill-health.js.map +1 -0
- package/dist/integrations/skill-installer.d.ts.map +1 -1
- package/dist/integrations/skill-installer.js +5 -8
- package/dist/integrations/skill-installer.js.map +1 -1
- package/dist/learning/embedding-quality.d.ts +46 -0
- package/dist/learning/embedding-quality.d.ts.map +1 -0
- package/dist/learning/embedding-quality.js +131 -0
- package/dist/learning/embedding-quality.js.map +1 -0
- package/dist/learning/embeddings.d.ts +45 -1
- package/dist/learning/embeddings.d.ts.map +1 -1
- package/dist/learning/embeddings.js +180 -5
- package/dist/learning/embeddings.js.map +1 -1
- package/dist/learning/skill-flywheel.d.ts +1 -1
- package/dist/learning/skill-flywheel.d.ts.map +1 -1
- package/dist/learning/skill-flywheel.js +10 -3
- package/dist/learning/skill-flywheel.js.map +1 -1
- package/dist/routing/deepseek-tools.d.ts +7 -0
- package/dist/routing/deepseek-tools.d.ts.map +1 -0
- package/dist/routing/deepseek-tools.js +154 -0
- package/dist/routing/deepseek-tools.js.map +1 -0
- package/dist/routing/model-router.d.ts +1 -1
- package/dist/routing/model-router.d.ts.map +1 -1
- package/dist/routing/model-router.js +5 -1
- package/dist/routing/model-router.js.map +1 -1
- package/dist/routing/provider-adapters/anthropic.d.ts.map +1 -1
- package/dist/routing/provider-adapters/anthropic.js +7 -4
- package/dist/routing/provider-adapters/anthropic.js.map +1 -1
- package/dist/routing/provider-adapters/bailian.d.ts.map +1 -1
- package/dist/routing/provider-adapters/bailian.js +7 -4
- package/dist/routing/provider-adapters/bailian.js.map +1 -1
- package/dist/routing/provider-adapters/deepseek.d.ts +5 -0
- package/dist/routing/provider-adapters/deepseek.d.ts.map +1 -0
- package/dist/routing/provider-adapters/deepseek.js +109 -0
- package/dist/routing/provider-adapters/deepseek.js.map +1 -0
- package/dist/routing/provider-adapters/doubao.d.ts.map +1 -1
- package/dist/routing/provider-adapters/doubao.js +7 -4
- package/dist/routing/provider-adapters/doubao.js.map +1 -1
- package/dist/routing/provider-adapters/openai.d.ts +2 -4
- package/dist/routing/provider-adapters/openai.d.ts.map +1 -1
- package/dist/routing/provider-adapters/openai.js +23 -32
- package/dist/routing/provider-adapters/openai.js.map +1 -1
- package/dist/routing/provider-adapters/types.d.ts +61 -0
- package/dist/routing/provider-adapters/types.d.ts.map +1 -0
- package/dist/routing/provider-adapters/types.js +56 -0
- package/dist/routing/provider-adapters/types.js.map +1 -0
- package/dist/routing/provider-executor.d.ts +6 -1
- package/dist/routing/provider-executor.d.ts.map +1 -1
- package/dist/routing/provider-executor.js +70 -39
- package/dist/routing/provider-executor.js.map +1 -1
- package/dist/routing/provider-health.d.ts.map +1 -1
- package/dist/routing/provider-health.js +7 -1
- package/dist/routing/provider-health.js.map +1 -1
- package/dist/routing/role-capabilities.d.ts +11 -0
- package/dist/routing/role-capabilities.d.ts.map +1 -0
- package/dist/routing/role-capabilities.js +94 -0
- package/dist/routing/role-capabilities.js.map +1 -0
- package/dist/surfaces/antigravity-rules/graphflow.md +3 -2
- package/dist/surfaces/cli/runtime/env.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/env.js +3 -0
- package/dist/surfaces/cli/runtime/env.js.map +1 -1
- package/dist/surfaces/cli/runtime/facade.d.ts +2 -1
- package/dist/surfaces/cli/runtime/facade.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/facade.js +1 -0
- package/dist/surfaces/cli/runtime/facade.js.map +1 -1
- package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/graph.js +18 -2
- package/dist/surfaces/cli/runtime/graph.js.map +1 -1
- package/dist/surfaces/cli/runtime/routing.d.ts +3 -0
- package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/routing.js +34 -6
- package/dist/surfaces/cli/runtime/routing.js.map +1 -1
- package/dist/surfaces/cli/runtime/types.d.ts +24 -1
- package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.d.ts +1 -1
- package/dist/surfaces/cli/runtime.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.js +2 -1
- package/dist/surfaces/cli/runtime.js.map +1 -1
- package/dist/surfaces/copilot-instructions/graphflow.md +3 -2
- package/dist/surfaces/cursor-rules/graphflow.mdc +3 -2
- package/dist/surfaces/mcp/server.js +17 -6
- package/dist/surfaces/mcp/server.js.map +1 -1
- package/dist/surfaces/mcp/tool-definitions.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-definitions.js +1 -1
- package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.js +2 -0
- package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
- package/dist/surfaces/trae-rules/graphflow.md +3 -2
- package/dist/surfaces/trae-skill/graphflow/SKILL.md +2 -0
- package/package.json +1 -1
- package/scripts/safe-postinstall.cjs +1 -0
- package/src/surfaces/antigravity-rules/graphflow.md +3 -2
- package/src/surfaces/copilot-instructions/graphflow.md +3 -2
- package/src/surfaces/cursor-rules/graphflow.mdc +3 -2
- package/src/surfaces/trae-rules/graphflow.md +3 -2
- package/src/surfaces/trae-skill/graphflow/SKILL.md +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-root.js","sourceRoot":"","sources":["../../src/config/workspace-root.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"workspace-root.js","sourceRoot":"","sources":["../../src/config/workspace-root.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type SixHatsInsight } from "../agents/insight";
|
|
2
2
|
import type { TaskNode } from "./types";
|
|
3
|
+
export { isCompactAgentInsightTask, isResearchAnalysisTask } from "../agents/task-profile";
|
|
3
4
|
export interface AgentWorkItem {
|
|
4
5
|
id: string;
|
|
5
6
|
kind: "six-hats" | "five-whys" | "plan-refinement" | "query-translate" | "intent" | "requirement" | "first-principles" | "decision-matrix" | "reflection";
|
|
@@ -18,6 +19,10 @@ export interface AgentDelegatedPlanInsight {
|
|
|
18
19
|
agentInstructions?: string;
|
|
19
20
|
/** ATP (Advanced Task Protocol) analysis result, when full ATP flow is enabled. */
|
|
20
21
|
atp?: unknown;
|
|
22
|
+
/** Agent-bridge lifecycle: incomplete until work items are submitted + merged. */
|
|
23
|
+
status?: "awaiting-agent" | "complete";
|
|
24
|
+
complete?: boolean;
|
|
25
|
+
requiresAgentBridge?: boolean;
|
|
21
26
|
}
|
|
22
27
|
export declare function buildAgentInsightWorkItems(task: string): AgentWorkItem[];
|
|
23
28
|
export declare function buildAgentDelegationInstructions(task: string, workItems: AgentWorkItem[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-delegation.d.ts","sourceRoot":"","sources":["../../src/core/agent-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-delegation.d.ts","sourceRoot":"","sources":["../../src/core/agent-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE3F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,aAAa,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,YAAY,CAAC;IAC1J,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAE1E,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACxB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mFAAmF;IACnF,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,kFAAkF;IAClF,MAAM,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAuPD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAIxE;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,aAAa,EAAE,GACzB,MAAM,CAiCR;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,QAAQ,EAAE,CAwB/F;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,CAgBtF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAO1E"}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isResearchAnalysisTask = exports.isCompactAgentInsightTask = void 0;
|
|
3
4
|
exports.buildAgentInsightWorkItems = buildAgentInsightWorkItems;
|
|
4
5
|
exports.buildAgentDelegationInstructions = buildAgentDelegationInstructions;
|
|
5
6
|
exports.buildHeuristicPlanFromInsight = buildHeuristicPlanFromInsight;
|
|
6
7
|
exports.buildAgentDelegatedPlanInsight = buildAgentDelegatedPlanInsight;
|
|
7
8
|
exports.summarizeInsightForContext = summarizeInsightForContext;
|
|
8
9
|
const insight_1 = require("../agents/insight");
|
|
10
|
+
const task_profile_1 = require("../agents/task-profile");
|
|
9
11
|
const planner_1 = require("../agents/planner");
|
|
12
|
+
var task_profile_2 = require("../agents/task-profile");
|
|
13
|
+
Object.defineProperty(exports, "isCompactAgentInsightTask", { enumerable: true, get: function () { return task_profile_2.isCompactAgentInsightTask; } });
|
|
14
|
+
Object.defineProperty(exports, "isResearchAnalysisTask", { enumerable: true, get: function () { return task_profile_2.isResearchAnalysisTask; } });
|
|
10
15
|
const HAT_RESPONSE_SCHEMA = {
|
|
11
16
|
observation: "string — single key observation from this hat",
|
|
12
17
|
certainty: "number 0.0-1.0",
|
|
13
18
|
criticalInsight: "string — what this hat contributes",
|
|
14
19
|
};
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
id: `hat-${index + 1}-${hat.color}`,
|
|
18
|
-
kind: "six-hats",
|
|
19
|
-
hat: hat.name,
|
|
20
|
-
prompt: (0, insight_1.buildHatAnalysisPrompt)(task, hat),
|
|
21
|
-
expectedFormat: "json",
|
|
22
|
-
responseSchema: HAT_RESPONSE_SCHEMA,
|
|
23
|
-
}));
|
|
24
|
-
items.unshift({
|
|
20
|
+
function buildIntentWorkItem(task) {
|
|
21
|
+
return {
|
|
25
22
|
id: "intent-analysis",
|
|
26
23
|
kind: "intent",
|
|
27
24
|
prompt: [
|
|
@@ -45,8 +42,10 @@ function buildAgentInsightWorkItems(task) {
|
|
|
45
42
|
nonGoals: "string[]",
|
|
46
43
|
successDefinition: "string",
|
|
47
44
|
},
|
|
48
|
-
}
|
|
49
|
-
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function buildRequirementWorkItem(task) {
|
|
48
|
+
return {
|
|
50
49
|
id: "requirement-analysis",
|
|
51
50
|
kind: "requirement",
|
|
52
51
|
prompt: [
|
|
@@ -70,37 +69,49 @@ function buildAgentInsightWorkItems(task) {
|
|
|
70
69
|
priority: "string",
|
|
71
70
|
scope: "object",
|
|
72
71
|
},
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function buildHatWorkItem(task, hat, index) {
|
|
75
|
+
return {
|
|
76
|
+
id: `hat-${index + 1}-${hat.color}`,
|
|
77
|
+
kind: "six-hats",
|
|
78
|
+
hat: hat.name,
|
|
79
|
+
prompt: (0, insight_1.buildHatAnalysisPrompt)(task, hat),
|
|
80
|
+
expectedFormat: "json",
|
|
81
|
+
responseSchema: HAT_RESPONSE_SCHEMA,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function buildFiveWhyWorkItem(task, hat, index) {
|
|
85
|
+
return {
|
|
86
|
+
id: `why-${index + 1}-${hat.color}`,
|
|
87
|
+
kind: "five-whys",
|
|
88
|
+
hat: hat.name,
|
|
89
|
+
optional: true,
|
|
90
|
+
prompt: [
|
|
91
|
+
`Task: ${task}`,
|
|
92
|
+
"",
|
|
93
|
+
`[OPTIONAL — only answer if your ${hat.name} observation had certainty < 0.6]`,
|
|
94
|
+
`You are drilling into your ${hat.name} observation with a 5-Why chain.`,
|
|
95
|
+
`Focus per step: ${hat.whyFocus}`,
|
|
96
|
+
`Final convergence: ${hat.whyRootFocus}`,
|
|
97
|
+
"",
|
|
98
|
+
"Produce up to 5 Why steps, each a {question, answer}, then the converged rootCause.",
|
|
99
|
+
"Return ONLY a JSON object:",
|
|
100
|
+
"{",
|
|
101
|
+
' "steps": [{"question": "Why ...?", "answer": "..."}],',
|
|
102
|
+
' "rootCause": "the single root cause this chain converges to"',
|
|
103
|
+
"}",
|
|
104
|
+
"If the hat's certainty was >= 0.6, skip this item (do not submit).",
|
|
105
|
+
].join("\n"),
|
|
106
|
+
expectedFormat: "json",
|
|
107
|
+
responseSchema: {
|
|
108
|
+
steps: "Array<{question:string, answer:string}>",
|
|
109
|
+
rootCause: "string — the converged root cause",
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function buildFirstPrinciplesWorkItem(task) {
|
|
114
|
+
return {
|
|
104
115
|
id: "first-principles",
|
|
105
116
|
kind: "first-principles",
|
|
106
117
|
optional: true,
|
|
@@ -124,8 +135,10 @@ function buildAgentInsightWorkItems(task) {
|
|
|
124
135
|
deconstructedTo: "string[]",
|
|
125
136
|
challenges: "string[]",
|
|
126
137
|
},
|
|
127
|
-
}
|
|
128
|
-
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
function buildDecisionMatrixWorkItem(task) {
|
|
141
|
+
return {
|
|
129
142
|
id: "decision-matrix",
|
|
130
143
|
kind: "decision-matrix",
|
|
131
144
|
prompt: [
|
|
@@ -145,8 +158,10 @@ function buildAgentInsightWorkItems(task) {
|
|
|
145
158
|
recommendedOption: "string",
|
|
146
159
|
rationale: "string",
|
|
147
160
|
},
|
|
148
|
-
}
|
|
149
|
-
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function buildPlanRefinementWorkItem(task) {
|
|
164
|
+
return {
|
|
150
165
|
id: "plan-refinement",
|
|
151
166
|
kind: "plan-refinement",
|
|
152
167
|
prompt: [
|
|
@@ -161,14 +176,20 @@ function buildAgentInsightWorkItems(task) {
|
|
|
161
176
|
responseSchema: {
|
|
162
177
|
items: { id: "string", description: "string", dependencies: "string[]" },
|
|
163
178
|
},
|
|
164
|
-
}
|
|
165
|
-
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
function buildPlanReflectionWorkItem(task, optional) {
|
|
182
|
+
return {
|
|
166
183
|
id: "plan-reflection",
|
|
167
184
|
kind: "reflection",
|
|
185
|
+
...(optional ? { optional: true } : {}),
|
|
168
186
|
prompt: [
|
|
169
187
|
`Task: ${task}`,
|
|
170
188
|
"",
|
|
171
|
-
|
|
189
|
+
optional
|
|
190
|
+
? "[OPTIONAL for research/architecture compact mode]"
|
|
191
|
+
: "Reflect on the quality of the plan you produced.",
|
|
192
|
+
optional ? "Optionally reflect on the quality of the plan you produced." : "",
|
|
172
193
|
"Return ONLY a JSON object:",
|
|
173
194
|
"{",
|
|
174
195
|
' "confidence": 0.0-1.0,',
|
|
@@ -176,7 +197,9 @@ function buildAgentInsightWorkItems(task) {
|
|
|
176
197
|
' "missingInformation": ["information that would improve the plan"],',
|
|
177
198
|
' "improvementDirections": ["how the plan could be improved"]',
|
|
178
199
|
"}",
|
|
179
|
-
]
|
|
200
|
+
]
|
|
201
|
+
.filter(Boolean)
|
|
202
|
+
.join("\n"),
|
|
180
203
|
expectedFormat: "json",
|
|
181
204
|
responseSchema: {
|
|
182
205
|
confidence: "number",
|
|
@@ -184,23 +207,70 @@ function buildAgentInsightWorkItems(task) {
|
|
|
184
207
|
missingInformation: "string[]",
|
|
185
208
|
improvementDirections: "string[]",
|
|
186
209
|
},
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/** Compact set for research/analysis: ~7 required (+ optional reflection). */
|
|
213
|
+
function buildCompactAgentInsightWorkItems(task) {
|
|
214
|
+
const items = [buildIntentWorkItem(task)];
|
|
215
|
+
insight_1.SIX_HATS.forEach((hat, index) => {
|
|
216
|
+
if (!(0, task_profile_1.isResearchKeyHatColor)(hat.color)) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
items.push(buildHatWorkItem(task, hat, index));
|
|
187
220
|
});
|
|
221
|
+
items.push(buildDecisionMatrixWorkItem(task));
|
|
222
|
+
items.push(buildPlanRefinementWorkItem(task));
|
|
223
|
+
// Reflection is optional in compact mode — merge only requires !optional IDs.
|
|
224
|
+
items.push(buildPlanReflectionWorkItem(task, true));
|
|
188
225
|
return items;
|
|
189
226
|
}
|
|
227
|
+
/** Full 18-item set for coding/refactor (default). */
|
|
228
|
+
function buildFullAgentInsightWorkItems(task) {
|
|
229
|
+
const items = [buildIntentWorkItem(task), buildRequirementWorkItem(task)];
|
|
230
|
+
insight_1.SIX_HATS.forEach((hat, index) => {
|
|
231
|
+
items.push(buildHatWorkItem(task, hat, index));
|
|
232
|
+
});
|
|
233
|
+
insight_1.SIX_HATS.forEach((hat, index) => {
|
|
234
|
+
items.push(buildFiveWhyWorkItem(task, hat, index));
|
|
235
|
+
});
|
|
236
|
+
items.push(buildFirstPrinciplesWorkItem(task));
|
|
237
|
+
items.push(buildDecisionMatrixWorkItem(task));
|
|
238
|
+
items.push(buildPlanRefinementWorkItem(task));
|
|
239
|
+
items.push(buildPlanReflectionWorkItem(task, false));
|
|
240
|
+
return items;
|
|
241
|
+
}
|
|
242
|
+
function buildAgentInsightWorkItems(task) {
|
|
243
|
+
return (0, task_profile_1.isCompactAgentInsightTask)(task)
|
|
244
|
+
? buildCompactAgentInsightWorkItems(task)
|
|
245
|
+
: buildFullAgentInsightWorkItems(task);
|
|
246
|
+
}
|
|
190
247
|
function buildAgentDelegationInstructions(task, workItems) {
|
|
248
|
+
const required = workItems.filter((item) => !item.optional);
|
|
249
|
+
const compact = (0, task_profile_1.isCompactAgentInsightTask)(task);
|
|
191
250
|
const lines = [
|
|
192
|
-
"[AGENT-
|
|
193
|
-
"
|
|
194
|
-
"
|
|
251
|
+
"[AGENT-BRIDGE REQUIRED] No GraphFlow LLM API key is configured.",
|
|
252
|
+
"YOU (the connected coding agent) MUST complete the insight analysis with your own model.",
|
|
253
|
+
"The insight/plan fields in this response are PLACEHOLDERS — not a finished analysis.",
|
|
254
|
+
"Do NOT treat placeholder insight/plan as final. Do NOT skip submit+merge.",
|
|
255
|
+
"",
|
|
256
|
+
"Protocol (MUST follow in order):",
|
|
257
|
+
'1. Answer each REQUIRED work item prompt with your model (JSON only).',
|
|
258
|
+
'2. MUST submit each via graphflow_insight({ mode: "submit", task, workItemId, response }).',
|
|
259
|
+
'3. After all required items are submitted, MUST call graphflow_insight({ mode: "merge", task }).',
|
|
260
|
+
"4. Use the merged insight + plan as the real result, then implement / report_outcome as needed.",
|
|
195
261
|
"",
|
|
196
262
|
`Task: ${task}`,
|
|
197
263
|
"",
|
|
198
|
-
|
|
264
|
+
`Mode: ${compact ? "compact (research/architecture analysis)" : "full (coding/refactor)"}`,
|
|
265
|
+
`Required work items (${required.length}): ${required.map((item) => item.id).join(", ")}`,
|
|
266
|
+
compact
|
|
267
|
+
? "Suggested order: (1) intent-analysis, (2-5) hats white/black/yellow/blue, (6) decision-matrix, (7) plan-refinement, (8) plan-reflection [optional]."
|
|
268
|
+
: "Suggested order: (1) intent-analysis, (2) requirement-analysis, (3-8) six-hats, (9-14) five-whys [optional if hat certainty>=0.6], (15) first-principles [optional], (16) decision-matrix, (17) plan-refinement, (18) plan-reflection.",
|
|
199
269
|
"",
|
|
200
270
|
"Work items:",
|
|
201
271
|
];
|
|
202
272
|
for (const item of workItems) {
|
|
203
|
-
lines.push(`- ${item.id} (${item.kind}${item.hat ? ` / ${item.hat}` : ""})${item.optional ? " [optional]" : ""}`);
|
|
273
|
+
lines.push(`- ${item.id} (${item.kind}${item.hat ? ` / ${item.hat}` : ""})${item.optional ? " [optional]" : " [REQUIRED]"}`);
|
|
204
274
|
}
|
|
205
275
|
return lines.join("\n");
|
|
206
276
|
}
|
|
@@ -228,13 +298,17 @@ function buildHeuristicPlanFromInsight(task, insight) {
|
|
|
228
298
|
function buildAgentDelegatedPlanInsight(task) {
|
|
229
299
|
const insight = (0, insight_1.analyzeWithSixHatsHeuristic)(task);
|
|
230
300
|
const agentWorkItems = buildAgentInsightWorkItems(task);
|
|
231
|
-
|
|
301
|
+
// Do not invent a DAG from placeholders — agent must submit plan-refinement then merge.
|
|
302
|
+
const plan = [];
|
|
232
303
|
return {
|
|
233
304
|
mode: "agent-delegated",
|
|
234
305
|
insight,
|
|
235
306
|
plan,
|
|
236
307
|
agentWorkItems,
|
|
237
308
|
agentInstructions: buildAgentDelegationInstructions(task, agentWorkItems),
|
|
309
|
+
status: "awaiting-agent",
|
|
310
|
+
complete: false,
|
|
311
|
+
requiresAgentBridge: true,
|
|
238
312
|
};
|
|
239
313
|
}
|
|
240
314
|
function summarizeInsightForContext(insight) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-delegation.js","sourceRoot":"","sources":["../../src/core/agent-delegation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-delegation.js","sourceRoot":"","sources":["../../src/core/agent-delegation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified runtime cancellation + lightweight timeline events.
|
|
3
|
+
*
|
|
4
|
+
* AbortSignal is the single source of truth for cancel/timeout.
|
|
5
|
+
* Pause/resume can later wrap the same token without inventing a second API.
|
|
6
|
+
*/
|
|
7
|
+
export type RuntimeTimelinePhase = "runtime.controller" | "dag.node" | "provider.fetch" | "provider.execute" | "index.file" | "watcher.flush";
|
|
8
|
+
export type RuntimeTimelineStatus = "started" | "completed" | "aborted" | "timeout" | "failed" | "paused" | "resumed";
|
|
9
|
+
export interface RuntimeTimelineEvent {
|
|
10
|
+
ts: number;
|
|
11
|
+
phase: RuntimeTimelinePhase;
|
|
12
|
+
status: RuntimeTimelineStatus;
|
|
13
|
+
id?: string;
|
|
14
|
+
detail?: string;
|
|
15
|
+
durationMs?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface RuntimeTimelineQuery {
|
|
18
|
+
limit?: number;
|
|
19
|
+
phase?: RuntimeTimelinePhase;
|
|
20
|
+
status?: RuntimeTimelineStatus;
|
|
21
|
+
id?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface RuntimeTimelineSummary {
|
|
24
|
+
totalBuffered: number;
|
|
25
|
+
byStatus: Partial<Record<RuntimeTimelineStatus, number>>;
|
|
26
|
+
byPhase: Partial<Record<RuntimeTimelinePhase, number>>;
|
|
27
|
+
recent: RuntimeTimelineEvent[];
|
|
28
|
+
}
|
|
29
|
+
export declare function emitRuntimeTimeline(event: Omit<RuntimeTimelineEvent, "ts"> & {
|
|
30
|
+
ts?: number;
|
|
31
|
+
}): void;
|
|
32
|
+
export declare function getRuntimeTimeline(limit?: number): RuntimeTimelineEvent[];
|
|
33
|
+
export declare function queryRuntimeTimeline(query?: RuntimeTimelineQuery): RuntimeTimelineEvent[];
|
|
34
|
+
export declare function getRuntimeTimelineSummary(): RuntimeTimelineSummary;
|
|
35
|
+
export declare function clearRuntimeTimeline(): void;
|
|
36
|
+
export declare function isAbortError(error: unknown): boolean;
|
|
37
|
+
export interface PauseAwareRuntimeController {
|
|
38
|
+
waitIfPaused(): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export declare function waitWhilePaused(controller?: PauseAwareRuntimeController): Promise<void>;
|
|
41
|
+
/** Merge any number of external signals into one disposable child signal. */
|
|
42
|
+
export declare function createMergedAbortSignal(externals: Array<AbortSignal | undefined>): {
|
|
43
|
+
signal?: AbortSignal;
|
|
44
|
+
dispose: () => void;
|
|
45
|
+
};
|
|
46
|
+
/** Merge an optional external signal with a timeout into one AbortSignal. */
|
|
47
|
+
export declare function createTimeoutSignal(timeoutMs: number, external?: AbortSignal): {
|
|
48
|
+
signal: AbortSignal;
|
|
49
|
+
abort: (reason?: unknown) => void;
|
|
50
|
+
dispose: () => void;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Run an async operation bound to a timeout + optional external AbortSignal.
|
|
54
|
+
* On timeout/cancel, aborts the signal so underlying fetch can tear down sockets.
|
|
55
|
+
*/
|
|
56
|
+
export declare function runAbortable<T>(label: string, timeoutMs: number, external: AbortSignal | undefined, execute: (signal: AbortSignal) => Promise<T>, phase?: RuntimeTimelinePhase): Promise<T>;
|
|
57
|
+
//# sourceMappingURL=cancellation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.d.ts","sourceRoot":"","sources":["../../src/core/cancellation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,UAAU,GACV,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAMD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUnG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAK,GAAG,oBAAoB,EAAE,CAGrE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,oBAAyB,GAAG,oBAAoB,EAAE,CAoB7F;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CAelE;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOpD;AAED,MAAM,WAAW,2BAA2B;IAC1C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,wBAAsB,eAAe,CAAC,UAAU,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,GACxC;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CA+B/C;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,WAAW,GACrB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAuCjF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAC5C,KAAK,GAAE,oBAAyC,GAC/C,OAAO,CAAC,CAAC,CAAC,CAyCZ"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Unified runtime cancellation + lightweight timeline events.
|
|
4
|
+
*
|
|
5
|
+
* AbortSignal is the single source of truth for cancel/timeout.
|
|
6
|
+
* Pause/resume can later wrap the same token without inventing a second API.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.emitRuntimeTimeline = emitRuntimeTimeline;
|
|
10
|
+
exports.getRuntimeTimeline = getRuntimeTimeline;
|
|
11
|
+
exports.queryRuntimeTimeline = queryRuntimeTimeline;
|
|
12
|
+
exports.getRuntimeTimelineSummary = getRuntimeTimelineSummary;
|
|
13
|
+
exports.clearRuntimeTimeline = clearRuntimeTimeline;
|
|
14
|
+
exports.isAbortError = isAbortError;
|
|
15
|
+
exports.waitWhilePaused = waitWhilePaused;
|
|
16
|
+
exports.createMergedAbortSignal = createMergedAbortSignal;
|
|
17
|
+
exports.createTimeoutSignal = createTimeoutSignal;
|
|
18
|
+
exports.runAbortable = runAbortable;
|
|
19
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
20
|
+
const timelineBuffer = [];
|
|
21
|
+
const MAX_TIMELINE_EVENTS = 200;
|
|
22
|
+
const DEFAULT_TIMELINE_RECENT_LIMIT = 30;
|
|
23
|
+
function emitRuntimeTimeline(event) {
|
|
24
|
+
const full = {
|
|
25
|
+
...event,
|
|
26
|
+
ts: event.ts ?? Date.now(),
|
|
27
|
+
};
|
|
28
|
+
timelineBuffer.push(full);
|
|
29
|
+
if (timelineBuffer.length > MAX_TIMELINE_EVENTS) {
|
|
30
|
+
timelineBuffer.splice(0, timelineBuffer.length - MAX_TIMELINE_EVENTS);
|
|
31
|
+
}
|
|
32
|
+
logger_js_1.logger.debug(full, "runtime.timeline");
|
|
33
|
+
}
|
|
34
|
+
function getRuntimeTimeline(limit = 50) {
|
|
35
|
+
const n = Math.max(1, Math.min(limit, MAX_TIMELINE_EVENTS));
|
|
36
|
+
return timelineBuffer.slice(-n);
|
|
37
|
+
}
|
|
38
|
+
function queryRuntimeTimeline(query = {}) {
|
|
39
|
+
const filtered = timelineBuffer.filter((event) => {
|
|
40
|
+
if (query.phase !== undefined && event.phase !== query.phase) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (query.status !== undefined && event.status !== query.status) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (query.id !== undefined && event.id !== query.id) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
});
|
|
51
|
+
if (query.limit === undefined) {
|
|
52
|
+
return filtered;
|
|
53
|
+
}
|
|
54
|
+
const n = Math.max(0, Math.min(query.limit, MAX_TIMELINE_EVENTS));
|
|
55
|
+
return filtered.slice(-n);
|
|
56
|
+
}
|
|
57
|
+
function getRuntimeTimelineSummary() {
|
|
58
|
+
const byStatus = {};
|
|
59
|
+
const byPhase = {};
|
|
60
|
+
for (const event of timelineBuffer) {
|
|
61
|
+
byStatus[event.status] = (byStatus[event.status] ?? 0) + 1;
|
|
62
|
+
byPhase[event.phase] = (byPhase[event.phase] ?? 0) + 1;
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
totalBuffered: timelineBuffer.length,
|
|
66
|
+
byStatus,
|
|
67
|
+
byPhase,
|
|
68
|
+
recent: queryRuntimeTimeline({ limit: DEFAULT_TIMELINE_RECENT_LIMIT }),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function clearRuntimeTimeline() {
|
|
72
|
+
timelineBuffer.length = 0;
|
|
73
|
+
}
|
|
74
|
+
function isAbortError(error) {
|
|
75
|
+
if (!error || typeof error !== "object") {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
const name = "name" in error ? String(error.name) : "";
|
|
79
|
+
const message = "message" in error ? String(error.message) : "";
|
|
80
|
+
return name === "AbortError" || /aborted|abort/i.test(message);
|
|
81
|
+
}
|
|
82
|
+
async function waitWhilePaused(controller) {
|
|
83
|
+
await controller?.waitIfPaused();
|
|
84
|
+
}
|
|
85
|
+
/** Merge any number of external signals into one disposable child signal. */
|
|
86
|
+
function createMergedAbortSignal(externals) {
|
|
87
|
+
const signals = externals.filter((signal) => signal !== undefined);
|
|
88
|
+
if (signals.length === 0) {
|
|
89
|
+
return { dispose: () => undefined };
|
|
90
|
+
}
|
|
91
|
+
const controller = new AbortController();
|
|
92
|
+
const listeners = [];
|
|
93
|
+
const abortFrom = (source) => {
|
|
94
|
+
if (!controller.signal.aborted) {
|
|
95
|
+
controller.abort(source.reason ?? new Error("Aborted"));
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
for (const signal of signals) {
|
|
99
|
+
if (signal.aborted) {
|
|
100
|
+
abortFrom(signal);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const listener = () => abortFrom(signal);
|
|
104
|
+
listeners.push({ signal, listener });
|
|
105
|
+
signal.addEventListener("abort", listener, { once: true });
|
|
106
|
+
}
|
|
107
|
+
const dispose = () => {
|
|
108
|
+
for (const { signal, listener } of listeners) {
|
|
109
|
+
signal.removeEventListener("abort", listener);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
return { signal: controller.signal, dispose };
|
|
113
|
+
}
|
|
114
|
+
/** Merge an optional external signal with a timeout into one AbortSignal. */
|
|
115
|
+
function createTimeoutSignal(timeoutMs, external) {
|
|
116
|
+
const controller = new AbortController();
|
|
117
|
+
let timer;
|
|
118
|
+
const abort = (reason) => {
|
|
119
|
+
if (!controller.signal.aborted) {
|
|
120
|
+
controller.abort(reason);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const onExternalAbort = () => {
|
|
124
|
+
abort(external?.reason ?? new Error("Aborted"));
|
|
125
|
+
};
|
|
126
|
+
if (external) {
|
|
127
|
+
if (external.aborted) {
|
|
128
|
+
onExternalAbort();
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
external.addEventListener("abort", onExternalAbort, { once: true });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (timeoutMs > 0) {
|
|
135
|
+
timer = setTimeout(() => {
|
|
136
|
+
abort(new Error(`Timed out after ${timeoutMs}ms`));
|
|
137
|
+
}, timeoutMs);
|
|
138
|
+
}
|
|
139
|
+
const dispose = () => {
|
|
140
|
+
if (timer) {
|
|
141
|
+
clearTimeout(timer);
|
|
142
|
+
timer = undefined;
|
|
143
|
+
}
|
|
144
|
+
if (external) {
|
|
145
|
+
external.removeEventListener("abort", onExternalAbort);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
return { signal: controller.signal, abort, dispose };
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Run an async operation bound to a timeout + optional external AbortSignal.
|
|
152
|
+
* On timeout/cancel, aborts the signal so underlying fetch can tear down sockets.
|
|
153
|
+
*/
|
|
154
|
+
async function runAbortable(label, timeoutMs, external, execute, phase = "provider.execute") {
|
|
155
|
+
const startedAt = Date.now();
|
|
156
|
+
const { signal, dispose } = createTimeoutSignal(timeoutMs, external);
|
|
157
|
+
emitRuntimeTimeline({ phase, status: "started", id: label });
|
|
158
|
+
try {
|
|
159
|
+
const value = await execute(signal);
|
|
160
|
+
emitRuntimeTimeline({
|
|
161
|
+
phase,
|
|
162
|
+
status: "completed",
|
|
163
|
+
id: label,
|
|
164
|
+
durationMs: Date.now() - startedAt,
|
|
165
|
+
});
|
|
166
|
+
return value;
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
const aborted = signal.aborted || isAbortError(error);
|
|
170
|
+
const reasonText = signal.reason instanceof Error
|
|
171
|
+
? signal.reason.message
|
|
172
|
+
: error instanceof Error
|
|
173
|
+
? error.message
|
|
174
|
+
: String(signal.reason ?? error);
|
|
175
|
+
const timedOut = aborted && /timed out/i.test(reasonText);
|
|
176
|
+
emitRuntimeTimeline({
|
|
177
|
+
phase,
|
|
178
|
+
status: timedOut ? "timeout" : aborted ? "aborted" : "failed",
|
|
179
|
+
id: label,
|
|
180
|
+
detail: error instanceof Error ? error.message : String(error),
|
|
181
|
+
durationMs: Date.now() - startedAt,
|
|
182
|
+
});
|
|
183
|
+
if (aborted && !isAbortError(error)) {
|
|
184
|
+
const reason = signal.reason instanceof Error
|
|
185
|
+
? signal.reason
|
|
186
|
+
: new Error(`${label} aborted${timedOut ? ` (timeout ${timeoutMs}ms)` : ""}`);
|
|
187
|
+
throw reason;
|
|
188
|
+
}
|
|
189
|
+
throw error;
|
|
190
|
+
}
|
|
191
|
+
finally {
|
|
192
|
+
dispose();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=cancellation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../src/core/cancellation.ts"],"names":[],"mappings":"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"}
|