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,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sensitive Data Masker
|
|
4
|
+
*
|
|
5
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 4:
|
|
6
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 24/25:
|
|
7
|
+
*
|
|
8
|
+
* 11 Masking Patterns across 4 Priority Levels:
|
|
9
|
+
*
|
|
10
|
+
* Priority 1 - Critical Secrets:
|
|
11
|
+
* 1. OpenAI API Key: sk-[A-Za-z0-9]{20,}
|
|
12
|
+
* 2. Anthropic API Key: sk-ant-[A-Za-z0-9-]{20,}
|
|
13
|
+
* 3. Private Key blocks: -----BEGIN.*PRIVATE KEY-----
|
|
14
|
+
*
|
|
15
|
+
* Priority 2 - Tokens and Auth Headers:
|
|
16
|
+
* 4. JWT Token: eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+
|
|
17
|
+
* 5. Authorization Header: Authorization:\s*\S+
|
|
18
|
+
* 6. Cookie: Cookie:\s*.+
|
|
19
|
+
* 7. Set-Cookie: Set-Cookie:\s*.+
|
|
20
|
+
*
|
|
21
|
+
* Priority 3 - Credentials:
|
|
22
|
+
* 8. JSON Credential: "(?:apiKey|password|secret|token)":\s*"[^"]+"
|
|
23
|
+
* 9. Environment Credential: [A-Z_]+(?:PASSWORD|SECRET|KEY|TOKEN)=[^\s]+
|
|
24
|
+
* 10. Bearer Token: Bearer\s+[A-Za-z0-9._-]+
|
|
25
|
+
*
|
|
26
|
+
* Priority 4 - Generic Secrets:
|
|
27
|
+
* 11. Generic Secret: (?:password|secret|token)\s*[=:]\s*["']?[^\s"']+
|
|
28
|
+
*/
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.MASKING_PATTERNS = void 0;
|
|
31
|
+
exports.maskSensitiveData = maskSensitiveData;
|
|
32
|
+
exports.containsSensitiveData = containsSensitiveData;
|
|
33
|
+
exports.maskSensitiveObject = maskSensitiveObject;
|
|
34
|
+
exports.getApiKeyStatus = getApiKeyStatus;
|
|
35
|
+
exports.checkApiKeyForProvider = checkApiKeyForProvider;
|
|
36
|
+
exports.getPatternsByPriority = getPatternsByPriority;
|
|
37
|
+
/**
|
|
38
|
+
* Masking patterns ordered by priority (higher priority first)
|
|
39
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 25 Section 3
|
|
40
|
+
*/
|
|
41
|
+
const MASKING_PATTERNS = [
|
|
42
|
+
// Priority 1 - Critical Secrets
|
|
43
|
+
{
|
|
44
|
+
name: 'OpenAI API Key',
|
|
45
|
+
regex: /sk-[A-Za-z0-9]{20,}/g,
|
|
46
|
+
mask: '[MASKED:OPENAI_KEY]',
|
|
47
|
+
priority: 1,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Anthropic API Key',
|
|
51
|
+
regex: /sk-ant-[A-Za-z0-9-]{20,}/g,
|
|
52
|
+
mask: '[MASKED:ANTHROPIC_KEY]',
|
|
53
|
+
priority: 1,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'Private Key',
|
|
57
|
+
regex: /-----BEGIN[^-]*PRIVATE KEY-----[\s\S]*?-----END[^-]*PRIVATE KEY-----/g,
|
|
58
|
+
mask: '[MASKED:PRIVATE_KEY]',
|
|
59
|
+
priority: 1,
|
|
60
|
+
},
|
|
61
|
+
// Priority 2 - Tokens and Auth Headers
|
|
62
|
+
{
|
|
63
|
+
name: 'JWT Token',
|
|
64
|
+
regex: /eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,
|
|
65
|
+
mask: '[MASKED:JWT]',
|
|
66
|
+
priority: 2,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Authorization Header',
|
|
70
|
+
regex: /Authorization:\s*(Basic|Digest|Bearer)?\s*[A-Za-z0-9+/=_.-]+/gi,
|
|
71
|
+
mask: 'Authorization: [MASKED:AUTH_HEADER]',
|
|
72
|
+
priority: 2,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'Cookie',
|
|
76
|
+
regex: /Cookie:\s*[^\n\r]+/gi,
|
|
77
|
+
mask: 'Cookie: [MASKED:COOKIE]',
|
|
78
|
+
priority: 2,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'Set-Cookie',
|
|
82
|
+
regex: /Set-Cookie:\s*[^\n\r]+/gi,
|
|
83
|
+
mask: 'Set-Cookie: [MASKED:SET_COOKIE]',
|
|
84
|
+
priority: 2,
|
|
85
|
+
},
|
|
86
|
+
// Priority 3 - Credentials
|
|
87
|
+
{
|
|
88
|
+
name: 'JSON Credential',
|
|
89
|
+
regex: /"(?:apiKey|password|secret|token|api_key|auth_token|access_token|refresh_token)":\s*"[^"]+"/gi,
|
|
90
|
+
mask: '"[key]": "[MASKED:JSON_CREDENTIAL]"',
|
|
91
|
+
priority: 3,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Environment Credential',
|
|
95
|
+
regex: /[A-Z_]*(?:PASSWORD|SECRET|KEY|TOKEN|CREDENTIAL)[A-Z_]*=[^\s\n]+/gi,
|
|
96
|
+
mask: '[MASKED:ENV_CREDENTIAL]',
|
|
97
|
+
priority: 3,
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'Bearer Token',
|
|
101
|
+
regex: /Bearer\s+[A-Za-z0-9._-]+/g,
|
|
102
|
+
mask: '[MASKED:BEARER_TOKEN]',
|
|
103
|
+
priority: 3,
|
|
104
|
+
},
|
|
105
|
+
// Priority 4 - Generic Secrets
|
|
106
|
+
{
|
|
107
|
+
name: 'Generic Secret',
|
|
108
|
+
regex: /(?:\b(?:password|secret|token|api_key|apikey|credential)[_\w]*|\bauth_[_\w]*)\s*[=:]\s*["']?[^\s"'\n,}]+["']?/gi,
|
|
109
|
+
mask: '[MASKED:GENERIC_SECRET]',
|
|
110
|
+
priority: 4,
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
exports.MASKING_PATTERNS = MASKING_PATTERNS;
|
|
114
|
+
/**
|
|
115
|
+
* Mask sensitive data in a string
|
|
116
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 4.3
|
|
117
|
+
*
|
|
118
|
+
* Patterns are applied in priority order (1 first, then 2, etc.)
|
|
119
|
+
*
|
|
120
|
+
* @param content - Content to mask
|
|
121
|
+
* @returns Masked content
|
|
122
|
+
*/
|
|
123
|
+
function maskSensitiveData(content) {
|
|
124
|
+
if (!content || typeof content !== 'string') {
|
|
125
|
+
return content;
|
|
126
|
+
}
|
|
127
|
+
let masked = content;
|
|
128
|
+
try {
|
|
129
|
+
// Sort patterns by priority and apply in order
|
|
130
|
+
const sortedPatterns = [...MASKING_PATTERNS].sort((a, b) => a.priority - b.priority);
|
|
131
|
+
for (const pattern of sortedPatterns) {
|
|
132
|
+
// Reset regex lastIndex for global patterns
|
|
133
|
+
pattern.regex.lastIndex = 0;
|
|
134
|
+
masked = masked.replace(pattern.regex, pattern.mask);
|
|
135
|
+
}
|
|
136
|
+
return masked;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 4.4:
|
|
140
|
+
// On masking error, return a safe placeholder
|
|
141
|
+
return '[MASKING_ERROR]';
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Check if content contains sensitive data
|
|
146
|
+
*
|
|
147
|
+
* @param content - Content to check
|
|
148
|
+
* @returns true if sensitive data is detected
|
|
149
|
+
*/
|
|
150
|
+
function containsSensitiveData(content) {
|
|
151
|
+
if (!content || typeof content !== 'string') {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
for (const pattern of MASKING_PATTERNS) {
|
|
155
|
+
pattern.regex.lastIndex = 0;
|
|
156
|
+
if (pattern.regex.test(content)) {
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Mask sensitive data in an object (recursive)
|
|
164
|
+
*
|
|
165
|
+
* @param obj - Object to mask
|
|
166
|
+
* @returns Masked object
|
|
167
|
+
*/
|
|
168
|
+
function maskSensitiveObject(obj) {
|
|
169
|
+
if (obj === null || obj === undefined) {
|
|
170
|
+
return obj;
|
|
171
|
+
}
|
|
172
|
+
if (typeof obj === 'string') {
|
|
173
|
+
return maskSensitiveData(obj);
|
|
174
|
+
}
|
|
175
|
+
if (Array.isArray(obj)) {
|
|
176
|
+
return obj.map(item => maskSensitiveObject(item));
|
|
177
|
+
}
|
|
178
|
+
if (typeof obj === 'object') {
|
|
179
|
+
const result = {};
|
|
180
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
181
|
+
result[key] = maskSensitiveObject(value);
|
|
182
|
+
}
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
return obj;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get API key status (SET/NOT SET) without revealing the value
|
|
189
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 24
|
|
190
|
+
*
|
|
191
|
+
* @param envVar - Environment variable name
|
|
192
|
+
* @returns 'SET' or 'NOT SET'
|
|
193
|
+
*/
|
|
194
|
+
function getApiKeyStatus(envVar) {
|
|
195
|
+
const value = process.env[envVar];
|
|
196
|
+
return (value && value.trim() !== '') ? 'SET' : 'NOT SET';
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Check API key availability for a provider
|
|
200
|
+
*
|
|
201
|
+
* @param provider - Provider identifier
|
|
202
|
+
* @returns Object with status and env variable name
|
|
203
|
+
*/
|
|
204
|
+
function checkApiKeyForProvider(provider) {
|
|
205
|
+
const keyMapping = {
|
|
206
|
+
'claude-code': null,
|
|
207
|
+
'openai': 'OPENAI_API_KEY',
|
|
208
|
+
'anthropic': 'ANTHROPIC_API_KEY',
|
|
209
|
+
};
|
|
210
|
+
const envVar = keyMapping[provider];
|
|
211
|
+
if (envVar === null || envVar === undefined) {
|
|
212
|
+
return { required: false, envVar: null, status: 'NOT_REQUIRED' };
|
|
213
|
+
}
|
|
214
|
+
return {
|
|
215
|
+
required: true,
|
|
216
|
+
envVar,
|
|
217
|
+
status: getApiKeyStatus(envVar),
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Get list of pattern names by priority
|
|
222
|
+
*/
|
|
223
|
+
function getPatternsByPriority(priority) {
|
|
224
|
+
return MASKING_PATTERNS
|
|
225
|
+
.filter(p => p.priority === priority)
|
|
226
|
+
.map(p => p.name);
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=sensitive-data-masker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensitive-data-masker.js","sourceRoot":"","sources":["../../src/logging/sensitive-data-masker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Log Manager
|
|
3
|
+
*
|
|
4
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md:
|
|
5
|
+
* - Logs stored in .claude/logs/sessions/<session_id>/
|
|
6
|
+
* - Two-layer viewing (list and detail)
|
|
7
|
+
* - Visibility control (summary/full)
|
|
8
|
+
* - Thread/Run/Task hierarchy support (v2.0)
|
|
9
|
+
*/
|
|
10
|
+
import { TaskLog, TaskLogIndex, TaskLogEntry, LogEvent, LogEventType, LogEventContent, VisibilityLevel, Thread, Run, RunTrigger, RunStatus, ThreadType, SessionMetadata } from '../models/repl/task-log';
|
|
11
|
+
import type { BlockedReason, TerminatedBy } from '../models/enums';
|
|
12
|
+
/**
|
|
13
|
+
* Options for completing a task
|
|
14
|
+
* Per spec 10_REPL_UX.md Section 10: Executor blocking fields (Property 34-36)
|
|
15
|
+
*/
|
|
16
|
+
export interface CompleteTaskOptions {
|
|
17
|
+
filesModified?: string[];
|
|
18
|
+
evidenceRef?: string;
|
|
19
|
+
errorMessage?: string;
|
|
20
|
+
/** Executor blocked in non-interactive mode */
|
|
21
|
+
executorBlocked?: boolean;
|
|
22
|
+
/** Blocking reason */
|
|
23
|
+
blockedReason?: BlockedReason;
|
|
24
|
+
/** Time until blocking was detected (ms) */
|
|
25
|
+
timeoutMs?: number;
|
|
26
|
+
/** How the executor was terminated */
|
|
27
|
+
terminatedBy?: TerminatedBy;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Log directory structure
|
|
31
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 1.1
|
|
32
|
+
*/
|
|
33
|
+
declare const LOG_DIR = "logs";
|
|
34
|
+
declare const SESSIONS_DIR = "sessions";
|
|
35
|
+
declare const TASKS_DIR = "tasks";
|
|
36
|
+
declare const RAW_DIR = "raw";
|
|
37
|
+
declare const INDEX_FILE = "index.json";
|
|
38
|
+
declare const SESSION_FILE = "session.json";
|
|
39
|
+
/**
|
|
40
|
+
* Task Log Manager class
|
|
41
|
+
* Supports Thread/Run/Task hierarchy (v2.0)
|
|
42
|
+
*/
|
|
43
|
+
export declare class TaskLogManager {
|
|
44
|
+
private readonly projectPath;
|
|
45
|
+
private readonly logsPath;
|
|
46
|
+
private threadCounters;
|
|
47
|
+
private runCounters;
|
|
48
|
+
private taskCounters;
|
|
49
|
+
constructor(projectPath: string);
|
|
50
|
+
/**
|
|
51
|
+
* Get session directory path
|
|
52
|
+
*/
|
|
53
|
+
private getSessionPath;
|
|
54
|
+
/**
|
|
55
|
+
* Get session tasks directory path
|
|
56
|
+
*/
|
|
57
|
+
private getSessionTasksPath;
|
|
58
|
+
/**
|
|
59
|
+
* Ensure log directories exist (legacy support)
|
|
60
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 1.3
|
|
61
|
+
*/
|
|
62
|
+
ensureLogDirectories(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Ensure session-based directories exist
|
|
65
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 1.1
|
|
66
|
+
*/
|
|
67
|
+
ensureSessionDirectories(sessionId: string): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Initialize a new session
|
|
70
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 1.2
|
|
71
|
+
*/
|
|
72
|
+
initializeSession(sessionId: string): Promise<SessionMetadata>;
|
|
73
|
+
/**
|
|
74
|
+
* Update global index with new session
|
|
75
|
+
*/
|
|
76
|
+
private updateGlobalIndex;
|
|
77
|
+
/**
|
|
78
|
+
* Get session metadata
|
|
79
|
+
*/
|
|
80
|
+
getSessionMetadata(sessionId: string): Promise<SessionMetadata>;
|
|
81
|
+
/**
|
|
82
|
+
* Save session metadata
|
|
83
|
+
*/
|
|
84
|
+
private saveSessionMetadata;
|
|
85
|
+
/**
|
|
86
|
+
* Get session index
|
|
87
|
+
*/
|
|
88
|
+
getSessionIndex(sessionId: string): Promise<TaskLogIndex>;
|
|
89
|
+
/**
|
|
90
|
+
* Save session index
|
|
91
|
+
*/
|
|
92
|
+
private saveSessionIndex;
|
|
93
|
+
/**
|
|
94
|
+
* Generate next thread ID for session
|
|
95
|
+
*/
|
|
96
|
+
private generateThreadId;
|
|
97
|
+
/**
|
|
98
|
+
* Generate next run ID for session
|
|
99
|
+
*/
|
|
100
|
+
private generateRunId;
|
|
101
|
+
/**
|
|
102
|
+
* Generate next task ID for session
|
|
103
|
+
*/
|
|
104
|
+
private generateTaskId;
|
|
105
|
+
/**
|
|
106
|
+
* Create a new thread
|
|
107
|
+
* Per spec 05_DATA_MODELS.md Section "Thread"
|
|
108
|
+
*/
|
|
109
|
+
createThread(sessionId: string, threadType: ThreadType, description?: string): Promise<Thread>;
|
|
110
|
+
/**
|
|
111
|
+
* Create a new run
|
|
112
|
+
* Per spec 05_DATA_MODELS.md Section "Run"
|
|
113
|
+
*/
|
|
114
|
+
createRun(sessionId: string, threadId: string, trigger: RunTrigger): Promise<Run>;
|
|
115
|
+
/**
|
|
116
|
+
* Get a run by ID
|
|
117
|
+
*/
|
|
118
|
+
getRun(sessionId: string, runId: string): Promise<Run | null>;
|
|
119
|
+
/**
|
|
120
|
+
* Complete a run
|
|
121
|
+
*/
|
|
122
|
+
completeRun(sessionId: string, runId: string, status: RunStatus): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Complete a task with session context
|
|
125
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 26: Fail-Closed Logging
|
|
126
|
+
* TaskLog MUST be saved for ALL terminal states (COMPLETE, INCOMPLETE, ERROR)
|
|
127
|
+
* Per spec 10_REPL_UX.md Section 10: Records executor blocking info (Property 34-36)
|
|
128
|
+
*/
|
|
129
|
+
completeTaskWithSession(taskId: string, sessionId: string, status: 'COMPLETE' | 'INCOMPLETE' | 'ERROR', filesModified?: string[], evidenceRef?: string, errorMessage?: string, options?: CompleteTaskOptions): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Create a task with thread/run context
|
|
132
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 2.3
|
|
133
|
+
*/
|
|
134
|
+
createTaskWithContext(sessionId: string, threadId: string, runId: string, parentTaskId?: string): Promise<TaskLog>;
|
|
135
|
+
/**
|
|
136
|
+
* Increment task count in global index
|
|
137
|
+
*/
|
|
138
|
+
private incrementGlobalTaskCount;
|
|
139
|
+
/**
|
|
140
|
+
* Get task log with session context
|
|
141
|
+
*/
|
|
142
|
+
getTaskLogWithSession(taskId: string, sessionId: string): Promise<TaskLog | null>;
|
|
143
|
+
/**
|
|
144
|
+
* Save task log with session context
|
|
145
|
+
*/
|
|
146
|
+
private saveTaskLogWithSession;
|
|
147
|
+
/**
|
|
148
|
+
* Add event to task log with session context
|
|
149
|
+
*/
|
|
150
|
+
addEventWithSession(taskId: string, sessionId: string, eventType: LogEventType, content: LogEventContent, metadata?: Record<string, unknown>): Promise<LogEvent>;
|
|
151
|
+
/**
|
|
152
|
+
* Get task detail with session context
|
|
153
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 2.2
|
|
154
|
+
*/
|
|
155
|
+
getTaskDetailWithSession(taskId: string, sessionId: string, visibility?: VisibilityLevel): Promise<{
|
|
156
|
+
log: TaskLog | null;
|
|
157
|
+
events: LogEvent[];
|
|
158
|
+
}>;
|
|
159
|
+
/**
|
|
160
|
+
* Format tree view of session hierarchy
|
|
161
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 2.5
|
|
162
|
+
*/
|
|
163
|
+
formatTreeView(sessionId: string): Promise<string>;
|
|
164
|
+
/**
|
|
165
|
+
* Get or create log index (legacy)
|
|
166
|
+
*/
|
|
167
|
+
getOrCreateIndex(sessionId: string): Promise<TaskLogIndex>;
|
|
168
|
+
/**
|
|
169
|
+
* Save log index (legacy)
|
|
170
|
+
*/
|
|
171
|
+
saveIndex(index: TaskLogIndex): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Create a new task log (legacy - without thread/run context)
|
|
174
|
+
*/
|
|
175
|
+
createTask(taskId: string, sessionId: string): Promise<TaskLog>;
|
|
176
|
+
/**
|
|
177
|
+
* Get task log by ID (legacy)
|
|
178
|
+
*/
|
|
179
|
+
getTaskLog(taskId: string): Promise<TaskLog | null>;
|
|
180
|
+
/**
|
|
181
|
+
* Save task log (legacy)
|
|
182
|
+
*/
|
|
183
|
+
saveTaskLog(log: TaskLog): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Add event to task log (legacy)
|
|
186
|
+
*/
|
|
187
|
+
addEvent(taskId: string, eventType: LogEventType, content: LogEventContent, metadata?: Record<string, unknown>): Promise<LogEvent>;
|
|
188
|
+
/**
|
|
189
|
+
* Complete a task (legacy)
|
|
190
|
+
*/
|
|
191
|
+
completeTask(taskId: string, status: 'COMPLETE' | 'INCOMPLETE' | 'ERROR', filesModified?: string[], evidenceRef?: string, errorMessage?: string): Promise<void>;
|
|
192
|
+
/**
|
|
193
|
+
* Get task list for display (Layer 1) (legacy)
|
|
194
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 2.1
|
|
195
|
+
*/
|
|
196
|
+
getTaskList(sessionId: string): Promise<TaskLogEntry[]>;
|
|
197
|
+
/**
|
|
198
|
+
* Get task detail for display (Layer 2) (legacy)
|
|
199
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md Section 2.2
|
|
200
|
+
*/
|
|
201
|
+
getTaskDetail(taskId: string, visibility?: VisibilityLevel): Promise<{
|
|
202
|
+
log: TaskLog | null;
|
|
203
|
+
events: LogEvent[];
|
|
204
|
+
}>;
|
|
205
|
+
/**
|
|
206
|
+
* Format task list for REPL display (legacy)
|
|
207
|
+
*/
|
|
208
|
+
formatTaskList(entries: TaskLogEntry[], sessionId: string): string;
|
|
209
|
+
/**
|
|
210
|
+
* Format task detail for REPL display (legacy)
|
|
211
|
+
*/
|
|
212
|
+
formatTaskDetail(taskId: string, log: TaskLog, events: LogEvent[], isFull: boolean): string;
|
|
213
|
+
}
|
|
214
|
+
export { LOG_DIR, INDEX_FILE, TASKS_DIR, RAW_DIR, SESSIONS_DIR, SESSION_FILE };
|
|
215
|
+
//# sourceMappingURL=task-log-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-log-manager.d.ts","sourceRoot":"","sources":["../../src/logging/task-log-manager.ts"],"names":[],"mappings":"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"}
|