@geotechcli/core 0.4.72 → 0.4.73
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/dist/agents/provider-operating-contract.d.ts +1 -1
- package/dist/agents/provider-operating-contract.d.ts.map +1 -1
- package/dist/agents/provider-operating-contract.js +2 -0
- package/dist/agents/provider-operating-contract.js.map +1 -1
- package/dist/meta/metadata.json +1 -1
- package/dist/project-workflow/index.d.ts +1 -0
- package/dist/project-workflow/index.d.ts.map +1 -1
- package/dist/project-workflow/index.js +1 -0
- package/dist/project-workflow/index.js.map +1 -1
- package/dist/workspace/index.d.ts +1 -0
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +1 -0
- package/dist/workspace/index.js.map +1 -1
- package/dist/workspace/project-workflow-router.d.ts +74 -0
- package/dist/workspace/project-workflow-router.d.ts.map +1 -0
- package/dist/workspace/project-workflow-router.js +262 -0
- package/dist/workspace/project-workflow-router.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LLMConfig, ProviderCapabilities } from '../llm/types.js';
|
|
2
|
-
export type AgentOperatingTask = 'single-agent' | 'swarm-interpretation' | 'swarm-simulation' | 'swarm-review' | 'swarm-orchestrator' | 'legacy-orchestrator' | 'specialist-agent';
|
|
2
|
+
export type AgentOperatingTask = 'single-agent' | 'project-workflow-router' | 'swarm-interpretation' | 'swarm-simulation' | 'swarm-review' | 'swarm-orchestrator' | 'legacy-orchestrator' | 'specialist-agent';
|
|
3
3
|
export interface ProviderOperatingContract {
|
|
4
4
|
provider: LLMConfig['provider'];
|
|
5
5
|
modelId: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-operating-contract.d.ts","sourceRoot":"","sources":["../../src/agents/provider-operating-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvE,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,sBAAsB,GACtB,kBAAkB,GAClB,cAAc,GACd,oBAAoB,GACpB,qBAAqB,GACrB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,oBAAoB,CAAC;IACnC,OAAO,EAAE,gBAAgB,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC;IACpF,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qCAAqC;IACpD,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC,EACjE,OAAO,GAAE,qCAA0C,GAClD,yBAAyB,CAoC3B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC,EACjE,OAAO,GAAE,qCAA0C,GAClD,MAAM,CAER"}
|
|
1
|
+
{"version":3,"file":"provider-operating-contract.d.ts","sourceRoot":"","sources":["../../src/agents/provider-operating-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvE,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,yBAAyB,GACzB,sBAAsB,GACtB,kBAAkB,GAClB,cAAc,GACd,oBAAoB,GACpB,qBAAqB,GACrB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,oBAAoB,CAAC;IACnC,OAAO,EAAE,gBAAgB,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC;IACpF,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qCAAqC;IACpD,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC,EACjE,OAAO,GAAE,qCAA0C,GAClD,yBAAyB,CAoC3B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAAC,EACjE,OAAO,GAAE,qCAA0C,GAClD,MAAM,CAER"}
|
|
@@ -120,6 +120,8 @@ function renderProviderOperatingPrompt(input) {
|
|
|
120
120
|
}
|
|
121
121
|
function taskSpecificRule(task) {
|
|
122
122
|
switch (task) {
|
|
123
|
+
case 'project-workflow-router':
|
|
124
|
+
return 'Project workflow router task: select and sequence only allowed deterministic GeotechCLI workflows; never invent engineering conclusions, calculations, FEM results, OCR results, or visualization data.';
|
|
123
125
|
case 'swarm-interpretation':
|
|
124
126
|
return 'Interpretation task: collect and normalize evidence; do not calculate design values from unreviewed extracted data.';
|
|
125
127
|
case 'swarm-simulation':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-operating-contract.js","sourceRoot":"","sources":["../../src/agents/provider-operating-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-operating-contract.js","sourceRoot":"","sources":["../../src/agents/provider-operating-contract.ts"],"names":[],"mappings":"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"}
|
package/dist/meta/metadata.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { runProjectWorkflow, type ProjectWorkflowAction, type ProjectWorkflowChartPoint, type ProjectWorkflowChartSeries, type ProjectWorkflowChartSpec, type ProjectWorkflowFinding, type ProjectWorkflowFindingSeverity, type ProjectWorkflowRun, type ProjectWorkflowStatus, type ProjectWorkflowTask, type RunProjectWorkflowOptions, } from '../workspace/project-workflow-executor.js';
|
|
2
2
|
export { buildProjectWorkflowReport, } from '../report/project-workflow.js';
|
|
3
|
+
export { PROJECT_WORKFLOW_ROUTER_TASKS, PROJECT_WORKFLOW_ROUTE_MIN_CONFIDENCE, buildProjectWorkflowRouterPrompt, inferProjectWorkflowRouteTasks, normalizeProjectWorkflowRouteTask, parseProjectWorkflowRouterSelection, routeProjectWorkflowRequest, type BuildProjectWorkflowRouterPromptOptions, type ProjectWorkflowRouteExecutionMode, type ProjectWorkflowRoutePlan, type ProjectWorkflowRouteRejectedTask, type ProjectWorkflowRouterSelection, type RouteProjectWorkflowRequestOptions, } from '../workspace/project-workflow-router.js';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/project-workflow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/project-workflow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,EACrC,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,mCAAmC,EACnC,2BAA2B,EAC3B,KAAK,uCAAuC,EAC5C,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,GACxC,MAAM,yCAAyC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { runProjectWorkflow, } from '../workspace/project-workflow-executor.js';
|
|
2
2
|
export { buildProjectWorkflowReport, } from '../report/project-workflow.js';
|
|
3
|
+
export { PROJECT_WORKFLOW_ROUTER_TASKS, PROJECT_WORKFLOW_ROUTE_MIN_CONFIDENCE, buildProjectWorkflowRouterPrompt, inferProjectWorkflowRouteTasks, normalizeProjectWorkflowRouteTask, parseProjectWorkflowRouterSelection, routeProjectWorkflowRequest, } from '../workspace/project-workflow-router.js';
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project-workflow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAWnB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project-workflow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAWnB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,EACrC,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,mCAAmC,EACnC,2BAA2B,GAO5B,MAAM,yCAAyC,CAAC"}
|
|
@@ -3,5 +3,6 @@ export { classifyWorkspaceFile, } from './classifier.js';
|
|
|
3
3
|
export { renderWorkspaceManifestAsHtml, } from './dossier.js';
|
|
4
4
|
export { resolveWorkspaceRoot, type ResolveWorkspaceRootOptions, type WorkspaceRoot, type WorkspaceRootDetectedBy, } from './resolve-root.js';
|
|
5
5
|
export { runProjectWorkflow, type ProjectWorkflowAction, type ProjectWorkflowChartPoint, type ProjectWorkflowChartSeries, type ProjectWorkflowChartSpec, type ProjectWorkflowFinding, type ProjectWorkflowFindingSeverity, type ProjectWorkflowRun, type ProjectWorkflowStatus, type ProjectWorkflowTask, type RunProjectWorkflowOptions, } from './project-workflow-executor.js';
|
|
6
|
+
export { PROJECT_WORKFLOW_ROUTER_TASKS, PROJECT_WORKFLOW_ROUTE_MIN_CONFIDENCE, buildProjectWorkflowRouterPrompt, inferProjectWorkflowRouteTasks, normalizeProjectWorkflowRouteTask, parseProjectWorkflowRouterSelection, routeProjectWorkflowRequest, type BuildProjectWorkflowRouterPromptOptions, type ProjectWorkflowRouteExecutionMode, type ProjectWorkflowRoutePlan, type ProjectWorkflowRouteRejectedTask, type ProjectWorkflowRouterSelection, type RouteProjectWorkflowRequestOptions, } from './project-workflow-router.js';
|
|
6
7
|
export { DEFAULT_ANALYZE_WORKSPACE_OPTIONS, type AnalyzeWorkspaceOptions, type ProjectManifest, type ProjectManifestSummary, type WorkspaceDatasetType, type WorkspaceFileClassification, type WorkspaceFileEntry, type WorkspaceFileKind, } from './manifest.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,aAAa,EAClB,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,iCAAiC,EACjC,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,aAAa,EAClB,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,EACrC,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,mCAAmC,EACnC,2BAA2B,EAC3B,KAAK,uCAAuC,EAC5C,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,GACxC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,iCAAiC,EACjC,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC"}
|
package/dist/workspace/index.js
CHANGED
|
@@ -3,5 +3,6 @@ export { classifyWorkspaceFile, } from './classifier.js';
|
|
|
3
3
|
export { renderWorkspaceManifestAsHtml, } from './dossier.js';
|
|
4
4
|
export { resolveWorkspaceRoot, } from './resolve-root.js';
|
|
5
5
|
export { runProjectWorkflow, } from './project-workflow-executor.js';
|
|
6
|
+
export { PROJECT_WORKFLOW_ROUTER_TASKS, PROJECT_WORKFLOW_ROUTE_MIN_CONFIDENCE, buildProjectWorkflowRouterPrompt, inferProjectWorkflowRouteTasks, normalizeProjectWorkflowRouteTask, parseProjectWorkflowRouterSelection, routeProjectWorkflowRequest, } from './project-workflow-router.js';
|
|
6
7
|
export { DEFAULT_ANALYZE_WORKSPACE_OPTIONS, } from './manifest.js';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,GAIrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,GAWnB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,iCAAiC,GAQlC,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,GAIrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,kBAAkB,GAWnB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,EACrC,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,mCAAmC,EACnC,2BAA2B,GAO5B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,iCAAiC,GAQlC,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { LLMConfig } from '../llm/types.js';
|
|
2
|
+
import { type ProviderOperatingContract } from '../agents/provider-operating-contract.js';
|
|
3
|
+
import type { ProjectManifest } from './manifest.js';
|
|
4
|
+
import type { ProjectWorkflowTask } from './project-workflow-executor.js';
|
|
5
|
+
export type ProjectWorkflowRouteExecutionMode = 'deterministic-sequence' | 'needs-selection';
|
|
6
|
+
export interface ProjectWorkflowRouteRejectedTask {
|
|
7
|
+
value: string;
|
|
8
|
+
reason: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ProjectWorkflowRouterSelection {
|
|
11
|
+
tasks: ProjectWorkflowTask[];
|
|
12
|
+
rejectedTasks: ProjectWorkflowRouteRejectedTask[];
|
|
13
|
+
rationale: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface ProjectWorkflowRoutePlan {
|
|
16
|
+
schemaVersion: 'geotech.project-workflow-route-plan.v1';
|
|
17
|
+
routeId: string;
|
|
18
|
+
runId: string;
|
|
19
|
+
generatedAt: string;
|
|
20
|
+
prompt: string;
|
|
21
|
+
executionMode: ProjectWorkflowRouteExecutionMode;
|
|
22
|
+
tasks: ProjectWorkflowTask[];
|
|
23
|
+
confidence: number;
|
|
24
|
+
rationale: string[];
|
|
25
|
+
rejectedTasks: ProjectWorkflowRouteRejectedTask[];
|
|
26
|
+
providerContract: {
|
|
27
|
+
providerNeutral: true;
|
|
28
|
+
purpose: 'project-workflow-routing';
|
|
29
|
+
llmRole: 'planner-reviewer-only';
|
|
30
|
+
deterministicExecutionRequired: true;
|
|
31
|
+
allowedTasks: ProjectWorkflowTask[];
|
|
32
|
+
disallowedActions: string[];
|
|
33
|
+
providerProfile?: ProviderOperatingContract['profile'];
|
|
34
|
+
contextStrategy?: ProviderOperatingContract['contextStrategy'];
|
|
35
|
+
reviewGates?: string[];
|
|
36
|
+
};
|
|
37
|
+
evidenceSummary?: {
|
|
38
|
+
supportedFiles: number;
|
|
39
|
+
branches: string[];
|
|
40
|
+
hasGroundModel: boolean;
|
|
41
|
+
hasVerifier: boolean;
|
|
42
|
+
};
|
|
43
|
+
trace: {
|
|
44
|
+
steps: Array<{
|
|
45
|
+
type: 'router' | 'review_gate';
|
|
46
|
+
status: 'pass' | 'review' | 'blocked';
|
|
47
|
+
detail: string;
|
|
48
|
+
}>;
|
|
49
|
+
};
|
|
50
|
+
modelCalls: [];
|
|
51
|
+
}
|
|
52
|
+
export interface RouteProjectWorkflowRequestOptions {
|
|
53
|
+
prompt: string;
|
|
54
|
+
manifest?: ProjectManifest;
|
|
55
|
+
requestedTasks?: Array<ProjectWorkflowTask | string>;
|
|
56
|
+
llmSelection?: unknown;
|
|
57
|
+
providerConfig?: Pick<LLMConfig, 'provider' | 'modelId' | 'visionModelId'>;
|
|
58
|
+
runId?: string;
|
|
59
|
+
now?: string;
|
|
60
|
+
}
|
|
61
|
+
export interface BuildProjectWorkflowRouterPromptOptions {
|
|
62
|
+
prompt: string;
|
|
63
|
+
manifest?: ProjectManifest;
|
|
64
|
+
providerConfig?: Pick<LLMConfig, 'provider' | 'modelId' | 'visionModelId'>;
|
|
65
|
+
compact?: boolean;
|
|
66
|
+
}
|
|
67
|
+
export declare const PROJECT_WORKFLOW_ROUTER_TASKS: ProjectWorkflowTask[];
|
|
68
|
+
export declare const PROJECT_WORKFLOW_ROUTE_MIN_CONFIDENCE = 0.6;
|
|
69
|
+
export declare function normalizeProjectWorkflowRouteTask(value: unknown): ProjectWorkflowTask | undefined;
|
|
70
|
+
export declare function parseProjectWorkflowRouterSelection(raw: unknown): ProjectWorkflowRouterSelection;
|
|
71
|
+
export declare function inferProjectWorkflowRouteTasks(prompt: string): ProjectWorkflowRouterSelection;
|
|
72
|
+
export declare function routeProjectWorkflowRequest(options: RouteProjectWorkflowRequestOptions): ProjectWorkflowRoutePlan;
|
|
73
|
+
export declare function buildProjectWorkflowRouterPrompt(options: BuildProjectWorkflowRouterPromptOptions): string;
|
|
74
|
+
//# sourceMappingURL=project-workflow-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-workflow-router.d.ts","sourceRoot":"","sources":["../../src/workspace/project-workflow-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { buildProviderOperatingContract } from '../agents/provider-operating-contract.js';
|
|
2
|
+
export const PROJECT_WORKFLOW_ROUTER_TASKS = [
|
|
3
|
+
'data-quality',
|
|
4
|
+
'ground-model',
|
|
5
|
+
'risk-analysis',
|
|
6
|
+
'anomaly-detection',
|
|
7
|
+
'recommendations',
|
|
8
|
+
'visualization',
|
|
9
|
+
];
|
|
10
|
+
export const PROJECT_WORKFLOW_ROUTE_MIN_CONFIDENCE = 0.6;
|
|
11
|
+
const DISALLOWED_ROUTER_ACTIONS = [
|
|
12
|
+
'invent calculation results',
|
|
13
|
+
'modify source files outside .geotech outputs',
|
|
14
|
+
'run FEM or design math without deterministic validators',
|
|
15
|
+
'treat LLM confidence as engineering verification',
|
|
16
|
+
'claim PDF/image inspection without normalized evidence',
|
|
17
|
+
];
|
|
18
|
+
export function normalizeProjectWorkflowRouteTask(value) {
|
|
19
|
+
if (typeof value !== 'string')
|
|
20
|
+
return undefined;
|
|
21
|
+
const normalized = value.trim().toLowerCase().replaceAll('_', '-');
|
|
22
|
+
switch (normalized) {
|
|
23
|
+
case 'data':
|
|
24
|
+
case 'data-quality':
|
|
25
|
+
case 'inventory':
|
|
26
|
+
case 'quality':
|
|
27
|
+
case 'quality-report':
|
|
28
|
+
return 'data-quality';
|
|
29
|
+
case 'ground':
|
|
30
|
+
case 'ground-model':
|
|
31
|
+
case 'ground-model-interpretation':
|
|
32
|
+
case 'interpretation':
|
|
33
|
+
case 'stratigraphy':
|
|
34
|
+
return 'ground-model';
|
|
35
|
+
case 'risk':
|
|
36
|
+
case 'risks':
|
|
37
|
+
case 'risk-analysis':
|
|
38
|
+
case 'hazard':
|
|
39
|
+
case 'hazards':
|
|
40
|
+
return 'risk-analysis';
|
|
41
|
+
case 'anomaly':
|
|
42
|
+
case 'anomalies':
|
|
43
|
+
case 'anomaly-detection':
|
|
44
|
+
case 'conflict':
|
|
45
|
+
case 'conflict-detection':
|
|
46
|
+
case 'outlier':
|
|
47
|
+
case 'outliers':
|
|
48
|
+
return 'anomaly-detection';
|
|
49
|
+
case 'recommendation':
|
|
50
|
+
case 'recommendations':
|
|
51
|
+
case 'next-actions':
|
|
52
|
+
case 'foundation-recommendations':
|
|
53
|
+
return 'recommendations';
|
|
54
|
+
case 'viz':
|
|
55
|
+
case 'visualize':
|
|
56
|
+
case 'visualization':
|
|
57
|
+
case 'visualizations':
|
|
58
|
+
case 'map':
|
|
59
|
+
case 'plots':
|
|
60
|
+
case 'charts':
|
|
61
|
+
return 'visualization';
|
|
62
|
+
default:
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function parseProjectWorkflowRouterSelection(raw) {
|
|
67
|
+
const payload = coerceRouterPayload(raw);
|
|
68
|
+
const proposed = Array.isArray(payload?.tasks)
|
|
69
|
+
? payload.tasks
|
|
70
|
+
: payload?.task != null
|
|
71
|
+
? [payload.task]
|
|
72
|
+
: [];
|
|
73
|
+
const tasks = [];
|
|
74
|
+
const rejectedTasks = [];
|
|
75
|
+
for (const value of proposed) {
|
|
76
|
+
const normalized = normalizeProjectWorkflowRouteTask(value);
|
|
77
|
+
if (normalized) {
|
|
78
|
+
if (!tasks.includes(normalized))
|
|
79
|
+
tasks.push(normalized);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
rejectedTasks.push({
|
|
83
|
+
value: String(value),
|
|
84
|
+
reason: `Not an allowed deterministic project workflow task. Allowed tasks: ${PROJECT_WORKFLOW_ROUTER_TASKS.join(', ')}.`,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const rationale = Array.isArray(payload?.rationale)
|
|
89
|
+
? payload.rationale.map((item) => String(item)).filter(Boolean).slice(0, 8)
|
|
90
|
+
: typeof payload?.rationale === 'string'
|
|
91
|
+
? [payload.rationale]
|
|
92
|
+
: [];
|
|
93
|
+
return { tasks, rejectedTasks, rationale };
|
|
94
|
+
}
|
|
95
|
+
export function inferProjectWorkflowRouteTasks(prompt) {
|
|
96
|
+
const lower = prompt.toLowerCase();
|
|
97
|
+
const tasks = [];
|
|
98
|
+
const rationale = [];
|
|
99
|
+
const add = (task, pattern, reason) => {
|
|
100
|
+
if (pattern.test(lower) && !tasks.includes(task)) {
|
|
101
|
+
tasks.push(task);
|
|
102
|
+
rationale.push(reason);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
add('data-quality', /\b(?:data quality|inventory|missing data|quality report|duplicate|file audit|data audit)\b/, 'Matched data inventory, quality, missing-data, or duplicate-source language.');
|
|
106
|
+
add('ground-model', /\b(?:ground model|interpret|strata|stratigraphy|lithology|hydrogeology|borehole model)\b/, 'Matched ground-model, interpretation, strata, lithology, or borehole-model language.');
|
|
107
|
+
add('risk-analysis', /\b(?:risk|risks|hazard|hazards|limitation|limitations|uncertainty|mitigation|concern|failure mode)\b/, 'Matched risk, hazard, limitation, uncertainty, or mitigation language.');
|
|
108
|
+
add('anomaly-detection', /\b(?:anomal\w*|conflict|outlier|inconsistent|inconsistency|mismatch|contradiction)\b/, 'Matched anomaly, conflict, outlier, inconsistency, or contradiction language.');
|
|
109
|
+
add('recommendations', /\b(?:recommend|recommendation|foundation option|advice|next action|what should|design route)\b/, 'Matched recommendation, foundation-option, advice, or next-action language.');
|
|
110
|
+
add('visualization', /\b(?:visual\w*|map|plot|chart|section|profile|strip log|dashboard)\b/, 'Matched visualization, map, plot, chart, profile, or strip-log language.');
|
|
111
|
+
return {
|
|
112
|
+
tasks,
|
|
113
|
+
rejectedTasks: [],
|
|
114
|
+
rationale,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
export function routeProjectWorkflowRequest(options) {
|
|
118
|
+
const generatedAt = options.now ?? new Date().toISOString();
|
|
119
|
+
const runId = options.runId ?? `run_${generatedAt.replace(/\D/g, '').slice(0, 17)}`;
|
|
120
|
+
const routeId = `route_${runId.replace(/^run_/, '')}`;
|
|
121
|
+
const providerContract = options.providerConfig
|
|
122
|
+
? buildProviderOperatingContract(options.providerConfig, { task: 'project-workflow-router', compact: true })
|
|
123
|
+
: undefined;
|
|
124
|
+
const explicitSelection = options.requestedTasks?.length
|
|
125
|
+
? parseProjectWorkflowRouterSelection({ tasks: options.requestedTasks, rationale: ['Explicit workflow task selection supplied by CLI/user input.'] })
|
|
126
|
+
: undefined;
|
|
127
|
+
const modelSelection = options.llmSelection != null
|
|
128
|
+
? parseProjectWorkflowRouterSelection(options.llmSelection)
|
|
129
|
+
: undefined;
|
|
130
|
+
const inferredSelection = !explicitSelection && (!modelSelection || modelSelection.tasks.length === 0)
|
|
131
|
+
? inferProjectWorkflowRouteTasks(options.prompt)
|
|
132
|
+
: undefined;
|
|
133
|
+
const selection = explicitSelection
|
|
134
|
+
?? (modelSelection && modelSelection.tasks.length > 0 ? modelSelection : undefined)
|
|
135
|
+
?? mergeSelections(inferredSelection, modelSelection)
|
|
136
|
+
?? { tasks: [], rejectedTasks: [], rationale: [] };
|
|
137
|
+
const confidence = deriveRouteConfidence(selection, Boolean(explicitSelection), Boolean(modelSelection), options.manifest);
|
|
138
|
+
const executionMode = selection.tasks.length > 0 && confidence >= PROJECT_WORKFLOW_ROUTE_MIN_CONFIDENCE
|
|
139
|
+
? 'deterministic-sequence'
|
|
140
|
+
: 'needs-selection';
|
|
141
|
+
return {
|
|
142
|
+
schemaVersion: 'geotech.project-workflow-route-plan.v1',
|
|
143
|
+
routeId,
|
|
144
|
+
runId,
|
|
145
|
+
generatedAt,
|
|
146
|
+
prompt: options.prompt,
|
|
147
|
+
executionMode,
|
|
148
|
+
tasks: selection.tasks,
|
|
149
|
+
confidence,
|
|
150
|
+
rationale: selection.rationale.length > 0
|
|
151
|
+
? selection.rationale
|
|
152
|
+
: executionMode === 'needs-selection'
|
|
153
|
+
? ['No deterministic project workflow intent was confidently identified; route requires custom question handling or user selection.']
|
|
154
|
+
: ['Validated deterministic workflow route.'],
|
|
155
|
+
rejectedTasks: selection.rejectedTasks,
|
|
156
|
+
providerContract: {
|
|
157
|
+
providerNeutral: true,
|
|
158
|
+
purpose: 'project-workflow-routing',
|
|
159
|
+
llmRole: 'planner-reviewer-only',
|
|
160
|
+
deterministicExecutionRequired: true,
|
|
161
|
+
allowedTasks: PROJECT_WORKFLOW_ROUTER_TASKS,
|
|
162
|
+
disallowedActions: DISALLOWED_ROUTER_ACTIONS,
|
|
163
|
+
providerProfile: providerContract?.profile,
|
|
164
|
+
contextStrategy: providerContract?.contextStrategy,
|
|
165
|
+
reviewGates: providerContract?.reviewGates,
|
|
166
|
+
},
|
|
167
|
+
evidenceSummary: options.manifest
|
|
168
|
+
? {
|
|
169
|
+
supportedFiles: options.manifest.summary.supportedFiles,
|
|
170
|
+
branches: options.manifest.summary.branches,
|
|
171
|
+
hasGroundModel: Boolean(options.manifest.groundModel),
|
|
172
|
+
hasVerifier: Boolean(options.manifest.verifier),
|
|
173
|
+
}
|
|
174
|
+
: undefined,
|
|
175
|
+
trace: {
|
|
176
|
+
steps: [
|
|
177
|
+
{
|
|
178
|
+
type: 'router',
|
|
179
|
+
status: executionMode === 'deterministic-sequence' ? 'pass' : 'review',
|
|
180
|
+
detail: executionMode === 'deterministic-sequence'
|
|
181
|
+
? `Routed to deterministic workflow task(s): ${selection.tasks.join(', ')}.`
|
|
182
|
+
: selection.tasks.length > 0
|
|
183
|
+
? `Route confidence ${confidence.toFixed(2)} is below the ${PROJECT_WORKFLOW_ROUTE_MIN_CONFIDENCE.toFixed(2)} execution gate; keep the request in custom LLM review or ask the user to choose a task.`
|
|
184
|
+
: 'No deterministic workflow route selected; keep the request in custom LLM review or ask the user to choose a task.',
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'review_gate',
|
|
188
|
+
status: 'review',
|
|
189
|
+
detail: 'The LLM may select and review workflow routes only. Deterministic GeotechCLI executors own calculations, FEM cases, validation, and persisted artifacts.',
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
modelCalls: [],
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
export function buildProjectWorkflowRouterPrompt(options) {
|
|
197
|
+
const providerPrompt = options.providerConfig
|
|
198
|
+
? buildProviderOperatingContract(options.providerConfig, { task: 'project-workflow-router', compact: options.compact === true }).prompt
|
|
199
|
+
: 'Provider operating contract: provider-neutral planner; route only, do not calculate.';
|
|
200
|
+
const manifestSummary = options.manifest
|
|
201
|
+
? [
|
|
202
|
+
`supportedFiles=${options.manifest.summary.supportedFiles}`,
|
|
203
|
+
`branches=${options.manifest.summary.branches.join(',') || 'none'}`,
|
|
204
|
+
`hasGroundModel=${Boolean(options.manifest.groundModel)}`,
|
|
205
|
+
`hasVerifier=${Boolean(options.manifest.verifier)}`,
|
|
206
|
+
].join('; ')
|
|
207
|
+
: 'manifest=not-attached';
|
|
208
|
+
return [
|
|
209
|
+
providerPrompt,
|
|
210
|
+
'',
|
|
211
|
+
'## PROJECT WORKFLOW ROUTER CONTRACT',
|
|
212
|
+
'You are only selecting deterministic GeotechCLI project workflows. You are not doing engineering math, FEM simulation, OCR, PDF reading, or source-file edits.',
|
|
213
|
+
`Allowed tasks: ${PROJECT_WORKFLOW_ROUTER_TASKS.join(', ')}.`,
|
|
214
|
+
`Disallowed actions: ${DISALLOWED_ROUTER_ACTIONS.join('; ')}.`,
|
|
215
|
+
`Workspace evidence summary: ${manifestSummary}.`,
|
|
216
|
+
'',
|
|
217
|
+
'Return strict JSON only:',
|
|
218
|
+
'{"tasks":["risk-analysis"],"rationale":["why these deterministic workflow tasks match"],"requiresCustomQuestion":false}',
|
|
219
|
+
'',
|
|
220
|
+
'User request:',
|
|
221
|
+
options.prompt.trim() || '(no prompt; ask user to select a workflow)',
|
|
222
|
+
].join('\n');
|
|
223
|
+
}
|
|
224
|
+
function coerceRouterPayload(raw) {
|
|
225
|
+
if (raw == null)
|
|
226
|
+
return {};
|
|
227
|
+
if (typeof raw === 'object')
|
|
228
|
+
return raw;
|
|
229
|
+
if (typeof raw !== 'string')
|
|
230
|
+
return {};
|
|
231
|
+
const trimmed = raw.trim();
|
|
232
|
+
const fenced = trimmed.match(/```(?:json)?\s*([\s\S]*?)```/i)?.[1]?.trim();
|
|
233
|
+
const candidate = fenced ?? trimmed;
|
|
234
|
+
try {
|
|
235
|
+
return JSON.parse(candidate);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return {};
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
function deriveRouteConfidence(selection, explicit, modelSuggested, manifest) {
|
|
242
|
+
if (selection.tasks.length === 0)
|
|
243
|
+
return 0.2;
|
|
244
|
+
let confidence = explicit ? 0.95 : modelSuggested ? 0.82 : 0.72;
|
|
245
|
+
if (selection.tasks.length > 1)
|
|
246
|
+
confidence -= 0.04;
|
|
247
|
+
if (selection.rejectedTasks.length > 0)
|
|
248
|
+
confidence -= 0.15;
|
|
249
|
+
if (manifest && manifest.summary.supportedFiles === 0)
|
|
250
|
+
confidence -= 0.2;
|
|
251
|
+
return Math.max(0.1, Math.min(0.99, Number(confidence.toFixed(2))));
|
|
252
|
+
}
|
|
253
|
+
function mergeSelections(primary, secondary) {
|
|
254
|
+
if (!primary && !secondary)
|
|
255
|
+
return undefined;
|
|
256
|
+
return {
|
|
257
|
+
tasks: primary?.tasks ?? [],
|
|
258
|
+
rejectedTasks: [...(primary?.rejectedTasks ?? []), ...(secondary?.rejectedTasks ?? [])],
|
|
259
|
+
rationale: [...(primary?.rationale ?? []), ...(secondary?.rationale ?? [])],
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=project-workflow-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-workflow-router.js","sourceRoot":"","sources":["../../src/workspace/project-workflow-router.ts"],"names":[],"mappings":"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"}
|