@tomflow/proflow-task-orchestration 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/conformance.json +4 -0
- package/dist/deployment/adapter.d.ts +47 -0
- package/dist/deployment/adapter.js +26 -0
- package/dist/deployment/descriptor.d.ts +46 -0
- package/dist/deployment/descriptor.js +45 -0
- package/dist/src/contracts.d.ts +3 -0
- package/dist/src/contracts.js +187 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/model.d.ts +189 -0
- package/dist/src/model.js +5 -0
- package/dist/src/services.d.ts +175 -0
- package/dist/src/services.js +1358 -0
- package/dist/src/transitions.d.ts +4 -0
- package/dist/src/transitions.js +27 -0
- package/package.json +51 -0
- package/proflow.module.json +56 -0
- package/self-install.mjs +26 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import type { NodeStatus, Task, TaskEvent, TaskGroup, TaskMessage, TaskNode, TaskResult, TaskStore } from "./model.ts";
|
|
2
|
+
export interface TaskSummary extends Task {
|
|
3
|
+
canStart: boolean;
|
|
4
|
+
blockedReason: string | null;
|
|
5
|
+
}
|
|
6
|
+
export interface TaskView {
|
|
7
|
+
taskId: string;
|
|
8
|
+
taskGroupId: string | null;
|
|
9
|
+
sequenceNo: number | null;
|
|
10
|
+
title: string;
|
|
11
|
+
objective: string;
|
|
12
|
+
status: Task["status"];
|
|
13
|
+
version: number;
|
|
14
|
+
planVersion: number;
|
|
15
|
+
currentNodeId: string | null;
|
|
16
|
+
roleBindings: Array<{
|
|
17
|
+
agentPackageRef: string;
|
|
18
|
+
roleRef: string;
|
|
19
|
+
workerRef: string | null;
|
|
20
|
+
conversationLocator: string | null;
|
|
21
|
+
}>;
|
|
22
|
+
nodes: Array<{
|
|
23
|
+
nodeId: string;
|
|
24
|
+
title: string;
|
|
25
|
+
status: NodeStatus;
|
|
26
|
+
runNo: number;
|
|
27
|
+
requiredAgentPackageRef: string;
|
|
28
|
+
workerRef: string | null;
|
|
29
|
+
version: number;
|
|
30
|
+
}>;
|
|
31
|
+
pendingMessages: TaskMessage[];
|
|
32
|
+
readiness?: {
|
|
33
|
+
ready: boolean;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface NodeResult {
|
|
37
|
+
taskId: string;
|
|
38
|
+
nodeId: string;
|
|
39
|
+
status: NodeStatus;
|
|
40
|
+
runNo: number;
|
|
41
|
+
workerRef: string | null;
|
|
42
|
+
taskVersion: number;
|
|
43
|
+
nodeVersion: number;
|
|
44
|
+
startedAt: string | null;
|
|
45
|
+
}
|
|
46
|
+
export interface CreateTaskResult {
|
|
47
|
+
taskId: string;
|
|
48
|
+
taskGroupId: string | null;
|
|
49
|
+
status: Task["status"];
|
|
50
|
+
version: number;
|
|
51
|
+
planVersion: number;
|
|
52
|
+
currentNodeId: string | null;
|
|
53
|
+
roleBindings: Array<{
|
|
54
|
+
agentPackageRef: string;
|
|
55
|
+
roleRef: string;
|
|
56
|
+
workerRef: string | null;
|
|
57
|
+
conversationLocator: string | null;
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
export interface BindTaskWorkerResult {
|
|
61
|
+
taskId: string;
|
|
62
|
+
version: number;
|
|
63
|
+
roleBinding: {
|
|
64
|
+
agentPackageRef: string;
|
|
65
|
+
roleRef: string;
|
|
66
|
+
workerRef: string;
|
|
67
|
+
conversationLocator: string;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export interface CompleteNodeResult {
|
|
71
|
+
nodeId: string;
|
|
72
|
+
status: "SUCCEEDED";
|
|
73
|
+
runNo: number;
|
|
74
|
+
completedAt: string;
|
|
75
|
+
taskStatus: Task["status"];
|
|
76
|
+
taskVersion: number;
|
|
77
|
+
nextNodeId: string | null;
|
|
78
|
+
}
|
|
79
|
+
export interface DocumentResult {
|
|
80
|
+
taskId: string;
|
|
81
|
+
nodeId: string | null;
|
|
82
|
+
documentType: string;
|
|
83
|
+
path: string;
|
|
84
|
+
contentHash: string;
|
|
85
|
+
sizeBytes: number;
|
|
86
|
+
taskVersion: number;
|
|
87
|
+
updatedAt: string;
|
|
88
|
+
content?: string;
|
|
89
|
+
}
|
|
90
|
+
export declare function createTaskServices(options: {
|
|
91
|
+
store: TaskStore;
|
|
92
|
+
workspaceRoot: string;
|
|
93
|
+
now?: () => string;
|
|
94
|
+
createId?: (prefix: string) => string;
|
|
95
|
+
writeDocument?: (relativePath: string, content: string) => void;
|
|
96
|
+
promoteDocument?: (stagedRelativePath: string, finalRelativePath: string) => void;
|
|
97
|
+
}): {
|
|
98
|
+
commands: {
|
|
99
|
+
createTaskGroup: (raw: unknown) => TaskResult<TaskGroup>;
|
|
100
|
+
startTaskGroup: (raw: unknown) => TaskResult<TaskGroup & {
|
|
101
|
+
firstEligibleTaskId: string | null;
|
|
102
|
+
}>;
|
|
103
|
+
createTask: (raw: unknown) => TaskResult<CreateTaskResult>;
|
|
104
|
+
bindTaskWorker: (raw: unknown) => TaskResult<BindTaskWorkerResult>;
|
|
105
|
+
startTask: (raw: unknown) => TaskResult<TaskView>;
|
|
106
|
+
pauseTask: (raw: unknown) => TaskResult<Task>;
|
|
107
|
+
resumeTask: (raw: unknown) => TaskResult<Task>;
|
|
108
|
+
terminateTask: (raw: unknown) => TaskResult<Task>;
|
|
109
|
+
startNode: (raw: unknown) => TaskResult<NodeResult>;
|
|
110
|
+
completeNode: (raw: unknown) => TaskResult<CompleteNodeResult>;
|
|
111
|
+
waitNode: (raw: unknown) => TaskResult<Task>;
|
|
112
|
+
failNode: (raw: unknown) => TaskResult<Task>;
|
|
113
|
+
reopenNode: (raw: unknown) => TaskResult<NodeResult & {
|
|
114
|
+
currentNodeId: string;
|
|
115
|
+
}>;
|
|
116
|
+
acknowledgeMessage: (raw: unknown) => TaskResult<TaskMessage>;
|
|
117
|
+
};
|
|
118
|
+
queries: {
|
|
119
|
+
getTaskGroup: (raw: unknown) => TaskResult<TaskGroup & {
|
|
120
|
+
currentTaskId: string | null;
|
|
121
|
+
tasks: Task[];
|
|
122
|
+
}>;
|
|
123
|
+
listTasks: (raw: unknown) => TaskResult<{
|
|
124
|
+
tasks: TaskSummary[];
|
|
125
|
+
}>;
|
|
126
|
+
getTask: (raw: unknown) => TaskResult<TaskView>;
|
|
127
|
+
getTaskDriveProjection: (raw: unknown) => TaskResult<{
|
|
128
|
+
taskId: string;
|
|
129
|
+
taskStatus: Task["status"];
|
|
130
|
+
taskVersion: number;
|
|
131
|
+
terminal: boolean;
|
|
132
|
+
currentNode: {
|
|
133
|
+
nodeId: string;
|
|
134
|
+
status: NodeStatus;
|
|
135
|
+
version: number;
|
|
136
|
+
runNo: number;
|
|
137
|
+
requiredAgentPackageRef: string;
|
|
138
|
+
} | null;
|
|
139
|
+
roleBinding: {
|
|
140
|
+
agentPackageRef: string;
|
|
141
|
+
roleRef: string;
|
|
142
|
+
workerRef: string | null;
|
|
143
|
+
conversationLocator: string | null;
|
|
144
|
+
} | null;
|
|
145
|
+
canDrive: boolean;
|
|
146
|
+
blockedReason: string | null;
|
|
147
|
+
}>;
|
|
148
|
+
getNodeContext: (raw: unknown) => TaskResult<{
|
|
149
|
+
task: Pick<Task, "taskId" | "title" | "objective" | "status" | "version">;
|
|
150
|
+
node: Pick<TaskNode, "nodeId" | "title" | "objective" | "status" | "version" | "runNo" | "requiredAgentPackageRef" | "workerRef" | "inputDocuments" | "outputDocuments">;
|
|
151
|
+
documents: Array<{
|
|
152
|
+
documentType: string;
|
|
153
|
+
path: string;
|
|
154
|
+
contentHash: string;
|
|
155
|
+
sizeBytes: number;
|
|
156
|
+
}>;
|
|
157
|
+
}>;
|
|
158
|
+
listPendingMessages: (raw: unknown) => TaskResult<{
|
|
159
|
+
messages: TaskMessage[];
|
|
160
|
+
}>;
|
|
161
|
+
listTaskEvents: (raw: unknown) => TaskResult<{
|
|
162
|
+
events: TaskEvent[];
|
|
163
|
+
}>;
|
|
164
|
+
getTaskDocument: (raw: unknown) => TaskResult<DocumentResult>;
|
|
165
|
+
};
|
|
166
|
+
documents: {
|
|
167
|
+
putTaskDocument: (raw: unknown) => TaskResult<DocumentResult>;
|
|
168
|
+
reconcileDocumentIndex: (input: {
|
|
169
|
+
taskId: string;
|
|
170
|
+
actorRef: string;
|
|
171
|
+
}) => TaskResult<{
|
|
172
|
+
reconciled: number;
|
|
173
|
+
}>;
|
|
174
|
+
};
|
|
175
|
+
};
|