pm-orchestrator-runner 1.0.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/LICENSE +21 -0
- package/README.md +108 -0
- package/dist/cli/cli-interface.d.ts +150 -0
- package/dist/cli/cli-interface.d.ts.map +1 -0
- package/dist/cli/cli-interface.js +606 -0
- package/dist/cli/cli-interface.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +243 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/llm-sentinel.d.ts +15 -0
- package/dist/cli/llm-sentinel.d.ts.map +1 -0
- package/dist/cli/llm-sentinel.js +184 -0
- package/dist/cli/llm-sentinel.js.map +1 -0
- package/dist/config/configuration-manager.d.ts +149 -0
- package/dist/config/configuration-manager.d.ts.map +1 -0
- package/dist/config/configuration-manager.js +241 -0
- package/dist/config/configuration-manager.js.map +1 -0
- package/dist/continuation/continuation-control-manager.d.ts +154 -0
- package/dist/continuation/continuation-control-manager.d.ts.map +1 -0
- package/dist/continuation/continuation-control-manager.js +303 -0
- package/dist/continuation/continuation-control-manager.js.map +1 -0
- package/dist/core/runner-core.d.ts +474 -0
- package/dist/core/runner-core.d.ts.map +1 -0
- package/dist/core/runner-core.js +1311 -0
- package/dist/core/runner-core.js.map +1 -0
- package/dist/errors/error-codes.d.ts +105 -0
- package/dist/errors/error-codes.d.ts.map +1 -0
- package/dist/errors/error-codes.js +198 -0
- package/dist/errors/error-codes.js.map +1 -0
- package/dist/errors/runner-error.d.ts +14 -0
- package/dist/errors/runner-error.d.ts.map +1 -0
- package/dist/errors/runner-error.js +33 -0
- package/dist/errors/runner-error.js.map +1 -0
- package/dist/evidence/evidence-manager.d.ts +112 -0
- package/dist/evidence/evidence-manager.d.ts.map +1 -0
- package/dist/evidence/evidence-manager.js +337 -0
- package/dist/evidence/evidence-manager.js.map +1 -0
- package/dist/executor/claude-code-executor.d.ts +136 -0
- package/dist/executor/claude-code-executor.d.ts.map +1 -0
- package/dist/executor/claude-code-executor.js +643 -0
- package/dist/executor/claude-code-executor.js.map +1 -0
- package/dist/executor/deterministic-executor.d.ts +40 -0
- package/dist/executor/deterministic-executor.d.ts.map +1 -0
- package/dist/executor/deterministic-executor.js +269 -0
- package/dist/executor/deterministic-executor.js.map +1 -0
- package/dist/lifecycle/lifecycle-controller.d.ts +270 -0
- package/dist/lifecycle/lifecycle-controller.d.ts.map +1 -0
- package/dist/lifecycle/lifecycle-controller.js +596 -0
- package/dist/lifecycle/lifecycle-controller.js.map +1 -0
- package/dist/limits/resource-limit-manager.d.ts +200 -0
- package/dist/limits/resource-limit-manager.d.ts.map +1 -0
- package/dist/limits/resource-limit-manager.js +376 -0
- package/dist/limits/resource-limit-manager.js.map +1 -0
- package/dist/locks/lock-manager.d.ts +116 -0
- package/dist/locks/lock-manager.d.ts.map +1 -0
- package/dist/locks/lock-manager.js +306 -0
- package/dist/locks/lock-manager.js.map +1 -0
- package/dist/logging/index.d.ts +8 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +22 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/sensitive-data-masker.d.ts +90 -0
- package/dist/logging/sensitive-data-masker.d.ts.map +1 -0
- package/dist/logging/sensitive-data-masker.js +228 -0
- package/dist/logging/sensitive-data-masker.js.map +1 -0
- package/dist/logging/task-log-manager.d.ts +215 -0
- package/dist/logging/task-log-manager.d.ts.map +1 -0
- package/dist/logging/task-log-manager.js +743 -0
- package/dist/logging/task-log-manager.js.map +1 -0
- package/dist/mediation/fail-closed-runner.d.ts +131 -0
- package/dist/mediation/fail-closed-runner.d.ts.map +1 -0
- package/dist/mediation/fail-closed-runner.js +245 -0
- package/dist/mediation/fail-closed-runner.js.map +1 -0
- package/dist/mediation/llm-client-with-evidence.d.ts +123 -0
- package/dist/mediation/llm-client-with-evidence.d.ts.map +1 -0
- package/dist/mediation/llm-client-with-evidence.js +245 -0
- package/dist/mediation/llm-client-with-evidence.js.map +1 -0
- package/dist/mediation/llm-client.d.ts +102 -0
- package/dist/mediation/llm-client.d.ts.map +1 -0
- package/dist/mediation/llm-client.js +206 -0
- package/dist/mediation/llm-client.js.map +1 -0
- package/dist/mediation/llm-evidence-manager.d.ts +108 -0
- package/dist/mediation/llm-evidence-manager.d.ts.map +1 -0
- package/dist/mediation/llm-evidence-manager.js +230 -0
- package/dist/mediation/llm-evidence-manager.js.map +1 -0
- package/dist/mediation/llm-mediation-layer.d.ts +175 -0
- package/dist/mediation/llm-mediation-layer.d.ts.map +1 -0
- package/dist/mediation/llm-mediation-layer.js +315 -0
- package/dist/mediation/llm-mediation-layer.js.map +1 -0
- package/dist/mediation/llm-sentinel.d.ts +107 -0
- package/dist/mediation/llm-sentinel.d.ts.map +1 -0
- package/dist/mediation/llm-sentinel.js +187 -0
- package/dist/mediation/llm-sentinel.js.map +1 -0
- package/dist/mediation/real-llm-mediation-layer.d.ts +104 -0
- package/dist/mediation/real-llm-mediation-layer.d.ts.map +1 -0
- package/dist/mediation/real-llm-mediation-layer.js +322 -0
- package/dist/mediation/real-llm-mediation-layer.js.map +1 -0
- package/dist/mediation/verdict-reporter.d.ts +61 -0
- package/dist/mediation/verdict-reporter.d.ts.map +1 -0
- package/dist/mediation/verdict-reporter.js +178 -0
- package/dist/mediation/verdict-reporter.js.map +1 -0
- package/dist/models/enums.d.ts +133 -0
- package/dist/models/enums.d.ts.map +1 -0
- package/dist/models/enums.js +201 -0
- package/dist/models/enums.js.map +1 -0
- package/dist/models/evidence.d.ts +60 -0
- package/dist/models/evidence.d.ts.map +1 -0
- package/dist/models/evidence.js +135 -0
- package/dist/models/evidence.js.map +1 -0
- package/dist/models/execution-result.d.ts +89 -0
- package/dist/models/execution-result.d.ts.map +1 -0
- package/dist/models/execution-result.js +197 -0
- package/dist/models/execution-result.js.map +1 -0
- package/dist/models/file-lock.d.ts +62 -0
- package/dist/models/file-lock.d.ts.map +1 -0
- package/dist/models/file-lock.js +133 -0
- package/dist/models/file-lock.js.map +1 -0
- package/dist/models/index.d.ts +12 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +91 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/repl/index.d.ts +7 -0
- package/dist/models/repl/index.d.ts.map +1 -0
- package/dist/models/repl/index.js +32 -0
- package/dist/models/repl/index.js.map +1 -0
- package/dist/models/repl/model-registry.d.ts +73 -0
- package/dist/models/repl/model-registry.d.ts.map +1 -0
- package/dist/models/repl/model-registry.js +116 -0
- package/dist/models/repl/model-registry.js.map +1 -0
- package/dist/models/repl/repl-state.d.ts +86 -0
- package/dist/models/repl/repl-state.d.ts.map +1 -0
- package/dist/models/repl/repl-state.js +152 -0
- package/dist/models/repl/repl-state.js.map +1 -0
- package/dist/models/repl/task-log.d.ts +247 -0
- package/dist/models/repl/task-log.d.ts.map +1 -0
- package/dist/models/repl/task-log.js +178 -0
- package/dist/models/repl/task-log.js.map +1 -0
- package/dist/models/session.d.ts +71 -0
- package/dist/models/session.d.ts.map +1 -0
- package/dist/models/session.js +140 -0
- package/dist/models/session.js.map +1 -0
- package/dist/models/supporting.d.ts +97 -0
- package/dist/models/supporting.d.ts.map +1 -0
- package/dist/models/supporting.js +208 -0
- package/dist/models/supporting.js.map +1 -0
- package/dist/models/task.d.ts +77 -0
- package/dist/models/task.d.ts.map +1 -0
- package/dist/models/task.js +170 -0
- package/dist/models/task.js.map +1 -0
- package/dist/output/output-control-manager.d.ts +217 -0
- package/dist/output/output-control-manager.d.ts.map +1 -0
- package/dist/output/output-control-manager.js +378 -0
- package/dist/output/output-control-manager.js.map +1 -0
- package/dist/pool/agent-pool.d.ts +284 -0
- package/dist/pool/agent-pool.d.ts.map +1 -0
- package/dist/pool/agent-pool.js +451 -0
- package/dist/pool/agent-pool.js.map +1 -0
- package/dist/repl/commands/index.d.ts +12 -0
- package/dist/repl/commands/index.d.ts.map +1 -0
- package/dist/repl/commands/index.js +26 -0
- package/dist/repl/commands/index.js.map +1 -0
- package/dist/repl/commands/init.d.ts +31 -0
- package/dist/repl/commands/init.d.ts.map +1 -0
- package/dist/repl/commands/init.js +234 -0
- package/dist/repl/commands/init.js.map +1 -0
- package/dist/repl/commands/keys.d.ts +63 -0
- package/dist/repl/commands/keys.d.ts.map +1 -0
- package/dist/repl/commands/keys.js +114 -0
- package/dist/repl/commands/keys.js.map +1 -0
- package/dist/repl/commands/logs.d.ts +91 -0
- package/dist/repl/commands/logs.d.ts.map +1 -0
- package/dist/repl/commands/logs.js +200 -0
- package/dist/repl/commands/logs.js.map +1 -0
- package/dist/repl/commands/model.d.ts +85 -0
- package/dist/repl/commands/model.d.ts.map +1 -0
- package/dist/repl/commands/model.js +225 -0
- package/dist/repl/commands/model.js.map +1 -0
- package/dist/repl/commands/models.d.ts +50 -0
- package/dist/repl/commands/models.d.ts.map +1 -0
- package/dist/repl/commands/models.js +180 -0
- package/dist/repl/commands/models.js.map +1 -0
- package/dist/repl/commands/provider.d.ts +79 -0
- package/dist/repl/commands/provider.d.ts.map +1 -0
- package/dist/repl/commands/provider.js +291 -0
- package/dist/repl/commands/provider.js.map +1 -0
- package/dist/repl/commands/session.d.ts +50 -0
- package/dist/repl/commands/session.d.ts.map +1 -0
- package/dist/repl/commands/session.js +152 -0
- package/dist/repl/commands/session.js.map +1 -0
- package/dist/repl/commands/status.d.ts +55 -0
- package/dist/repl/commands/status.d.ts.map +1 -0
- package/dist/repl/commands/status.js +182 -0
- package/dist/repl/commands/status.js.map +1 -0
- package/dist/repl/index.d.ts +6 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +25 -0
- package/dist/repl/index.js.map +1 -0
- package/dist/repl/repl-interface.d.ts +371 -0
- package/dist/repl/repl-interface.d.ts.map +1 -0
- package/dist/repl/repl-interface.js +1214 -0
- package/dist/repl/repl-interface.js.map +1 -0
- package/dist/session/session-manager.d.ts +85 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +217 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/supervisor/executor-supervisor.d.ts +90 -0
- package/dist/supervisor/executor-supervisor.d.ts.map +1 -0
- package/dist/supervisor/executor-supervisor.js +223 -0
- package/dist/supervisor/executor-supervisor.js.map +1 -0
- package/dist/supervisor/index.d.ts +5 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +9 -0
- package/dist/supervisor/index.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TaskLog - Task Logging Models
|
|
3
|
+
*
|
|
4
|
+
* Per spec 05_DATA_MODELS.md Section "Task Log Structures"
|
|
5
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md
|
|
6
|
+
*
|
|
7
|
+
* Supports Thread/Run/Task hierarchy (v2.0)
|
|
8
|
+
* Supports executor blocking fields (Property 34-36)
|
|
9
|
+
*/
|
|
10
|
+
import type { BlockedReason, TerminatedBy } from '../enums';
|
|
11
|
+
/**
|
|
12
|
+
* Visibility levels for log display
|
|
13
|
+
* Per spec 05_DATA_MODELS.md
|
|
14
|
+
*/
|
|
15
|
+
export type VisibilityLevel = 'summary' | 'full';
|
|
16
|
+
/**
|
|
17
|
+
* Thread types
|
|
18
|
+
* Per spec 05_DATA_MODELS.md Section "ThreadType"
|
|
19
|
+
*/
|
|
20
|
+
export type ThreadType = 'main' | 'background' | 'system';
|
|
21
|
+
/**
|
|
22
|
+
* Run status
|
|
23
|
+
* Per spec 05_DATA_MODELS.md Section "RunStatus"
|
|
24
|
+
*/
|
|
25
|
+
export type RunStatus = 'RUNNING' | 'COMPLETED' | 'FAILED' | 'CANCELLED';
|
|
26
|
+
/**
|
|
27
|
+
* Run trigger
|
|
28
|
+
* Per spec 05_DATA_MODELS.md Section "RunTrigger"
|
|
29
|
+
*/
|
|
30
|
+
export type RunTrigger = 'USER_INPUT' | 'USER_RESPONSE' | 'CONTINUATION' | 'EXECUTOR';
|
|
31
|
+
/**
|
|
32
|
+
* Log event types
|
|
33
|
+
* Per spec 05_DATA_MODELS.md
|
|
34
|
+
*/
|
|
35
|
+
export type LogEventType = 'USER_INPUT' | 'RUNNER_CLARIFICATION' | 'USER_RESPONSE' | 'TASK_STARTED' | 'TASK_COMPLETED' | 'TASK_ERROR' | 'LLM_MEDIATION_REQUEST' | 'LLM_MEDIATION_RESPONSE' | 'EXECUTOR_DISPATCH' | 'EXECUTOR_OUTPUT' | 'FILE_OPERATION' | 'TEST_EXECUTION';
|
|
36
|
+
/**
|
|
37
|
+
* Summary-level event types (visible by default)
|
|
38
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 3.1
|
|
39
|
+
*/
|
|
40
|
+
export declare const SUMMARY_VISIBLE_EVENTS: LogEventType[];
|
|
41
|
+
/**
|
|
42
|
+
* Full-level event types (visible only with --full)
|
|
43
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 3.1
|
|
44
|
+
*/
|
|
45
|
+
export declare const FULL_ONLY_EVENTS: LogEventType[];
|
|
46
|
+
/**
|
|
47
|
+
* Get visibility level for an event type
|
|
48
|
+
*/
|
|
49
|
+
export declare function getEventVisibility(eventType: LogEventType): VisibilityLevel;
|
|
50
|
+
/**
|
|
51
|
+
* Thread structure
|
|
52
|
+
* Per spec 05_DATA_MODELS.md Section "Thread"
|
|
53
|
+
*/
|
|
54
|
+
export interface Thread {
|
|
55
|
+
thread_id: string;
|
|
56
|
+
session_id: string;
|
|
57
|
+
thread_type: ThreadType;
|
|
58
|
+
created_at: string;
|
|
59
|
+
description?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Run structure
|
|
63
|
+
* Per spec 05_DATA_MODELS.md Section "Run"
|
|
64
|
+
*/
|
|
65
|
+
export interface Run {
|
|
66
|
+
run_id: string;
|
|
67
|
+
thread_id: string;
|
|
68
|
+
session_id: string;
|
|
69
|
+
started_at: string;
|
|
70
|
+
completed_at: string | null;
|
|
71
|
+
status: RunStatus;
|
|
72
|
+
trigger: RunTrigger;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Session metadata structure
|
|
76
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 1.2
|
|
77
|
+
*/
|
|
78
|
+
export interface SessionMetadata {
|
|
79
|
+
session_id: string;
|
|
80
|
+
started_at: string;
|
|
81
|
+
threads: Array<{
|
|
82
|
+
thread_id: string;
|
|
83
|
+
thread_type: ThreadType;
|
|
84
|
+
}>;
|
|
85
|
+
runs: Array<{
|
|
86
|
+
run_id: string;
|
|
87
|
+
thread_id: string;
|
|
88
|
+
status: RunStatus;
|
|
89
|
+
}>;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Global index structure
|
|
93
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 1.1
|
|
94
|
+
*/
|
|
95
|
+
export interface GlobalLogIndex {
|
|
96
|
+
created_at: string;
|
|
97
|
+
updated_at: string;
|
|
98
|
+
sessions: Array<{
|
|
99
|
+
session_id: string;
|
|
100
|
+
started_at: string;
|
|
101
|
+
task_count: number;
|
|
102
|
+
}>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* LogEvent content structure
|
|
106
|
+
* Per spec 05_DATA_MODELS.md
|
|
107
|
+
*/
|
|
108
|
+
export interface LogEventContent {
|
|
109
|
+
text?: string;
|
|
110
|
+
question?: string;
|
|
111
|
+
clarification_reason?: string;
|
|
112
|
+
action?: string;
|
|
113
|
+
target_file?: string;
|
|
114
|
+
status?: string;
|
|
115
|
+
files_modified?: string[];
|
|
116
|
+
evidence_ref?: string;
|
|
117
|
+
error_message?: string;
|
|
118
|
+
provider?: string;
|
|
119
|
+
model?: string;
|
|
120
|
+
prompt_summary?: string;
|
|
121
|
+
tokens_input?: number;
|
|
122
|
+
response_type?: string;
|
|
123
|
+
tokens_output?: number;
|
|
124
|
+
latency_ms?: number;
|
|
125
|
+
executor?: string;
|
|
126
|
+
task_summary?: string;
|
|
127
|
+
exit_code?: number;
|
|
128
|
+
output_summary?: string;
|
|
129
|
+
raw_output_ref?: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* LogEvent structure
|
|
133
|
+
* Per spec 05_DATA_MODELS.md
|
|
134
|
+
*/
|
|
135
|
+
export interface LogEvent {
|
|
136
|
+
event_id: string;
|
|
137
|
+
timestamp: string;
|
|
138
|
+
event_type: LogEventType;
|
|
139
|
+
visibility_level: VisibilityLevel;
|
|
140
|
+
content: LogEventContent;
|
|
141
|
+
metadata?: Record<string, unknown>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* TaskLogSummary structure
|
|
145
|
+
* Per spec 05_DATA_MODELS.md
|
|
146
|
+
*/
|
|
147
|
+
export interface TaskLogSummary {
|
|
148
|
+
total_events: number;
|
|
149
|
+
summary_events: number;
|
|
150
|
+
full_events: number;
|
|
151
|
+
total_tokens_input: number;
|
|
152
|
+
total_tokens_output: number;
|
|
153
|
+
total_latency_ms: number;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* TaskLog structure with Thread/Run context
|
|
157
|
+
* Per spec 05_DATA_MODELS.md
|
|
158
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md - Property 34-36 executor blocking fields
|
|
159
|
+
*/
|
|
160
|
+
export interface TaskLog {
|
|
161
|
+
task_id: string;
|
|
162
|
+
session_id: string;
|
|
163
|
+
thread_id: string;
|
|
164
|
+
run_id: string;
|
|
165
|
+
parent_task_id: string | null;
|
|
166
|
+
created_at: string;
|
|
167
|
+
events: LogEvent[];
|
|
168
|
+
summary: TaskLogSummary;
|
|
169
|
+
evidence_refs: string[];
|
|
170
|
+
/** Executor blocked in non-interactive mode (Property 34-36) */
|
|
171
|
+
executor_blocked?: boolean;
|
|
172
|
+
/** Blocking reason - required when executor_blocked is true */
|
|
173
|
+
blocked_reason?: BlockedReason;
|
|
174
|
+
/** Time until blocking was detected (ms) - required when executor_blocked is true */
|
|
175
|
+
timeout_ms?: number;
|
|
176
|
+
/** How the executor was terminated - required when executor_blocked is true */
|
|
177
|
+
terminated_by?: TerminatedBy;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* TaskLogEntry structure (for index) with hierarchy fields
|
|
181
|
+
* Per spec 05_DATA_MODELS.md
|
|
182
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md - Property 34-36 executor blocking fields
|
|
183
|
+
*/
|
|
184
|
+
export interface TaskLogEntry {
|
|
185
|
+
task_id: string;
|
|
186
|
+
thread_id: string;
|
|
187
|
+
run_id: string;
|
|
188
|
+
parent_task_id: string | null;
|
|
189
|
+
status: string;
|
|
190
|
+
started_at: string;
|
|
191
|
+
completed_at: string | null;
|
|
192
|
+
duration_ms: number;
|
|
193
|
+
files_modified_count: number;
|
|
194
|
+
tests_run_count: number;
|
|
195
|
+
log_file: string;
|
|
196
|
+
/** Executor blocked in non-interactive mode (Property 34-36) */
|
|
197
|
+
executor_blocked?: boolean;
|
|
198
|
+
/** Blocking reason - required when executor_blocked is true */
|
|
199
|
+
blocked_reason?: BlockedReason;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* TaskLogIndex structure
|
|
203
|
+
* Per spec 05_DATA_MODELS.md
|
|
204
|
+
*/
|
|
205
|
+
export interface TaskLogIndex {
|
|
206
|
+
session_id: string;
|
|
207
|
+
created_at: string;
|
|
208
|
+
updated_at: string;
|
|
209
|
+
entries: TaskLogEntry[];
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Create initial TaskLogIndex
|
|
213
|
+
*/
|
|
214
|
+
export declare function createTaskLogIndex(sessionId: string): TaskLogIndex;
|
|
215
|
+
/**
|
|
216
|
+
* Create initial TaskLog with Thread/Run context
|
|
217
|
+
*/
|
|
218
|
+
export declare function createTaskLog(taskId: string, sessionId: string, threadId?: string, runId?: string, parentTaskId?: string | null): TaskLog;
|
|
219
|
+
/**
|
|
220
|
+
* Create initial Thread
|
|
221
|
+
*/
|
|
222
|
+
export declare function createThread(threadId: string, sessionId: string, threadType: ThreadType, description?: string): Thread;
|
|
223
|
+
/**
|
|
224
|
+
* Create initial Run
|
|
225
|
+
*/
|
|
226
|
+
export declare function createRun(runId: string, threadId: string, sessionId: string, trigger: RunTrigger): Run;
|
|
227
|
+
/**
|
|
228
|
+
* Create initial SessionMetadata
|
|
229
|
+
*/
|
|
230
|
+
export declare function createSessionMetadata(sessionId: string): SessionMetadata;
|
|
231
|
+
/**
|
|
232
|
+
* Create initial GlobalLogIndex
|
|
233
|
+
*/
|
|
234
|
+
export declare function createGlobalLogIndex(): GlobalLogIndex;
|
|
235
|
+
/**
|
|
236
|
+
* Create a LogEvent
|
|
237
|
+
*/
|
|
238
|
+
export declare function createLogEvent(eventId: string, eventType: LogEventType, content: LogEventContent, metadata?: Record<string, unknown>): LogEvent;
|
|
239
|
+
/**
|
|
240
|
+
* Add event to TaskLog and update summary
|
|
241
|
+
*/
|
|
242
|
+
export declare function addEventToTaskLog(log: TaskLog, event: LogEvent): TaskLog;
|
|
243
|
+
/**
|
|
244
|
+
* Filter events by visibility level
|
|
245
|
+
*/
|
|
246
|
+
export declare function filterEventsByVisibility(events: LogEvent[], level: VisibilityLevel): LogEvent[];
|
|
247
|
+
//# sourceMappingURL=task-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-log.d.ts","sourceRoot":"","sources":["../../../src/models/repl/task-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TaskLog - Task Logging Models
|
|
4
|
+
*
|
|
5
|
+
* Per spec 05_DATA_MODELS.md Section "Task Log Structures"
|
|
6
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md
|
|
7
|
+
*
|
|
8
|
+
* Supports Thread/Run/Task hierarchy (v2.0)
|
|
9
|
+
* Supports executor blocking fields (Property 34-36)
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FULL_ONLY_EVENTS = exports.SUMMARY_VISIBLE_EVENTS = void 0;
|
|
13
|
+
exports.getEventVisibility = getEventVisibility;
|
|
14
|
+
exports.createTaskLogIndex = createTaskLogIndex;
|
|
15
|
+
exports.createTaskLog = createTaskLog;
|
|
16
|
+
exports.createThread = createThread;
|
|
17
|
+
exports.createRun = createRun;
|
|
18
|
+
exports.createSessionMetadata = createSessionMetadata;
|
|
19
|
+
exports.createGlobalLogIndex = createGlobalLogIndex;
|
|
20
|
+
exports.createLogEvent = createLogEvent;
|
|
21
|
+
exports.addEventToTaskLog = addEventToTaskLog;
|
|
22
|
+
exports.filterEventsByVisibility = filterEventsByVisibility;
|
|
23
|
+
/**
|
|
24
|
+
* Summary-level event types (visible by default)
|
|
25
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 3.1
|
|
26
|
+
*/
|
|
27
|
+
exports.SUMMARY_VISIBLE_EVENTS = [
|
|
28
|
+
'USER_INPUT',
|
|
29
|
+
'USER_RESPONSE',
|
|
30
|
+
'RUNNER_CLARIFICATION',
|
|
31
|
+
'TASK_STARTED',
|
|
32
|
+
'TASK_COMPLETED',
|
|
33
|
+
'TASK_ERROR',
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* Full-level event types (visible only with --full)
|
|
37
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 3.1
|
|
38
|
+
*/
|
|
39
|
+
exports.FULL_ONLY_EVENTS = [
|
|
40
|
+
'LLM_MEDIATION_REQUEST',
|
|
41
|
+
'LLM_MEDIATION_RESPONSE',
|
|
42
|
+
'EXECUTOR_DISPATCH',
|
|
43
|
+
'EXECUTOR_OUTPUT',
|
|
44
|
+
'FILE_OPERATION',
|
|
45
|
+
'TEST_EXECUTION',
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* Get visibility level for an event type
|
|
49
|
+
*/
|
|
50
|
+
function getEventVisibility(eventType) {
|
|
51
|
+
return exports.SUMMARY_VISIBLE_EVENTS.includes(eventType) ? 'summary' : 'full';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create initial TaskLogIndex
|
|
55
|
+
*/
|
|
56
|
+
function createTaskLogIndex(sessionId) {
|
|
57
|
+
const now = new Date().toISOString();
|
|
58
|
+
return {
|
|
59
|
+
session_id: sessionId,
|
|
60
|
+
created_at: now,
|
|
61
|
+
updated_at: now,
|
|
62
|
+
entries: [],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Create initial TaskLog with Thread/Run context
|
|
67
|
+
*/
|
|
68
|
+
function createTaskLog(taskId, sessionId, threadId = '', runId = '', parentTaskId = null) {
|
|
69
|
+
return {
|
|
70
|
+
task_id: taskId,
|
|
71
|
+
session_id: sessionId,
|
|
72
|
+
thread_id: threadId,
|
|
73
|
+
run_id: runId,
|
|
74
|
+
parent_task_id: parentTaskId,
|
|
75
|
+
created_at: new Date().toISOString(),
|
|
76
|
+
events: [],
|
|
77
|
+
summary: {
|
|
78
|
+
total_events: 0,
|
|
79
|
+
summary_events: 0,
|
|
80
|
+
full_events: 0,
|
|
81
|
+
total_tokens_input: 0,
|
|
82
|
+
total_tokens_output: 0,
|
|
83
|
+
total_latency_ms: 0,
|
|
84
|
+
},
|
|
85
|
+
evidence_refs: [],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create initial Thread
|
|
90
|
+
*/
|
|
91
|
+
function createThread(threadId, sessionId, threadType, description) {
|
|
92
|
+
return {
|
|
93
|
+
thread_id: threadId,
|
|
94
|
+
session_id: sessionId,
|
|
95
|
+
thread_type: threadType,
|
|
96
|
+
created_at: new Date().toISOString(),
|
|
97
|
+
description,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Create initial Run
|
|
102
|
+
*/
|
|
103
|
+
function createRun(runId, threadId, sessionId, trigger) {
|
|
104
|
+
return {
|
|
105
|
+
run_id: runId,
|
|
106
|
+
thread_id: threadId,
|
|
107
|
+
session_id: sessionId,
|
|
108
|
+
started_at: new Date().toISOString(),
|
|
109
|
+
completed_at: null,
|
|
110
|
+
status: 'RUNNING',
|
|
111
|
+
trigger,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create initial SessionMetadata
|
|
116
|
+
*/
|
|
117
|
+
function createSessionMetadata(sessionId) {
|
|
118
|
+
return {
|
|
119
|
+
session_id: sessionId,
|
|
120
|
+
started_at: new Date().toISOString(),
|
|
121
|
+
threads: [],
|
|
122
|
+
runs: [],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create initial GlobalLogIndex
|
|
127
|
+
*/
|
|
128
|
+
function createGlobalLogIndex() {
|
|
129
|
+
const now = new Date().toISOString();
|
|
130
|
+
return {
|
|
131
|
+
created_at: now,
|
|
132
|
+
updated_at: now,
|
|
133
|
+
sessions: [],
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Create a LogEvent
|
|
138
|
+
*/
|
|
139
|
+
function createLogEvent(eventId, eventType, content, metadata) {
|
|
140
|
+
return {
|
|
141
|
+
event_id: eventId,
|
|
142
|
+
timestamp: new Date().toISOString(),
|
|
143
|
+
event_type: eventType,
|
|
144
|
+
visibility_level: getEventVisibility(eventType),
|
|
145
|
+
content,
|
|
146
|
+
metadata,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Add event to TaskLog and update summary
|
|
151
|
+
*/
|
|
152
|
+
function addEventToTaskLog(log, event) {
|
|
153
|
+
const events = [...log.events, event];
|
|
154
|
+
const summary = {
|
|
155
|
+
...log.summary,
|
|
156
|
+
total_events: log.summary.total_events + 1,
|
|
157
|
+
summary_events: log.summary.summary_events + (event.visibility_level === 'summary' ? 1 : 0),
|
|
158
|
+
full_events: log.summary.full_events + (event.visibility_level === 'full' ? 1 : 0),
|
|
159
|
+
total_tokens_input: log.summary.total_tokens_input + (event.content.tokens_input || 0),
|
|
160
|
+
total_tokens_output: log.summary.total_tokens_output + (event.content.tokens_output || 0),
|
|
161
|
+
total_latency_ms: log.summary.total_latency_ms + (event.content.latency_ms || 0),
|
|
162
|
+
};
|
|
163
|
+
return {
|
|
164
|
+
...log,
|
|
165
|
+
events,
|
|
166
|
+
summary,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Filter events by visibility level
|
|
171
|
+
*/
|
|
172
|
+
function filterEventsByVisibility(events, level) {
|
|
173
|
+
if (level === 'full') {
|
|
174
|
+
return events; // Show all events
|
|
175
|
+
}
|
|
176
|
+
return events.filter(e => e.visibility_level === 'summary');
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=task-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-log.js","sourceRoot":"","sources":["../../../src/models/repl/task-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Model
|
|
3
|
+
* Based on 05_DATA_MODELS.md L8-21
|
|
4
|
+
*/
|
|
5
|
+
import { Phase, OverallStatus } from './enums';
|
|
6
|
+
/**
|
|
7
|
+
* Session execution status (for session manager)
|
|
8
|
+
*/
|
|
9
|
+
export declare enum SessionStatus {
|
|
10
|
+
INITIALIZED = "INITIALIZED",
|
|
11
|
+
RUNNING = "RUNNING",
|
|
12
|
+
PAUSED = "PAUSED",
|
|
13
|
+
COMPLETED = "COMPLETED",
|
|
14
|
+
FAILED = "FAILED"
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Session data structure
|
|
18
|
+
* Note: status field can be either OverallStatus (for validation outcome)
|
|
19
|
+
* or SessionStatus (for execution state in SessionManager)
|
|
20
|
+
*/
|
|
21
|
+
export interface Session {
|
|
22
|
+
session_id: string;
|
|
23
|
+
started_at: string;
|
|
24
|
+
target_project: string;
|
|
25
|
+
runner_version: string;
|
|
26
|
+
configuration: Record<string, unknown>;
|
|
27
|
+
current_phase: Phase;
|
|
28
|
+
status: OverallStatus | SessionStatus;
|
|
29
|
+
continuation_approved: boolean;
|
|
30
|
+
limit_violations: string[];
|
|
31
|
+
phases_completed?: Phase[];
|
|
32
|
+
ended_at?: string;
|
|
33
|
+
completed_at?: string;
|
|
34
|
+
error?: {
|
|
35
|
+
code: string;
|
|
36
|
+
message: string;
|
|
37
|
+
details?: Record<string, unknown>;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Session validation error
|
|
42
|
+
*/
|
|
43
|
+
export declare class SessionValidationError extends Error {
|
|
44
|
+
constructor(message: string);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create a new session
|
|
48
|
+
*/
|
|
49
|
+
export declare function createSession(targetProject: string, runnerVersion: string, configuration: Record<string, unknown>): Session;
|
|
50
|
+
/**
|
|
51
|
+
* Validate a session object
|
|
52
|
+
* @throws SessionValidationError if validation fails
|
|
53
|
+
*/
|
|
54
|
+
export declare function validateSession(session: Session): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Update session phase
|
|
57
|
+
*/
|
|
58
|
+
export declare function updateSessionPhase(session: Session, newPhase: Phase): Session;
|
|
59
|
+
/**
|
|
60
|
+
* Update session status
|
|
61
|
+
*/
|
|
62
|
+
export declare function updateSessionStatus(session: Session, newStatus: OverallStatus): Session;
|
|
63
|
+
/**
|
|
64
|
+
* Mark session as complete
|
|
65
|
+
*/
|
|
66
|
+
export declare function completeSession(session: Session): Session;
|
|
67
|
+
/**
|
|
68
|
+
* Mark session with error
|
|
69
|
+
*/
|
|
70
|
+
export declare function failSession(session: Session, errorCode: string, errorMessage: string, details?: Record<string, unknown>): Session;
|
|
71
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/models/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/C;;GAEG;AACH,oBAAY,aAAa;IACvB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,aAAa,EAAE,KAAK,CAAC;IACrB,MAAM,EAAE,aAAa,GAAG,aAAa,CAAC;IACtC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAaT;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAwCzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,CAQ7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAMvF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CASzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAWT"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Session Model
|
|
4
|
+
* Based on 05_DATA_MODELS.md L8-21
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.SessionValidationError = exports.SessionStatus = void 0;
|
|
8
|
+
exports.createSession = createSession;
|
|
9
|
+
exports.validateSession = validateSession;
|
|
10
|
+
exports.updateSessionPhase = updateSessionPhase;
|
|
11
|
+
exports.updateSessionStatus = updateSessionStatus;
|
|
12
|
+
exports.completeSession = completeSession;
|
|
13
|
+
exports.failSession = failSession;
|
|
14
|
+
const uuid_1 = require("uuid");
|
|
15
|
+
const enums_1 = require("./enums");
|
|
16
|
+
/**
|
|
17
|
+
* Session execution status (for session manager)
|
|
18
|
+
*/
|
|
19
|
+
var SessionStatus;
|
|
20
|
+
(function (SessionStatus) {
|
|
21
|
+
SessionStatus["INITIALIZED"] = "INITIALIZED";
|
|
22
|
+
SessionStatus["RUNNING"] = "RUNNING";
|
|
23
|
+
SessionStatus["PAUSED"] = "PAUSED";
|
|
24
|
+
SessionStatus["COMPLETED"] = "COMPLETED";
|
|
25
|
+
SessionStatus["FAILED"] = "FAILED";
|
|
26
|
+
})(SessionStatus || (exports.SessionStatus = SessionStatus = {}));
|
|
27
|
+
/**
|
|
28
|
+
* Session validation error
|
|
29
|
+
*/
|
|
30
|
+
class SessionValidationError extends Error {
|
|
31
|
+
constructor(message) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = 'SessionValidationError';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.SessionValidationError = SessionValidationError;
|
|
37
|
+
/**
|
|
38
|
+
* Create a new session
|
|
39
|
+
*/
|
|
40
|
+
function createSession(targetProject, runnerVersion, configuration) {
|
|
41
|
+
return {
|
|
42
|
+
session_id: `session-${(0, uuid_1.v4)()}`,
|
|
43
|
+
started_at: new Date().toISOString(),
|
|
44
|
+
target_project: targetProject,
|
|
45
|
+
runner_version: runnerVersion,
|
|
46
|
+
configuration,
|
|
47
|
+
current_phase: enums_1.Phase.REQUIREMENT_ANALYSIS,
|
|
48
|
+
status: enums_1.OverallStatus.INCOMPLETE,
|
|
49
|
+
continuation_approved: false,
|
|
50
|
+
limit_violations: [],
|
|
51
|
+
phases_completed: [],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Validate a session object
|
|
56
|
+
* @throws SessionValidationError if validation fails
|
|
57
|
+
*/
|
|
58
|
+
function validateSession(session) {
|
|
59
|
+
if (!session.session_id || session.session_id.length === 0) {
|
|
60
|
+
throw new SessionValidationError('session_id is required');
|
|
61
|
+
}
|
|
62
|
+
if (!session.started_at || session.started_at.length === 0) {
|
|
63
|
+
throw new SessionValidationError('started_at is required');
|
|
64
|
+
}
|
|
65
|
+
// Validate timestamp format
|
|
66
|
+
const timestamp = new Date(session.started_at);
|
|
67
|
+
if (isNaN(timestamp.getTime())) {
|
|
68
|
+
throw new SessionValidationError('started_at must be a valid ISO 8601 timestamp');
|
|
69
|
+
}
|
|
70
|
+
if (!session.target_project || session.target_project.length === 0) {
|
|
71
|
+
throw new SessionValidationError('target_project is required');
|
|
72
|
+
}
|
|
73
|
+
if (!session.runner_version || session.runner_version.length === 0) {
|
|
74
|
+
throw new SessionValidationError('runner_version is required');
|
|
75
|
+
}
|
|
76
|
+
if (session.current_phase === undefined) {
|
|
77
|
+
throw new SessionValidationError('current_phase is required');
|
|
78
|
+
}
|
|
79
|
+
if (session.status === undefined) {
|
|
80
|
+
throw new SessionValidationError('status is required');
|
|
81
|
+
}
|
|
82
|
+
if (session.continuation_approved === undefined) {
|
|
83
|
+
throw new SessionValidationError('continuation_approved is required');
|
|
84
|
+
}
|
|
85
|
+
if (!Array.isArray(session.limit_violations)) {
|
|
86
|
+
throw new SessionValidationError('limit_violations must be an array');
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Update session phase
|
|
92
|
+
*/
|
|
93
|
+
function updateSessionPhase(session, newPhase) {
|
|
94
|
+
return {
|
|
95
|
+
...session,
|
|
96
|
+
current_phase: newPhase,
|
|
97
|
+
phases_completed: session.phases_completed
|
|
98
|
+
? [...session.phases_completed, session.current_phase]
|
|
99
|
+
: [session.current_phase],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Update session status
|
|
104
|
+
*/
|
|
105
|
+
function updateSessionStatus(session, newStatus) {
|
|
106
|
+
return {
|
|
107
|
+
...session,
|
|
108
|
+
status: newStatus,
|
|
109
|
+
ended_at: newStatus !== enums_1.OverallStatus.INCOMPLETE ? new Date().toISOString() : session.ended_at,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Mark session as complete
|
|
114
|
+
*/
|
|
115
|
+
function completeSession(session) {
|
|
116
|
+
return {
|
|
117
|
+
...session,
|
|
118
|
+
status: enums_1.OverallStatus.COMPLETE,
|
|
119
|
+
ended_at: new Date().toISOString(),
|
|
120
|
+
phases_completed: session.phases_completed
|
|
121
|
+
? [...session.phases_completed, session.current_phase]
|
|
122
|
+
: [session.current_phase],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Mark session with error
|
|
127
|
+
*/
|
|
128
|
+
function failSession(session, errorCode, errorMessage, details) {
|
|
129
|
+
return {
|
|
130
|
+
...session,
|
|
131
|
+
status: enums_1.OverallStatus.ERROR,
|
|
132
|
+
ended_at: new Date().toISOString(),
|
|
133
|
+
error: {
|
|
134
|
+
code: errorCode,
|
|
135
|
+
message: errorMessage,
|
|
136
|
+
details,
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/models/session.ts"],"names":[],"mappings":"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"}
|