@pellux/goodvibes-sdk 0.33.20 → 0.33.22
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/browser-knowledge.d.ts +49 -0
- package/dist/browser-knowledge.d.ts.map +1 -1
- package/dist/browser-knowledge.js +22 -0
- package/dist/contracts/artifacts/operator-contract.json +4615 -4
- package/dist/events/agents.d.ts +11 -0
- package/dist/events/agents.d.ts.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/planner.d.ts +69 -1
- package/dist/events/planner.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.d.ts +19 -0
- package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.js +286 -22
- package/dist/platform/agents/wrfc-reporting.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-reporting.js +5 -1
- package/dist/platform/agents/wrfc-types.d.ts +1 -1
- package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-knowledge.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-knowledge.js +154 -1
- package/dist/platform/control-plane/operator-contract-schemas-project-planning.d.ts +4 -0
- package/dist/platform/control-plane/operator-contract-schemas-project-planning.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-project-planning.js +78 -0
- package/dist/platform/core/orchestrator-turn-helpers.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-helpers.js +27 -11
- package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-loop.js +4 -1
- package/dist/platform/core/wrfc-routing.d.ts +5 -0
- package/dist/platform/core/wrfc-routing.d.ts.map +1 -0
- package/dist/platform/core/wrfc-routing.js +51 -0
- package/dist/platform/daemon/http/project-planning-routes.d.ts.map +1 -1
- package/dist/platform/daemon/http/project-planning-routes.js +67 -0
- package/dist/platform/knowledge/index.d.ts +1 -1
- package/dist/platform/knowledge/index.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/helpers.d.ts +1 -1
- package/dist/platform/knowledge/project-planning/helpers.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/helpers.js +4 -0
- package/dist/platform/knowledge/project-planning/index.d.ts +1 -1
- package/dist/platform/knowledge/project-planning/index.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/service.d.ts +21 -1
- package/dist/platform/knowledge/project-planning/service.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/service.js +502 -1
- package/dist/platform/knowledge/project-planning/types.d.ts +140 -0
- package/dist/platform/knowledge/project-planning/types.d.ts.map +1 -1
- package/dist/platform/runtime/emitters/agents.d.ts +11 -0
- package/dist/platform/runtime/emitters/agents.d.ts.map +1 -1
- package/dist/platform/runtime/emitters/planner.d.ts +22 -0
- package/dist/platform/runtime/emitters/planner.d.ts.map +1 -1
- package/dist/platform/runtime/emitters/planner.js +15 -0
- package/dist/platform/runtime/events/index.d.ts +1 -1
- package/dist/platform/runtime/events/index.d.ts.map +1 -1
- package/dist/platform/runtime/services.d.ts.map +1 -1
- package/dist/platform/runtime/services.js +2 -0
- package/dist/platform/runtime/store/domains/agents.d.ts +3 -1
- package/dist/platform/runtime/store/domains/agents.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/lifecycle.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/lifecycle.js +25 -6
- package/dist/platform/tools/agent/index.d.ts.map +1 -1
- package/dist/platform/tools/agent/index.js +131 -64
- package/dist/platform/tools/agent/manager.d.ts +1 -0
- package/dist/platform/tools/agent/manager.d.ts.map +1 -1
- package/dist/platform/tools/agent/manager.js +36 -7
- package/dist/platform/tools/agent/schema.d.ts.map +1 -1
- package/dist/platform/tools/agent/schema.js +7 -6
- package/dist/platform/version.js +1 -1
- package/package.json +9 -9
|
@@ -2,7 +2,7 @@ import { EMPTY_OBJECT_SCHEMA, STRING_SCHEMA, BOOLEAN_SCHEMA, NUMBER_SCHEMA, arra
|
|
|
2
2
|
import { builtinGatewayHomeGraphMethodDescriptors } from './method-catalog-homegraph.js';
|
|
3
3
|
import { GRAPHQL_VARIABLES_SCHEMA, JSON_RECORD_SCHEMA, METADATA_SCHEMA, STRING_LIST_SCHEMA } from './operator-contract-schemas-shared.js';
|
|
4
4
|
import { KNOWLEDGE_BATCH_INGEST_RESULT_SCHEMA, KNOWLEDGE_BROWSER_SYNC_RESULT_SCHEMA, KNOWLEDGE_ASK_OUTPUT_SCHEMA, KNOWLEDGE_CONSOLIDATION_DECISION_SCHEMA, KNOWLEDGE_CANDIDATE_OUTPUT_SCHEMA, KNOWLEDGE_CANDIDATES_OUTPUT_SCHEMA, KNOWLEDGE_CONNECTOR_INGEST_INPUT_SCHEMA, KNOWLEDGE_CONNECTOR_DOCTOR_OUTPUT_SCHEMA, KNOWLEDGE_CONNECTORS_OUTPUT_SCHEMA, KNOWLEDGE_CONNECTOR_ENTITY_OUTPUT_SCHEMA, KNOWLEDGE_EXTRACTION_OUTPUT_SCHEMA, KNOWLEDGE_EXTRACTIONS_OUTPUT_SCHEMA, KNOWLEDGE_GRAPHQL_EXECUTE_OUTPUT_SCHEMA, KNOWLEDGE_GRAPHQL_SCHEMA_OUTPUT_SCHEMA, KNOWLEDGE_INGEST_RESULT_SCHEMA, KNOWLEDGE_ITEM_ENTITY_OUTPUT_SCHEMA, KNOWLEDGE_JOB_OUTPUT_SCHEMA, KNOWLEDGE_JOB_RUN_OUTPUT_SCHEMA, KNOWLEDGE_JOB_RUN_REQUEST_SCHEMA, KNOWLEDGE_JOB_RUNS_OUTPUT_SCHEMA, KNOWLEDGE_JOBS_OUTPUT_SCHEMA, KNOWLEDGE_LINT_OUTPUT_SCHEMA, KNOWLEDGE_MAP_OUTPUT_SCHEMA, KNOWLEDGE_MATERIALIZED_PROJECTION_SCHEMA, KNOWLEDGE_NODES_OUTPUT_SCHEMA, KNOWLEDGE_PACKET_SCHEMA, KNOWLEDGE_PACKET_DETAIL_SCHEMA, KNOWLEDGE_PROJECTION_BUNDLE_SCHEMA, KNOWLEDGE_PROJECTION_TARGETS_OUTPUT_SCHEMA, KNOWLEDGE_REINDEX_OUTPUT_SCHEMA, KNOWLEDGE_REFINEMENT_RUN_OUTPUT_SCHEMA, KNOWLEDGE_REFINEMENT_TASK_OUTPUT_SCHEMA, KNOWLEDGE_REFINEMENT_TASKS_OUTPUT_SCHEMA, KNOWLEDGE_REPORT_OUTPUT_SCHEMA, KNOWLEDGE_REPORTS_OUTPUT_SCHEMA, KNOWLEDGE_SCHEDULE_INPUT_SCHEMA, KNOWLEDGE_SCHEDULE_OUTPUT_SCHEMA, KNOWLEDGE_SCHEDULES_OUTPUT_SCHEMA, KNOWLEDGE_SEARCH_OUTPUT_SCHEMA, KNOWLEDGE_SOURCE_TYPE_SCHEMA, KNOWLEDGE_SOURCES_OUTPUT_SCHEMA, KNOWLEDGE_STATUS_SCHEMA, KNOWLEDGE_ISSUE_REVIEW_OUTPUT_SCHEMA, KNOWLEDGE_ISSUES_OUTPUT_SCHEMA, KNOWLEDGE_USAGE_OUTPUT_SCHEMA, } from './operator-contract-schemas-knowledge.js';
|
|
5
|
-
import { PROJECT_PLANNING_DECISION_OUTPUT_SCHEMA, PROJECT_PLANNING_DECISIONS_OUTPUT_SCHEMA, PROJECT_PLANNING_EVALUATION_SCHEMA, PROJECT_PLANNING_LANGUAGE_OUTPUT_SCHEMA, PROJECT_PLANNING_SPACE_INPUT_SCHEMA, PROJECT_PLANNING_STATE_OUTPUT_SCHEMA, PROJECT_PLANNING_STATUS_SCHEMA, } from './operator-contract-schemas-project-planning.js';
|
|
5
|
+
import { PROJECT_PLANNING_DECISION_OUTPUT_SCHEMA, PROJECT_PLANNING_DECISIONS_OUTPUT_SCHEMA, PROJECT_PLANNING_EVALUATION_SCHEMA, PROJECT_PLANNING_LANGUAGE_OUTPUT_SCHEMA, PROJECT_PLANNING_SPACE_INPUT_SCHEMA, PROJECT_PLANNING_STATE_OUTPUT_SCHEMA, PROJECT_PLANNING_STATUS_SCHEMA, PROJECT_WORK_PLAN_MUTATION_OUTPUT_SCHEMA, PROJECT_WORK_PLAN_SNAPSHOT_SCHEMA, PROJECT_WORK_PLAN_TASK_OUTPUT_SCHEMA, } from './operator-contract-schemas-project-planning.js';
|
|
6
6
|
const KNOWLEDGE_SPACE_INPUT_FIELDS = {
|
|
7
7
|
knowledgeSpaceId: STRING_SCHEMA,
|
|
8
8
|
includeAllSpaces: BOOLEAN_SCHEMA,
|
|
@@ -745,5 +745,158 @@ export const builtinGatewayKnowledgeMethodDescriptors = [
|
|
|
745
745
|
}, ['language']),
|
|
746
746
|
outputSchema: PROJECT_PLANNING_LANGUAGE_OUTPUT_SCHEMA,
|
|
747
747
|
}),
|
|
748
|
+
methodDescriptor({
|
|
749
|
+
id: 'projectPlanning.workPlan.snapshot',
|
|
750
|
+
title: 'Project Work Plan Snapshot',
|
|
751
|
+
description: 'Return the durable project-scoped work-plan snapshot, including tasks and status counts.',
|
|
752
|
+
category: 'knowledge',
|
|
753
|
+
scopes: ['read:knowledge'],
|
|
754
|
+
http: { method: 'GET', path: '/api/projects/planning/work-plan' },
|
|
755
|
+
inputSchema: objectSchema({
|
|
756
|
+
projectId: STRING_SCHEMA,
|
|
757
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
758
|
+
workPlanId: STRING_SCHEMA,
|
|
759
|
+
status: STRING_SCHEMA,
|
|
760
|
+
parentTaskId: STRING_SCHEMA,
|
|
761
|
+
chainId: STRING_SCHEMA,
|
|
762
|
+
owner: STRING_SCHEMA,
|
|
763
|
+
limit: NUMBER_SCHEMA,
|
|
764
|
+
}),
|
|
765
|
+
outputSchema: PROJECT_WORK_PLAN_SNAPSHOT_SCHEMA,
|
|
766
|
+
}),
|
|
767
|
+
methodDescriptor({
|
|
768
|
+
id: 'projectPlanning.workPlan.tasks.list',
|
|
769
|
+
title: 'List Project Work Plan Tasks',
|
|
770
|
+
description: 'List durable project-scoped work-plan tasks with optional status, owner, parent, or WRFC-chain filters.',
|
|
771
|
+
category: 'knowledge',
|
|
772
|
+
scopes: ['read:knowledge'],
|
|
773
|
+
http: { method: 'GET', path: '/api/projects/planning/work-plan/tasks' },
|
|
774
|
+
inputSchema: objectSchema({
|
|
775
|
+
projectId: STRING_SCHEMA,
|
|
776
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
777
|
+
workPlanId: STRING_SCHEMA,
|
|
778
|
+
status: STRING_SCHEMA,
|
|
779
|
+
parentTaskId: STRING_SCHEMA,
|
|
780
|
+
chainId: STRING_SCHEMA,
|
|
781
|
+
owner: STRING_SCHEMA,
|
|
782
|
+
limit: NUMBER_SCHEMA,
|
|
783
|
+
}),
|
|
784
|
+
outputSchema: PROJECT_WORK_PLAN_SNAPSHOT_SCHEMA,
|
|
785
|
+
}),
|
|
786
|
+
methodDescriptor({
|
|
787
|
+
id: 'projectPlanning.workPlan.task.get',
|
|
788
|
+
title: 'Get Project Work Plan Task',
|
|
789
|
+
description: 'Fetch one durable project-scoped work-plan task by id.',
|
|
790
|
+
category: 'knowledge',
|
|
791
|
+
scopes: ['read:knowledge'],
|
|
792
|
+
http: { method: 'GET', path: '/api/projects/planning/work-plan/tasks/{taskId}' },
|
|
793
|
+
inputSchema: objectSchema({
|
|
794
|
+
projectId: STRING_SCHEMA,
|
|
795
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
796
|
+
workPlanId: STRING_SCHEMA,
|
|
797
|
+
taskId: STRING_SCHEMA,
|
|
798
|
+
}, ['taskId']),
|
|
799
|
+
outputSchema: PROJECT_WORK_PLAN_TASK_OUTPUT_SCHEMA,
|
|
800
|
+
}),
|
|
801
|
+
methodDescriptor({
|
|
802
|
+
id: 'projectPlanning.workPlan.task.create',
|
|
803
|
+
title: 'Create Project Work Plan Task',
|
|
804
|
+
description: 'Create a durable project-scoped work-plan task for TUI, WebUI, APK, daemon planning, or WRFC correlation.',
|
|
805
|
+
category: 'knowledge',
|
|
806
|
+
access: 'admin',
|
|
807
|
+
scopes: ['write:knowledge'],
|
|
808
|
+
http: { method: 'POST', path: '/api/projects/planning/work-plan/tasks' },
|
|
809
|
+
inputSchema: bodyEnvelopeSchema({
|
|
810
|
+
projectId: STRING_SCHEMA,
|
|
811
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
812
|
+
workPlanId: STRING_SCHEMA,
|
|
813
|
+
task: JSON_RECORD_SCHEMA,
|
|
814
|
+
}, ['task']),
|
|
815
|
+
outputSchema: PROJECT_WORK_PLAN_MUTATION_OUTPUT_SCHEMA,
|
|
816
|
+
}),
|
|
817
|
+
methodDescriptor({
|
|
818
|
+
id: 'projectPlanning.workPlan.task.update',
|
|
819
|
+
title: 'Update Project Work Plan Task',
|
|
820
|
+
description: 'Patch a durable project-scoped work-plan task.',
|
|
821
|
+
category: 'knowledge',
|
|
822
|
+
access: 'admin',
|
|
823
|
+
scopes: ['write:knowledge'],
|
|
824
|
+
http: { method: 'PATCH', path: '/api/projects/planning/work-plan/tasks/{taskId}' },
|
|
825
|
+
inputSchema: bodyEnvelopeSchema({
|
|
826
|
+
projectId: STRING_SCHEMA,
|
|
827
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
828
|
+
workPlanId: STRING_SCHEMA,
|
|
829
|
+
taskId: STRING_SCHEMA,
|
|
830
|
+
patch: JSON_RECORD_SCHEMA,
|
|
831
|
+
}, ['taskId', 'patch']),
|
|
832
|
+
outputSchema: PROJECT_WORK_PLAN_MUTATION_OUTPUT_SCHEMA,
|
|
833
|
+
}),
|
|
834
|
+
methodDescriptor({
|
|
835
|
+
id: 'projectPlanning.workPlan.task.status',
|
|
836
|
+
title: 'Set Project Work Plan Task Status',
|
|
837
|
+
description: 'Validate and apply a project work-plan task status transition.',
|
|
838
|
+
category: 'knowledge',
|
|
839
|
+
access: 'admin',
|
|
840
|
+
scopes: ['write:knowledge'],
|
|
841
|
+
http: { method: 'POST', path: '/api/projects/planning/work-plan/tasks/{taskId}/status' },
|
|
842
|
+
inputSchema: bodyEnvelopeSchema({
|
|
843
|
+
projectId: STRING_SCHEMA,
|
|
844
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
845
|
+
workPlanId: STRING_SCHEMA,
|
|
846
|
+
taskId: STRING_SCHEMA,
|
|
847
|
+
status: STRING_SCHEMA,
|
|
848
|
+
reason: STRING_SCHEMA,
|
|
849
|
+
source: STRING_SCHEMA,
|
|
850
|
+
}, ['taskId', 'status']),
|
|
851
|
+
outputSchema: PROJECT_WORK_PLAN_MUTATION_OUTPUT_SCHEMA,
|
|
852
|
+
}),
|
|
853
|
+
methodDescriptor({
|
|
854
|
+
id: 'projectPlanning.workPlan.tasks.reorder',
|
|
855
|
+
title: 'Reorder Project Work Plan Tasks',
|
|
856
|
+
description: 'Replace task ordering for the current project work plan.',
|
|
857
|
+
category: 'knowledge',
|
|
858
|
+
access: 'admin',
|
|
859
|
+
scopes: ['write:knowledge'],
|
|
860
|
+
http: { method: 'POST', path: '/api/projects/planning/work-plan/tasks/reorder' },
|
|
861
|
+
inputSchema: bodyEnvelopeSchema({
|
|
862
|
+
projectId: STRING_SCHEMA,
|
|
863
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
864
|
+
workPlanId: STRING_SCHEMA,
|
|
865
|
+
orderedTaskIds: STRING_LIST_SCHEMA,
|
|
866
|
+
}, ['orderedTaskIds']),
|
|
867
|
+
outputSchema: PROJECT_WORK_PLAN_SNAPSHOT_SCHEMA,
|
|
868
|
+
}),
|
|
869
|
+
methodDescriptor({
|
|
870
|
+
id: 'projectPlanning.workPlan.task.delete',
|
|
871
|
+
title: 'Delete Project Work Plan Task',
|
|
872
|
+
description: 'Delete a durable project-scoped work-plan task.',
|
|
873
|
+
category: 'knowledge',
|
|
874
|
+
access: 'admin',
|
|
875
|
+
scopes: ['write:knowledge'],
|
|
876
|
+
http: { method: 'DELETE', path: '/api/projects/planning/work-plan/tasks/{taskId}' },
|
|
877
|
+
inputSchema: objectSchema({
|
|
878
|
+
projectId: STRING_SCHEMA,
|
|
879
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
880
|
+
workPlanId: STRING_SCHEMA,
|
|
881
|
+
taskId: STRING_SCHEMA,
|
|
882
|
+
}, ['taskId']),
|
|
883
|
+
outputSchema: PROJECT_WORK_PLAN_MUTATION_OUTPUT_SCHEMA,
|
|
884
|
+
}),
|
|
885
|
+
methodDescriptor({
|
|
886
|
+
id: 'projectPlanning.workPlan.clearCompleted',
|
|
887
|
+
title: 'Clear Completed Project Work Plan Tasks',
|
|
888
|
+
description: 'Remove completed project work-plan tasks. Defaults to clearing status done only.',
|
|
889
|
+
category: 'knowledge',
|
|
890
|
+
access: 'admin',
|
|
891
|
+
scopes: ['write:knowledge'],
|
|
892
|
+
http: { method: 'POST', path: '/api/projects/planning/work-plan/clear-completed' },
|
|
893
|
+
inputSchema: bodyEnvelopeSchema({
|
|
894
|
+
projectId: STRING_SCHEMA,
|
|
895
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
896
|
+
workPlanId: STRING_SCHEMA,
|
|
897
|
+
statuses: STRING_LIST_SCHEMA,
|
|
898
|
+
}),
|
|
899
|
+
outputSchema: PROJECT_WORK_PLAN_MUTATION_OUTPUT_SCHEMA,
|
|
900
|
+
}),
|
|
748
901
|
...builtinGatewayHomeGraphMethodDescriptors,
|
|
749
902
|
];
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare const PROJECT_PLANNING_SPACE_INPUT_SCHEMA: Record<string, unknown>;
|
|
2
|
+
export declare const PROJECT_WORK_PLAN_TASK_SCHEMA: Record<string, unknown>;
|
|
3
|
+
export declare const PROJECT_WORK_PLAN_SNAPSHOT_SCHEMA: Record<string, unknown>;
|
|
4
|
+
export declare const PROJECT_WORK_PLAN_TASK_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
5
|
+
export declare const PROJECT_WORK_PLAN_MUTATION_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
2
6
|
export declare const PROJECT_PLANNING_STATUS_SCHEMA: Record<string, unknown>;
|
|
3
7
|
export declare const PROJECT_PLANNING_STATE_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
4
8
|
export declare const PROJECT_PLANNING_EVALUATION_SCHEMA: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-contract-schemas-project-planning.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas-project-planning.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,mCAAmC,yBAGV,CAAC;AA4FvC,eAAO,MAAM,8BAA8B,yBAOyE,CAAC;AAErH,eAAO,MAAM,oCAAoC,yBAM0B,CAAC;AAE5E,eAAO,MAAM,kCAAkC,yBAQ0D,CAAC;AAE1G,eAAO,MAAM,wCAAwC,yBAKmC,CAAC;AAEzF,eAAO,MAAM,uCAAuC,yBAM6C,CAAC;AAElG,eAAO,MAAM,uCAAuC,yBAMuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"operator-contract-schemas-project-planning.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas-project-planning.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,mCAAmC,yBAGV,CAAC;AA4FvC,eAAO,MAAM,6BAA6B,yBAwCR,CAAC;AAEnC,eAAO,MAAM,iCAAiC,yBAQ2E,CAAC;AAE1H,eAAO,MAAM,oCAAoC,yBAO4D,CAAC;AAE9G,eAAO,MAAM,wCAAwC,yBAUgD,CAAC;AAYtG,eAAO,MAAM,8BAA8B,yBAOyE,CAAC;AAErH,eAAO,MAAM,oCAAoC,yBAM0B,CAAC;AAE5E,eAAO,MAAM,kCAAkC,yBAQ0D,CAAC;AAE1G,eAAO,MAAM,wCAAwC,yBAKmC,CAAC;AAEzF,eAAO,MAAM,uCAAuC,yBAM6C,CAAC;AAElG,eAAO,MAAM,uCAAuC,yBAMuB,CAAC"}
|
|
@@ -80,6 +80,84 @@ const PROJECT_PLANNING_LANGUAGE_SCHEMA = objectSchema({
|
|
|
80
80
|
updatedAt: NUMBER_SCHEMA,
|
|
81
81
|
metadata: METADATA_SCHEMA,
|
|
82
82
|
}, ['projectId', 'knowledgeSpaceId', 'terms', 'ambiguities', 'updatedAt'], { additionalProperties: true });
|
|
83
|
+
const PROJECT_WORK_PLAN_COUNTS_SCHEMA = objectSchema({
|
|
84
|
+
total: NUMBER_SCHEMA,
|
|
85
|
+
pending: NUMBER_SCHEMA,
|
|
86
|
+
in_progress: NUMBER_SCHEMA,
|
|
87
|
+
blocked: NUMBER_SCHEMA,
|
|
88
|
+
done: NUMBER_SCHEMA,
|
|
89
|
+
failed: NUMBER_SCHEMA,
|
|
90
|
+
cancelled: NUMBER_SCHEMA,
|
|
91
|
+
}, ['total', 'pending', 'in_progress', 'blocked', 'done', 'failed', 'cancelled'], { additionalProperties: false });
|
|
92
|
+
export const PROJECT_WORK_PLAN_TASK_SCHEMA = objectSchema({
|
|
93
|
+
taskId: STRING_SCHEMA,
|
|
94
|
+
projectId: STRING_SCHEMA,
|
|
95
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
96
|
+
title: STRING_SCHEMA,
|
|
97
|
+
notes: STRING_SCHEMA,
|
|
98
|
+
owner: STRING_SCHEMA,
|
|
99
|
+
status: STRING_SCHEMA,
|
|
100
|
+
priority: NUMBER_SCHEMA,
|
|
101
|
+
order: NUMBER_SCHEMA,
|
|
102
|
+
source: STRING_SCHEMA,
|
|
103
|
+
tags: STRING_LIST_SCHEMA,
|
|
104
|
+
parentTaskId: STRING_SCHEMA,
|
|
105
|
+
chainId: STRING_SCHEMA,
|
|
106
|
+
phaseId: STRING_SCHEMA,
|
|
107
|
+
agentId: STRING_SCHEMA,
|
|
108
|
+
turnId: STRING_SCHEMA,
|
|
109
|
+
decisionId: STRING_SCHEMA,
|
|
110
|
+
sourceMessageId: STRING_SCHEMA,
|
|
111
|
+
linkedArtifactIds: STRING_LIST_SCHEMA,
|
|
112
|
+
linkedSourceIds: STRING_LIST_SCHEMA,
|
|
113
|
+
linkedNodeIds: STRING_LIST_SCHEMA,
|
|
114
|
+
originSurface: STRING_SCHEMA,
|
|
115
|
+
createdAt: NUMBER_SCHEMA,
|
|
116
|
+
updatedAt: NUMBER_SCHEMA,
|
|
117
|
+
completedAt: NUMBER_SCHEMA,
|
|
118
|
+
metadata: METADATA_SCHEMA,
|
|
119
|
+
}, [
|
|
120
|
+
'taskId',
|
|
121
|
+
'projectId',
|
|
122
|
+
'knowledgeSpaceId',
|
|
123
|
+
'title',
|
|
124
|
+
'status',
|
|
125
|
+
'order',
|
|
126
|
+
'tags',
|
|
127
|
+
'linkedArtifactIds',
|
|
128
|
+
'linkedSourceIds',
|
|
129
|
+
'linkedNodeIds',
|
|
130
|
+
'createdAt',
|
|
131
|
+
'updatedAt',
|
|
132
|
+
], { additionalProperties: true });
|
|
133
|
+
export const PROJECT_WORK_PLAN_SNAPSHOT_SCHEMA = objectSchema({
|
|
134
|
+
ok: BOOLEAN_SCHEMA,
|
|
135
|
+
projectId: STRING_SCHEMA,
|
|
136
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
137
|
+
workPlanId: STRING_SCHEMA,
|
|
138
|
+
tasks: arraySchema(PROJECT_WORK_PLAN_TASK_SCHEMA),
|
|
139
|
+
counts: PROJECT_WORK_PLAN_COUNTS_SCHEMA,
|
|
140
|
+
updatedAt: NUMBER_SCHEMA,
|
|
141
|
+
}, ['ok', 'projectId', 'knowledgeSpaceId', 'workPlanId', 'tasks', 'counts', 'updatedAt'], { additionalProperties: true });
|
|
142
|
+
export const PROJECT_WORK_PLAN_TASK_OUTPUT_SCHEMA = objectSchema({
|
|
143
|
+
ok: BOOLEAN_SCHEMA,
|
|
144
|
+
projectId: STRING_SCHEMA,
|
|
145
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
146
|
+
workPlanId: STRING_SCHEMA,
|
|
147
|
+
task: nullableSchema(PROJECT_WORK_PLAN_TASK_SCHEMA),
|
|
148
|
+
snapshot: PROJECT_WORK_PLAN_SNAPSHOT_SCHEMA,
|
|
149
|
+
}, ['ok', 'projectId', 'knowledgeSpaceId', 'workPlanId', 'task', 'snapshot'], { additionalProperties: true });
|
|
150
|
+
export const PROJECT_WORK_PLAN_MUTATION_OUTPUT_SCHEMA = objectSchema({
|
|
151
|
+
ok: BOOLEAN_SCHEMA,
|
|
152
|
+
projectId: STRING_SCHEMA,
|
|
153
|
+
knowledgeSpaceId: STRING_SCHEMA,
|
|
154
|
+
workPlanId: STRING_SCHEMA,
|
|
155
|
+
task: PROJECT_WORK_PLAN_TASK_SCHEMA,
|
|
156
|
+
previousTask: PROJECT_WORK_PLAN_TASK_SCHEMA,
|
|
157
|
+
deletedTask: PROJECT_WORK_PLAN_TASK_SCHEMA,
|
|
158
|
+
clearedTaskIds: STRING_LIST_SCHEMA,
|
|
159
|
+
snapshot: PROJECT_WORK_PLAN_SNAPSHOT_SCHEMA,
|
|
160
|
+
}, ['ok', 'projectId', 'knowledgeSpaceId', 'workPlanId', 'snapshot'], { additionalProperties: true });
|
|
83
161
|
const PROJECT_PLANNING_GAP_SCHEMA = objectSchema({
|
|
84
162
|
id: STRING_SCHEMA,
|
|
85
163
|
kind: STRING_SCHEMA,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-turn-helpers.d.ts","sourceRoot":"","sources":["../../../src/platform/core/orchestrator-turn-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator-turn-helpers.d.ts","sourceRoot":"","sources":["../../../src/platform/core/orchestrator-turn-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { logger } from '../utils/logger.js';
|
|
|
3
3
|
import { emitPlanStrategySelected, emitToolReconciled, emitTurnCompleted } from '../runtime/emitters/index.js';
|
|
4
4
|
import { buildSyntheticResult } from './tool-reconciliation.js';
|
|
5
5
|
import { autoSpawnPendingItems } from './orchestrator-tool-runtime.js';
|
|
6
|
+
import { buildWrfcWorkflowRoutingPrompt, toolResultIndicatesAuthoritativeWrfcChain } from './wrfc-routing.js';
|
|
6
7
|
const PROJECT_PRIMING_SIGNALS = new Set([
|
|
7
8
|
'parallelism_keywords',
|
|
8
9
|
'multi_sentence_actions',
|
|
@@ -54,6 +55,10 @@ export function prepareConversationForTurn(conversation, providerRegistry, text,
|
|
|
54
55
|
else {
|
|
55
56
|
conversation.addUserMessage(content ?? text);
|
|
56
57
|
}
|
|
58
|
+
const wrfcRoutingPrompt = buildWrfcWorkflowRoutingPrompt(text);
|
|
59
|
+
if (wrfcRoutingPrompt) {
|
|
60
|
+
conversation.addSystemMessage(wrfcRoutingPrompt);
|
|
61
|
+
}
|
|
57
62
|
const activePlan = planManager?.getActive(sessionId) ?? null;
|
|
58
63
|
if (!activePlan) {
|
|
59
64
|
const classification = classifyIntent(text);
|
|
@@ -97,29 +102,40 @@ export async function handleToolResponseOutcome(args) {
|
|
|
97
102
|
const mode = tc.arguments.mode;
|
|
98
103
|
return tc.name === 'agent' && (mode === 'spawn' || mode === 'batch-spawn');
|
|
99
104
|
});
|
|
105
|
+
const spawnedAuthoritativeWrfcChain = spawnedAgents && results.some(toolResultIndicatesAuthoritativeWrfcChain);
|
|
100
106
|
if (spawnedAgents || args.messageQueueLength > 0) {
|
|
101
107
|
if (spawnedAgents) {
|
|
102
108
|
const planManager = args.planManager;
|
|
103
109
|
const activePlan = planManager?.getActive(args.sessionId) ?? null;
|
|
104
110
|
if (activePlan) {
|
|
105
111
|
const summary = planManager?.getSummary(activePlan) ?? '';
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
if (spawnedAuthoritativeWrfcChain) {
|
|
113
|
+
args.conversation.addSystemMessage(`A WRFC owner chain is now the authoritative owner for this deliverable. Do not spawn additional root agents for review, testing, verification, or fixing this same work; inspect the WRFC chain status instead. Plan progress: ${summary}.`);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
const nextItems = planManager?.getNextItems(activePlan) ?? [];
|
|
117
|
+
if (nextItems.length > 0) {
|
|
118
|
+
const autoSpawnedDescs = autoSpawnPendingItems(args.conversation, activePlan, nextItems, args.agentManager, args.configManager, args.providerRegistry, args.runtimeBus, args.emitterContext(args.turnId), planManager);
|
|
119
|
+
if (autoSpawnedDescs.length > 0) {
|
|
120
|
+
args.conversation.addSystemMessage(`[Plan] Auto-spawned ${autoSpawnedDescs.length} agent(s) for remaining plan items: ${autoSpawnedDescs.join(', ')}. Plan progress: ${summary}.`);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const nextDesc = nextItems.map(i => i.description).join(', ');
|
|
124
|
+
args.conversation.addSystemMessage(`Plan progress: ${summary}. Next items ready: ${nextDesc}. Continue spawning agents for remaining work.`);
|
|
125
|
+
}
|
|
111
126
|
}
|
|
112
127
|
else {
|
|
113
|
-
|
|
114
|
-
args.conversation.addSystemMessage(`Plan progress: ${summary}. Next items ready: ${nextDesc}. Continue spawning agents for remaining work.`);
|
|
128
|
+
args.conversation.addSystemMessage(`Plan progress: ${summary}. All items are accounted for.`);
|
|
115
129
|
}
|
|
116
130
|
}
|
|
117
|
-
else {
|
|
118
|
-
args.conversation.addSystemMessage(`Plan progress: ${summary}. All items are accounted for.`);
|
|
119
|
-
}
|
|
120
131
|
}
|
|
121
132
|
else {
|
|
122
|
-
|
|
133
|
+
if (spawnedAuthoritativeWrfcChain) {
|
|
134
|
+
args.conversation.addSystemMessage('A WRFC owner chain is now the authoritative owner for this deliverable. Do not spawn additional root agents for review, testing, verification, or fixing this same work; inspect the WRFC chain status instead.');
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
args.conversation.addSystemMessage('You spawned an agent for part of the task. If there are remaining tasks, continue spawning agents now.');
|
|
138
|
+
}
|
|
123
139
|
}
|
|
124
140
|
}
|
|
125
141
|
if (args.runtimeBus) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-turn-loop.d.ts","sourceRoot":"","sources":["../../../src/platform/core/orchestrator-turn-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAe,MAAM,2BAA2B,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAa/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator-turn-loop.d.ts","sourceRoot":"","sources":["../../../src/platform/core/orchestrator-turn-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { HelperModel } from '../config/helper-model.js';
|
|
|
7
7
|
import { logger } from '../utils/logger.js';
|
|
8
8
|
import { emitMalformedToolUseWarning, handleFinalResponseOutcome, handleToolResponseOutcome, } from './orchestrator-turn-helpers.js';
|
|
9
9
|
import { appendGoodVibesRuntimeAwarenessPrompt } from '../tools/goodvibes-runtime/index.js';
|
|
10
|
+
import { buildWrfcWorkflowRoutingPrompt } from './wrfc-routing.js';
|
|
10
11
|
const AUTO_SPAWN_FALLBACK_DELAY_MS = 5_000;
|
|
11
12
|
export async function executeOrchestratorTurnLoop(context) {
|
|
12
13
|
const helperModel = context.helperModel;
|
|
@@ -108,11 +109,13 @@ export async function executeOrchestratorTurnLoop(context) {
|
|
|
108
109
|
});
|
|
109
110
|
}
|
|
110
111
|
try {
|
|
112
|
+
const baseSystemPrompt = appendGoodVibesRuntimeAwarenessPrompt(context.getSystemPrompt());
|
|
113
|
+
const wrfcRoutingPrompt = buildWrfcWorkflowRoutingPrompt(context.text);
|
|
111
114
|
response = await provider.chat({
|
|
112
115
|
model: model.id,
|
|
113
116
|
messages: context.conversation.getMessagesForLLM(),
|
|
114
117
|
tools: toolDefinitions.length > 0 ? toolDefinitions : undefined,
|
|
115
|
-
systemPrompt:
|
|
118
|
+
systemPrompt: wrfcRoutingPrompt ? `${baseSystemPrompt}\n\n${wrfcRoutingPrompt}` : baseSystemPrompt,
|
|
116
119
|
maxTokens: tokenLimits.maxOutputTokens,
|
|
117
120
|
reasoningEffort: (() => {
|
|
118
121
|
const configured = context.configManager.get('provider.reasoningEffort');
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ToolResult } from '../types/tools.js';
|
|
2
|
+
export declare function isWrfcWorkflowRequest(text: string): boolean;
|
|
3
|
+
export declare function buildWrfcWorkflowRoutingPrompt(text: string): string | null;
|
|
4
|
+
export declare function toolResultIndicatesAuthoritativeWrfcChain(result: ToolResult): boolean;
|
|
5
|
+
//# sourceMappingURL=wrfc-routing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrfc-routing.d.ts","sourceRoot":"","sources":["../../../src/platform/core/wrfc-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM3D;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1E;AAyBD,wBAAgB,yCAAyC,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAQrF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function isWrfcWorkflowRequest(text) {
|
|
2
|
+
const normalized = text.trim().toLowerCase();
|
|
3
|
+
if (!/\bwrfc\b/.test(normalized))
|
|
4
|
+
return false;
|
|
5
|
+
if (/^(what|why|how|explain|describe|define)\b/.test(normalized))
|
|
6
|
+
return false;
|
|
7
|
+
return /\bwrfc\b.{0,80}\b(review|agent|build|make|implement|fix|test|verify|for)\b/.test(normalized)
|
|
8
|
+
|| /\b(review|agent|build|make|implement|fix|test|verify)\b.{0,80}\bwrfc\b/.test(normalized);
|
|
9
|
+
}
|
|
10
|
+
export function buildWrfcWorkflowRoutingPrompt(text) {
|
|
11
|
+
if (!isWrfcWorkflowRequest(text))
|
|
12
|
+
return null;
|
|
13
|
+
return '[WRFC routing] The user is asking for WRFC-owned work. Use the agent tool to start exactly one WRFC owner chain with mode=spawn, template=engineer, reviewMode=wrfc. Do not answer by describing WRFC, and do not spawn reviewer/tester/verifier roots.';
|
|
14
|
+
}
|
|
15
|
+
function isRecord(value) {
|
|
16
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
17
|
+
}
|
|
18
|
+
function parseToolOutput(output) {
|
|
19
|
+
if (!output)
|
|
20
|
+
return null;
|
|
21
|
+
try {
|
|
22
|
+
const parsed = JSON.parse(output);
|
|
23
|
+
return isRecord(parsed) ? parsed : null;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function recordIsAuthoritativeWrfcOwner(record) {
|
|
30
|
+
if (record.orchestrationStopSignal === 'wrfc_owner_chain_started')
|
|
31
|
+
return true;
|
|
32
|
+
if (record.authoritativeWrfcChain === true && record.continueRootSpawning === false)
|
|
33
|
+
return true;
|
|
34
|
+
return record.wrfcRole === 'owner'
|
|
35
|
+
&& typeof record.wrfcId === 'string'
|
|
36
|
+
&& record.wrfcId.length > 0
|
|
37
|
+
&& record.continueRootSpawning === false;
|
|
38
|
+
}
|
|
39
|
+
export function toolResultIndicatesAuthoritativeWrfcChain(result) {
|
|
40
|
+
if (!result.success)
|
|
41
|
+
return false;
|
|
42
|
+
const payload = parseToolOutput(result.output);
|
|
43
|
+
if (!payload)
|
|
44
|
+
return false;
|
|
45
|
+
if (recordIsAuthoritativeWrfcOwner(payload))
|
|
46
|
+
return true;
|
|
47
|
+
const agents = payload.agents;
|
|
48
|
+
if (!Array.isArray(agents))
|
|
49
|
+
return false;
|
|
50
|
+
return agents.some((agent) => isRecord(agent) && recordIsAuthoritativeWrfcOwner(agent));
|
|
51
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-planning-routes.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/project-planning-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,sBAAsB,
|
|
1
|
+
{"version":3,"file":"project-planning-routes.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/project-planning-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,sBAAsB,EAUvB,MAAM,0BAA0B,CAAC;AAElC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,UAAU,2BAA2B;IACnC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IACzE,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;IACxF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC;CAC1D;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,2BAA2B;IAE3D,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YA8GtC,KAAK;YAML,QAAQ;YAMR,gBAAgB;CAK/B"}
|
|
@@ -35,6 +35,61 @@ export class ProjectPlanningRoutes {
|
|
|
35
35
|
if (url.pathname === '/api/projects/planning/language' && req.method === 'POST') {
|
|
36
36
|
return this.admin(req, async () => Response.json(await this.context.projectPlanningService.upsertLanguage(await this.readBody(req))));
|
|
37
37
|
}
|
|
38
|
+
if (url.pathname === '/api/projects/planning/work-plan' && req.method === 'GET') {
|
|
39
|
+
return Response.json(await this.context.projectPlanningService.getWorkPlanSnapshot(readWorkPlanQuery(url)));
|
|
40
|
+
}
|
|
41
|
+
if (url.pathname === '/api/projects/planning/work-plan/tasks' && req.method === 'GET') {
|
|
42
|
+
return Response.json(await this.context.projectPlanningService.getWorkPlanSnapshot(readWorkPlanQuery(url)));
|
|
43
|
+
}
|
|
44
|
+
if (url.pathname === '/api/projects/planning/work-plan/tasks' && req.method === 'POST') {
|
|
45
|
+
return this.admin(req, async () => Response.json(await this.context.projectPlanningService.createWorkPlanTask({
|
|
46
|
+
...readWorkPlanQuery(url),
|
|
47
|
+
...(await this.readBody(req)),
|
|
48
|
+
})));
|
|
49
|
+
}
|
|
50
|
+
if (url.pathname === '/api/projects/planning/work-plan/tasks/reorder' && req.method === 'POST') {
|
|
51
|
+
return this.admin(req, async () => Response.json(await this.context.projectPlanningService.reorderWorkPlanTasks({
|
|
52
|
+
...readWorkPlanQuery(url),
|
|
53
|
+
...(await this.readBody(req)),
|
|
54
|
+
})));
|
|
55
|
+
}
|
|
56
|
+
if (url.pathname === '/api/projects/planning/work-plan/clear-completed' && req.method === 'POST') {
|
|
57
|
+
return this.admin(req, async () => Response.json(await this.context.projectPlanningService.clearCompletedWorkPlanTasks({
|
|
58
|
+
...readWorkPlanQuery(url),
|
|
59
|
+
...(await this.readOptionalBody(req)),
|
|
60
|
+
})));
|
|
61
|
+
}
|
|
62
|
+
const taskMatch = url.pathname.match(/^\/api\/projects\/planning\/work-plan\/tasks\/([^/]+)(?:\/status)?$/);
|
|
63
|
+
if (taskMatch) {
|
|
64
|
+
const taskId = decodeURIComponent(taskMatch[1]);
|
|
65
|
+
const isStatusRoute = url.pathname.endsWith('/status');
|
|
66
|
+
if (!isStatusRoute && req.method === 'GET') {
|
|
67
|
+
return Response.json(await this.context.projectPlanningService.getWorkPlanTask({
|
|
68
|
+
...readWorkPlanQuery(url),
|
|
69
|
+
taskId,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
if (!isStatusRoute && req.method === 'PATCH') {
|
|
73
|
+
return this.admin(req, async () => Response.json(await this.context.projectPlanningService.updateWorkPlanTask({
|
|
74
|
+
...readWorkPlanQuery(url),
|
|
75
|
+
...(await this.readBody(req)),
|
|
76
|
+
taskId,
|
|
77
|
+
})));
|
|
78
|
+
}
|
|
79
|
+
if (!isStatusRoute && req.method === 'DELETE') {
|
|
80
|
+
return this.admin(req, async () => Response.json(await this.context.projectPlanningService.deleteWorkPlanTask({
|
|
81
|
+
...readWorkPlanQuery(url),
|
|
82
|
+
taskId,
|
|
83
|
+
})));
|
|
84
|
+
}
|
|
85
|
+
if (isStatusRoute && req.method === 'POST') {
|
|
86
|
+
return this.admin(req, async () => Response.json(await this.context.projectPlanningService.setWorkPlanTaskStatus({
|
|
87
|
+
...readWorkPlanQuery(url),
|
|
88
|
+
...(await this.readBody(req)),
|
|
89
|
+
taskId,
|
|
90
|
+
})));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
38
93
|
return Response.json({ error: 'Unknown project planning route' }, { status: 404 });
|
|
39
94
|
}
|
|
40
95
|
catch (error) {
|
|
@@ -66,3 +121,15 @@ function readProjectSpaceFromUrl(url) {
|
|
|
66
121
|
...(url.searchParams.get('knowledgeSpaceId') ? { knowledgeSpaceId: url.searchParams.get('knowledgeSpaceId') } : {}),
|
|
67
122
|
};
|
|
68
123
|
}
|
|
124
|
+
function readWorkPlanQuery(url) {
|
|
125
|
+
const limit = url.searchParams.get('limit');
|
|
126
|
+
return {
|
|
127
|
+
...readProjectSpaceFromUrl(url),
|
|
128
|
+
...(url.searchParams.get('workPlanId') ? { workPlanId: url.searchParams.get('workPlanId') } : {}),
|
|
129
|
+
...(url.searchParams.get('status') ? { status: url.searchParams.get('status') } : {}),
|
|
130
|
+
...(url.searchParams.get('parentTaskId') ? { parentTaskId: url.searchParams.get('parentTaskId') } : {}),
|
|
131
|
+
...(url.searchParams.get('chainId') ? { chainId: url.searchParams.get('chainId') } : {}),
|
|
132
|
+
...(url.searchParams.get('owner') ? { owner: url.searchParams.get('owner') } : {}),
|
|
133
|
+
...(limit ? { limit: Number(limit) } : {}),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
@@ -22,7 +22,7 @@ export { KnowledgeSemanticService, createWebKnowledgeGapRepairer, createProvider
|
|
|
22
22
|
export type { KnowledgeSemanticAnswer, KnowledgeSemanticAnswerInput, KnowledgeSemanticAnswerResult, KnowledgeSemanticEnrichmentResult, KnowledgeSemanticExtraction, KnowledgeSemanticFactInput, KnowledgeSemanticFactKind, KnowledgeSemanticGapRepairer, KnowledgeSemanticGapRepairRequest, KnowledgeSemanticGapRepairResult, KnowledgeSemanticGapInput, KnowledgeSemanticLlm, KnowledgeSemanticLlmAnswer, KnowledgeSemanticSelfImproveInput, KnowledgeSemanticSelfImproveResult, KnowledgeSemanticServiceOptions, WebGapRepairOptions, } from './semantic/index.js';
|
|
23
23
|
export { HomeGraphService, HOME_GRAPH_KNOWLEDGE_EXTENSION, HOME_GRAPH_NODE_KINDS, HOME_GRAPH_RELATIONS } from './home-graph/index.js';
|
|
24
24
|
export { ProjectPlanningService, evaluateProjectPlanningReadiness, projectPlanningCanonicalUri, projectPlanningProjectIdFromPath, projectPlanningSourceId, resolveProjectPlanningSpace, } from './project-planning/index.js';
|
|
25
|
-
export type { ProjectPlanningAgentAssignment, ProjectPlanningAmbiguity, ProjectPlanningDecision, ProjectPlanningDecisionRecordInput, ProjectPlanningDecisionResult, ProjectPlanningDecisionsResult, ProjectPlanningDecisionStatus, ProjectPlanningDependency, ProjectPlanningEvaluateInput, ProjectPlanningEvaluation, ProjectPlanningGap, ProjectPlanningGapKind, ProjectPlanningGapSeverity, ProjectPlanningGateStatus, ProjectPlanningLanguageArtifact, ProjectPlanningLanguageResult, ProjectPlanningLanguageUpsertInput, ProjectPlanningQuestion, ProjectPlanningQuestionStatus, ProjectPlanningReadiness, ProjectPlanningServiceOptions, ProjectPlanningSpaceInput, ProjectPlanningState, ProjectPlanningStateResult, ProjectPlanningStateUpsertInput, ProjectPlanningStatus, ProjectPlanningTask, ProjectPlanningTaskStatus, ProjectPlanningTerm, ProjectPlanningVerificationGate, } from './project-planning/index.js';
|
|
25
|
+
export type { ProjectPlanningAgentAssignment, ProjectPlanningAmbiguity, ProjectPlanningDecision, ProjectPlanningDecisionRecordInput, ProjectPlanningDecisionResult, ProjectPlanningDecisionsResult, ProjectPlanningDecisionStatus, ProjectPlanningDependency, ProjectPlanningEvaluateInput, ProjectPlanningEvaluation, ProjectPlanningGap, ProjectPlanningGapKind, ProjectPlanningGapSeverity, ProjectPlanningGateStatus, ProjectPlanningLanguageArtifact, ProjectPlanningLanguageResult, ProjectPlanningLanguageUpsertInput, ProjectPlanningQuestion, ProjectPlanningQuestionStatus, ProjectPlanningReadiness, ProjectPlanningServiceOptions, ProjectPlanningSpaceInput, ProjectPlanningState, ProjectPlanningStateResult, ProjectPlanningStateUpsertInput, ProjectPlanningStatus, ProjectPlanningTask, ProjectPlanningTaskStatus, ProjectPlanningTerm, ProjectPlanningVerificationGate, ProjectWorkPlanArtifact, ProjectWorkPlanClearCompletedInput, ProjectWorkPlanCounts, ProjectWorkPlanMutationResult, ProjectWorkPlanSnapshot, ProjectWorkPlanTask, ProjectWorkPlanTaskCreateInput, ProjectWorkPlanTaskDeleteInput, ProjectWorkPlanTaskGetInput, ProjectWorkPlanTaskListInput, ProjectWorkPlanTaskMutationSource, ProjectWorkPlanTaskReorderInput, ProjectWorkPlanTaskResult, ProjectWorkPlanTaskStatus, ProjectWorkPlanTaskStatusInput, ProjectWorkPlanTaskUpdateInput, } from './project-planning/index.js';
|
|
26
26
|
export type { HomeGraphAskInput, HomeGraphAskResult, HomeGraphDevicePassportResult, HomeGraphExport, HomeGraphGeneratedPagesSummary, HomeGraphIngestArtifactInput, HomeGraphIngestNoteInput, HomeGraphIngestResult, HomeGraphIngestUrlInput, HomeGraphKnowledgeTarget, HomeGraphLinkInput, HomeGraphLinkResult, HomeGraphMapEdge, HomeGraphMapInput, HomeGraphMapNode, HomeGraphMapResult, HomeGraphNodeKind, HomeGraphObjectInput, HomeGraphObjectKind, HomeGraphPageAutomationOptions, HomeGraphPageListResult, HomeGraphProjectionInput, HomeGraphProjectionResult, HomeGraphReindexResult, HomeGraphRelation, HomeGraphResetInput, HomeGraphResetResult, HomeGraphReviewInput, HomeGraphSnapshotInput, HomeGraphStatus, HomeGraphSyncResult, } from './home-graph/index.js';
|
|
27
27
|
export { createKnowledgeApi } from './knowledge-api.js';
|
|
28
28
|
export { createKnowledgeSchema, getKnowledgeSchemaStatements, knowledgeNowMs, loadKnowledgeStoreSnapshot, parseKnowledgeJsonValue, renderKnowledgeSchemaSql, resolveKnowledgeDbPathFromControlPlaneDir, stabilizeKnowledgeText, uniqKnowledgeValues, } from './persistence.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/knowledge/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ProjectPlanningSpaceInput } from './types.js';
|
|
2
2
|
export declare const PROJECT_PLANNING_CONNECTOR_ID = "goodvibes-project-planning";
|
|
3
3
|
export declare const PROJECT_PLANNING_TAG = "project-planning";
|
|
4
|
-
export type ProjectPlanningArtifactKind = 'state' | 'decision' | 'language';
|
|
4
|
+
export type ProjectPlanningArtifactKind = 'state' | 'decision' | 'language' | 'work-plan';
|
|
5
5
|
export interface ResolvedProjectPlanningSpace {
|
|
6
6
|
readonly projectId: string;
|
|
7
7
|
readonly knowledgeSpaceId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/project-planning/helpers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGV,yBAAyB,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/platform/knowledge/project-planning/helpers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGV,yBAAyB,EAG1B,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,6BAA6B,+BAA+B,CAAC;AAC1E,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1F,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED,wBAAgB,2BAA2B,CACzC,KAAK,GAAE,yBAA8B,EACrC,gBAAgB,SAAY,GAC3B,4BAA4B,CAe9B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,2BAA2B,EACjC,EAAE,EAAE,MAAM,GACT,MAAM,CAER;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,2BAA2B,EACjC,EAAE,EAAE,MAAM,GACT,MAAM,CAGR;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAexG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKtE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF"}
|
|
@@ -48,6 +48,10 @@ export function projectPlanningArtifactSummary(kind, value) {
|
|
|
48
48
|
const decision = value;
|
|
49
49
|
return decision.decision ? `${decision.title ?? 'Decision'}: ${decision.decision}` : 'Project planning decision record.';
|
|
50
50
|
}
|
|
51
|
+
if (kind === 'work-plan') {
|
|
52
|
+
const workPlan = value;
|
|
53
|
+
return `Project work plan with ${workPlan.tasks?.length ?? 0} tasks.`;
|
|
54
|
+
}
|
|
51
55
|
const language = value;
|
|
52
56
|
return `Project language artifact with ${language.terms?.length ?? 0} terms and ${language.ambiguities?.length ?? 0} resolved ambiguities.`;
|
|
53
57
|
}
|