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,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* /init Command Handler
|
|
4
|
+
* Creates .claude/ scaffold in target project
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.InitCommand = void 0;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
/**
|
|
44
|
+
* Default CLAUDE.md template
|
|
45
|
+
*/
|
|
46
|
+
const DEFAULT_CLAUDE_MD = `# Project Configuration
|
|
47
|
+
|
|
48
|
+
This project uses PM Orchestrator for AI-assisted development.
|
|
49
|
+
|
|
50
|
+
## Project Overview
|
|
51
|
+
|
|
52
|
+
[Add your project description here]
|
|
53
|
+
|
|
54
|
+
## Development Guidelines
|
|
55
|
+
|
|
56
|
+
- Follow the established coding standards
|
|
57
|
+
- Write tests for new functionality
|
|
58
|
+
- Document significant changes
|
|
59
|
+
|
|
60
|
+
## Task Categories
|
|
61
|
+
|
|
62
|
+
- READ_INFO: Information gathering, code analysis
|
|
63
|
+
- LIGHT_EDIT: Small changes, bug fixes
|
|
64
|
+
- IMPLEMENTATION: New features, significant changes
|
|
65
|
+
- REVIEW_RESPONSE: Code review responses
|
|
66
|
+
- CONFIG_CI_CHANGE: Configuration and CI/CD changes
|
|
67
|
+
- DANGEROUS_OP: Destructive operations requiring confirmation
|
|
68
|
+
`;
|
|
69
|
+
/**
|
|
70
|
+
* Default settings.json template
|
|
71
|
+
*/
|
|
72
|
+
const DEFAULT_SETTINGS = {
|
|
73
|
+
project: {
|
|
74
|
+
name: '',
|
|
75
|
+
version: '1.0.0',
|
|
76
|
+
},
|
|
77
|
+
pm: {
|
|
78
|
+
autoStart: false,
|
|
79
|
+
defaultModel: 'claude-sonnet-4-20250514',
|
|
80
|
+
},
|
|
81
|
+
executor: {
|
|
82
|
+
maxRetries: 3,
|
|
83
|
+
timeoutMs: 300000,
|
|
84
|
+
checkIntervalMs: 5000,
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Default pm-orchestrator agent template
|
|
89
|
+
*/
|
|
90
|
+
const DEFAULT_PM_ORCHESTRATOR_AGENT = `# PM Orchestrator Agent
|
|
91
|
+
|
|
92
|
+
This agent orchestrates task execution across sub-agents.
|
|
93
|
+
|
|
94
|
+
## Responsibilities
|
|
95
|
+
|
|
96
|
+
- Task type classification
|
|
97
|
+
- Sub-agent coordination
|
|
98
|
+
- Result aggregation
|
|
99
|
+
|
|
100
|
+
## Task Types
|
|
101
|
+
|
|
102
|
+
| Type | Description |
|
|
103
|
+
|------|-------------|
|
|
104
|
+
| READ_INFO | Read-only operations |
|
|
105
|
+
| LIGHT_EDIT | Minor edits |
|
|
106
|
+
| IMPLEMENTATION | Feature implementation |
|
|
107
|
+
| REVIEW_RESPONSE | PR review responses |
|
|
108
|
+
| CONFIG_CI_CHANGE | Config changes |
|
|
109
|
+
| DANGEROUS_OP | Destructive operations |
|
|
110
|
+
`;
|
|
111
|
+
/**
|
|
112
|
+
* Default rules template
|
|
113
|
+
*/
|
|
114
|
+
const DEFAULT_RULES = `# Project Rules
|
|
115
|
+
|
|
116
|
+
## Code Quality
|
|
117
|
+
|
|
118
|
+
- All code must pass linting
|
|
119
|
+
- Test coverage required for new features
|
|
120
|
+
- Type safety is mandatory
|
|
121
|
+
|
|
122
|
+
## Git Workflow
|
|
123
|
+
|
|
124
|
+
- Feature branches required
|
|
125
|
+
- PR review before merge
|
|
126
|
+
- Descriptive commit messages
|
|
127
|
+
`;
|
|
128
|
+
/**
|
|
129
|
+
* Init command handler
|
|
130
|
+
*/
|
|
131
|
+
class InitCommand {
|
|
132
|
+
/**
|
|
133
|
+
* Execute init command
|
|
134
|
+
* Per spec 10_REPL_UX.md L96-99:
|
|
135
|
+
* - Check ALL files BEFORE creating any
|
|
136
|
+
* - If ANY exist, return ERROR with list of existing files
|
|
137
|
+
* - Only create if NONE exist
|
|
138
|
+
*/
|
|
139
|
+
async execute(targetPath) {
|
|
140
|
+
const absolutePath = path.resolve(targetPath);
|
|
141
|
+
// Verify target directory exists
|
|
142
|
+
if (!fs.existsSync(absolutePath)) {
|
|
143
|
+
return {
|
|
144
|
+
success: false,
|
|
145
|
+
message: `Directory does not exist: ${absolutePath}`,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const claudeDir = path.join(absolutePath, '.claude');
|
|
149
|
+
const agentsDir = path.join(claudeDir, 'agents');
|
|
150
|
+
const rulesDir = path.join(claudeDir, 'rules');
|
|
151
|
+
// Define all paths that will be created
|
|
152
|
+
const pathsToCreate = {
|
|
153
|
+
'.claude/': claudeDir,
|
|
154
|
+
'.claude/CLAUDE.md': path.join(claudeDir, 'CLAUDE.md'),
|
|
155
|
+
'.claude/settings.json': path.join(claudeDir, 'settings.json'),
|
|
156
|
+
'.claude/agents/': agentsDir,
|
|
157
|
+
'.claude/agents/pm-orchestrator.md': path.join(agentsDir, 'pm-orchestrator.md'),
|
|
158
|
+
'.claude/rules/': rulesDir,
|
|
159
|
+
'.claude/rules/project-rules.md': path.join(rulesDir, 'project-rules.md'),
|
|
160
|
+
};
|
|
161
|
+
// Per spec L97-98: Check ALL files BEFORE creating any
|
|
162
|
+
// If any exist, return ERROR with list
|
|
163
|
+
const existingFiles = [];
|
|
164
|
+
for (const [name, fullPath] of Object.entries(pathsToCreate)) {
|
|
165
|
+
if (fs.existsSync(fullPath)) {
|
|
166
|
+
existingFiles.push(name);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Per spec L98: "存在する場合は ERROR(どれが存在しているかを明示)として停止する"
|
|
170
|
+
if (existingFiles.length > 0) {
|
|
171
|
+
return {
|
|
172
|
+
success: false,
|
|
173
|
+
message: `Cannot initialize: files already exist: ${existingFiles.join(', ')}`,
|
|
174
|
+
existingFiles,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// Per spec L97: Only create if NONE exist
|
|
178
|
+
const createdPaths = [];
|
|
179
|
+
try {
|
|
180
|
+
// Create .claude directory
|
|
181
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
182
|
+
createdPaths.push(claudeDir);
|
|
183
|
+
// Create CLAUDE.md
|
|
184
|
+
const claudeMdPath = path.join(claudeDir, 'CLAUDE.md');
|
|
185
|
+
fs.writeFileSync(claudeMdPath, DEFAULT_CLAUDE_MD, 'utf-8');
|
|
186
|
+
createdPaths.push(claudeMdPath);
|
|
187
|
+
// Create settings.json
|
|
188
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
189
|
+
const settings = {
|
|
190
|
+
...DEFAULT_SETTINGS,
|
|
191
|
+
project: {
|
|
192
|
+
...DEFAULT_SETTINGS.project,
|
|
193
|
+
name: path.basename(absolutePath),
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
|
|
197
|
+
createdPaths.push(settingsPath);
|
|
198
|
+
// Create agents directory
|
|
199
|
+
fs.mkdirSync(agentsDir, { recursive: true });
|
|
200
|
+
createdPaths.push(agentsDir);
|
|
201
|
+
// Create pm-orchestrator.md
|
|
202
|
+
const pmOrchestratorPath = path.join(agentsDir, 'pm-orchestrator.md');
|
|
203
|
+
fs.writeFileSync(pmOrchestratorPath, DEFAULT_PM_ORCHESTRATOR_AGENT, 'utf-8');
|
|
204
|
+
createdPaths.push(pmOrchestratorPath);
|
|
205
|
+
// Create rules directory
|
|
206
|
+
fs.mkdirSync(rulesDir, { recursive: true });
|
|
207
|
+
createdPaths.push(rulesDir);
|
|
208
|
+
// Create default rules
|
|
209
|
+
const rulesPath = path.join(rulesDir, 'project-rules.md');
|
|
210
|
+
fs.writeFileSync(rulesPath, DEFAULT_RULES, 'utf-8');
|
|
211
|
+
createdPaths.push(rulesPath);
|
|
212
|
+
return {
|
|
213
|
+
success: true,
|
|
214
|
+
message: `Initialized .claude/ with ${createdPaths.length} files/directories`,
|
|
215
|
+
createdPaths,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
catch (err) {
|
|
219
|
+
return {
|
|
220
|
+
success: false,
|
|
221
|
+
message: `Failed to initialize: ${err.message}`,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Check if a directory is already initialized
|
|
227
|
+
*/
|
|
228
|
+
isInitialized(targetPath) {
|
|
229
|
+
const claudeDir = path.join(path.resolve(targetPath), '.claude');
|
|
230
|
+
return fs.existsSync(claudeDir);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
exports.InitCommand = InitCommand;
|
|
234
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/repl/commands/init.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAY7B;;GAEG;AACH,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBzB,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE;QACP,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,OAAO;KACjB;IACD,EAAE,EAAE;QACF,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,0BAA0B;KACzC;IACD,QAAQ,EAAE;QACR,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,IAAI;KACtB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;;;;;;;;CAoBrC,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG;;;;;;;;;;;;;CAarB,CAAC;AAEF;;GAEG;AACH,MAAa,WAAW;IACtB;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE9C,iCAAiC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,6BAA6B,YAAY,EAAE;aACrD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/C,wCAAwC;QACxC,MAAM,aAAa,GAAG;YACpB,UAAU,EAAE,SAAS;YACrB,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;YACtD,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;YAC9D,iBAAiB,EAAE,SAAS;YAC5B,mCAAmC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC;YAC/E,gBAAgB,EAAE,QAAQ;YAC1B,gCAAgC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC;SAC1E,CAAC;QAEF,uDAAuD;QACvD,uCAAuC;QACvC,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,2CAA2C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9E,aAAa;aACd,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,IAAI,CAAC;YACH,2BAA2B;YAC3B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7B,mBAAmB;YACnB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACvD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC3D,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhC,uBAAuB;YACvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG;gBACf,GAAG,gBAAgB;gBACnB,OAAO,EAAE;oBACP,GAAG,gBAAgB,CAAC,OAAO;oBAC3B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;iBAClC;aACF,CAAC;YACF,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3E,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhC,0BAA0B;YAC1B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7B,4BAA4B;YAC5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YACtE,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,OAAO,CAAC,CAAC;YAC7E,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEtC,yBAAyB;YACzB,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE5B,uBAAuB;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAC1D,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACpD,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,6BAA6B,YAAY,CAAC,MAAM,oBAAoB;gBAC7E,YAAY;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,yBAA0B,GAAa,CAAC,OAAO,EAAE;aAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,UAAkB;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;CACF;AAnHD,kCAmHC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keys Command
|
|
3
|
+
*
|
|
4
|
+
* Per spec 10_REPL_UX.md Section 2.3:
|
|
5
|
+
* - /keys: show status of all API keys (SET/NOT SET)
|
|
6
|
+
* - /keys check: validate API key format
|
|
7
|
+
*
|
|
8
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 24:
|
|
9
|
+
* - API keys must NEVER appear in logs or evidence
|
|
10
|
+
* - Only "SET" or "NOT SET" status is allowed
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Key status result
|
|
14
|
+
*/
|
|
15
|
+
export interface KeyStatus {
|
|
16
|
+
provider: string;
|
|
17
|
+
envVar: string | null;
|
|
18
|
+
required: boolean;
|
|
19
|
+
status: 'SET' | 'NOT SET' | 'NOT_REQUIRED';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Keys command result
|
|
23
|
+
*/
|
|
24
|
+
export interface KeysResult {
|
|
25
|
+
success: boolean;
|
|
26
|
+
message: string;
|
|
27
|
+
keys?: KeyStatus[];
|
|
28
|
+
error?: {
|
|
29
|
+
code: string;
|
|
30
|
+
message: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Keys Command class
|
|
35
|
+
*/
|
|
36
|
+
export declare class KeysCommand {
|
|
37
|
+
/**
|
|
38
|
+
* Get status of all API keys
|
|
39
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 24:
|
|
40
|
+
* - Only show SET/NOT SET, never the actual key value
|
|
41
|
+
*
|
|
42
|
+
* @returns Keys result
|
|
43
|
+
*/
|
|
44
|
+
getKeyStatus(): Promise<KeysResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Check if a specific provider's API key is configured
|
|
47
|
+
*
|
|
48
|
+
* @param providerId - Provider ID
|
|
49
|
+
* @returns Keys result for specific provider
|
|
50
|
+
*/
|
|
51
|
+
checkProviderKey(providerId: string): Promise<KeysResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Format key status for display
|
|
54
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 24:
|
|
55
|
+
* - NEVER show actual key values
|
|
56
|
+
* - Only show SET/NOT SET status
|
|
57
|
+
*
|
|
58
|
+
* @param keys - Key status list
|
|
59
|
+
* @returns Formatted string
|
|
60
|
+
*/
|
|
61
|
+
formatKeyStatus(keys: KeyStatus[]): string;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/repl/commands/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,cAAc,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;IAsBzC;;;;;OAKG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgC/D;;;;;;;;OAQG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM;CA0B3C"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Keys Command
|
|
4
|
+
*
|
|
5
|
+
* Per spec 10_REPL_UX.md Section 2.3:
|
|
6
|
+
* - /keys: show status of all API keys (SET/NOT SET)
|
|
7
|
+
* - /keys check: validate API key format
|
|
8
|
+
*
|
|
9
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 24:
|
|
10
|
+
* - API keys must NEVER appear in logs or evidence
|
|
11
|
+
* - Only "SET" or "NOT SET" status is allowed
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.KeysCommand = void 0;
|
|
15
|
+
const sensitive_data_masker_1 = require("../../logging/sensitive-data-masker");
|
|
16
|
+
const repl_1 = require("../../models/repl");
|
|
17
|
+
const model_registry_1 = require("../../models/repl/model-registry");
|
|
18
|
+
/**
|
|
19
|
+
* Keys Command class
|
|
20
|
+
*/
|
|
21
|
+
class KeysCommand {
|
|
22
|
+
/**
|
|
23
|
+
* Get status of all API keys
|
|
24
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 24:
|
|
25
|
+
* - Only show SET/NOT SET, never the actual key value
|
|
26
|
+
*
|
|
27
|
+
* @returns Keys result
|
|
28
|
+
*/
|
|
29
|
+
async getKeyStatus() {
|
|
30
|
+
const providers = (0, model_registry_1.getAllProviders)();
|
|
31
|
+
const keys = [];
|
|
32
|
+
for (const provider of providers) {
|
|
33
|
+
const keyCheck = (0, sensitive_data_masker_1.checkApiKeyForProvider)(provider.id);
|
|
34
|
+
keys.push({
|
|
35
|
+
provider: provider.displayName,
|
|
36
|
+
envVar: keyCheck.envVar,
|
|
37
|
+
required: keyCheck.required,
|
|
38
|
+
status: keyCheck.status,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
success: true,
|
|
43
|
+
message: 'API key status',
|
|
44
|
+
keys,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if a specific provider's API key is configured
|
|
49
|
+
*
|
|
50
|
+
* @param providerId - Provider ID
|
|
51
|
+
* @returns Keys result for specific provider
|
|
52
|
+
*/
|
|
53
|
+
async checkProviderKey(providerId) {
|
|
54
|
+
// Validate provider
|
|
55
|
+
if (!repl_1.VALID_PROVIDERS.includes(providerId)) {
|
|
56
|
+
const validList = repl_1.VALID_PROVIDERS.join(', ');
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
message: 'Invalid provider',
|
|
60
|
+
error: {
|
|
61
|
+
code: 'E102',
|
|
62
|
+
message: 'Invalid provider: ' + providerId + '. Valid providers: ' + validList,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const keyCheck = (0, sensitive_data_masker_1.checkApiKeyForProvider)(providerId);
|
|
67
|
+
const providers = (0, model_registry_1.getAllProviders)();
|
|
68
|
+
const providerInfo = providers.find(p => p.id === providerId);
|
|
69
|
+
const keys = [{
|
|
70
|
+
provider: providerInfo?.displayName || providerId,
|
|
71
|
+
envVar: keyCheck.envVar,
|
|
72
|
+
required: keyCheck.required,
|
|
73
|
+
status: keyCheck.status,
|
|
74
|
+
}];
|
|
75
|
+
return {
|
|
76
|
+
success: true,
|
|
77
|
+
message: 'API key status for ' + providerId,
|
|
78
|
+
keys,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Format key status for display
|
|
83
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 24:
|
|
84
|
+
* - NEVER show actual key values
|
|
85
|
+
* - Only show SET/NOT SET status
|
|
86
|
+
*
|
|
87
|
+
* @param keys - Key status list
|
|
88
|
+
* @returns Formatted string
|
|
89
|
+
*/
|
|
90
|
+
formatKeyStatus(keys) {
|
|
91
|
+
let output = 'API Key Status:\n\n';
|
|
92
|
+
for (const key of keys) {
|
|
93
|
+
output += ' ' + key.provider + '\n';
|
|
94
|
+
if (!key.required) {
|
|
95
|
+
output += ' Status: Not required (uses Claude Code CLI)\n';
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
const statusIcon = key.status === 'SET' ? '[OK]' : '[MISSING]';
|
|
99
|
+
output += ' Status: ' + statusIcon + ' ' + key.status + '\n';
|
|
100
|
+
output += ' Env Var: ' + key.envVar + '\n';
|
|
101
|
+
}
|
|
102
|
+
output += '\n';
|
|
103
|
+
}
|
|
104
|
+
// Add help text
|
|
105
|
+
output += 'To set an API key, export the environment variable:\n';
|
|
106
|
+
output += ' export OPENAI_API_KEY=sk-...\n';
|
|
107
|
+
output += ' export ANTHROPIC_API_KEY=sk-ant-...\n';
|
|
108
|
+
output += '\n';
|
|
109
|
+
output += 'Note: API keys are NEVER displayed for security reasons.';
|
|
110
|
+
return output;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.KeysCommand = KeysCommand;
|
|
114
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/repl/commands/keys.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,+EAG6C;AAC7C,4CAA8D;AAC9D,qEAAiF;AAyBjF;;GAEG;AACH,MAAa,WAAW;IACtB;;;;;;OAMG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,SAAS,GAAG,IAAA,gCAAe,GAAE,CAAC;QACpC,MAAM,IAAI,GAAgB,EAAE,CAAC;QAE7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAA,8CAAsB,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC;gBACR,QAAQ,EAAE,QAAQ,CAAC,WAAW;gBAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gBAAgB;YACzB,IAAI;SACL,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QACvC,oBAAoB;QACpB,IAAI,CAAC,sBAAe,CAAC,QAAQ,CAAC,UAAsB,CAAC,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,sBAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,kBAAkB;gBAC3B,KAAK,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,oBAAoB,GAAG,UAAU,GAAG,qBAAqB,GAAG,SAAS;iBAC/E;aACF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,8CAAsB,EAAC,UAAU,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,gCAAe,GAAE,CAAC;QACpC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAE9D,MAAM,IAAI,GAAgB,CAAC;gBACzB,QAAQ,EAAE,YAAY,EAAE,WAAW,IAAI,UAAU;gBACjD,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,qBAAqB,GAAG,UAAU;YAC3C,IAAI;SACL,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe,CAAC,IAAiB;QAC/B,IAAI,MAAM,GAAG,qBAAqB,CAAC;QAEnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,mDAAmD,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC/D,MAAM,IAAI,cAAc,GAAG,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;gBAChE,MAAM,IAAI,eAAe,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;YAChD,CAAC;YAED,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;QAED,gBAAgB;QAChB,MAAM,IAAI,uDAAuD,CAAC;QAClE,MAAM,IAAI,kCAAkC,CAAC;QAC7C,MAAM,IAAI,yCAAyC,CAAC;QACpD,MAAM,IAAI,IAAI,CAAC;QACf,MAAM,IAAI,0DAA0D,CAAC;QAErE,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAvGD,kCAuGC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logs Command
|
|
3
|
+
*
|
|
4
|
+
* Per spec 10_REPL_UX.md Section 2.4:
|
|
5
|
+
* - /logs: list task logs for current session
|
|
6
|
+
* - /logs <task-id>: show task details (summary view)
|
|
7
|
+
* - /logs <task-id> --full: show task details (full view with executor logs)
|
|
8
|
+
*
|
|
9
|
+
* Per spec 13_LOGGING_AND_OBSERVABILITY.md:
|
|
10
|
+
* - Two-layer viewing (summary/full)
|
|
11
|
+
* - Logs stored in .claude/logs/
|
|
12
|
+
*
|
|
13
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 25:
|
|
14
|
+
* - Log visibility control (summary default, --full for details)
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Logs command result
|
|
18
|
+
*/
|
|
19
|
+
export interface LogsResult {
|
|
20
|
+
success: boolean;
|
|
21
|
+
message: string;
|
|
22
|
+
output?: string;
|
|
23
|
+
error?: {
|
|
24
|
+
code: string;
|
|
25
|
+
message: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Logs Command class
|
|
30
|
+
*/
|
|
31
|
+
export declare class LogsCommand {
|
|
32
|
+
private logManager;
|
|
33
|
+
private projectPath;
|
|
34
|
+
/**
|
|
35
|
+
* Initialize log manager with project path
|
|
36
|
+
*
|
|
37
|
+
* @param projectPath - Project path
|
|
38
|
+
*/
|
|
39
|
+
private ensureLogManager;
|
|
40
|
+
/**
|
|
41
|
+
* List task logs for a session
|
|
42
|
+
* Per spec 10_REPL_UX.md: /logs shows task list (Layer 1)
|
|
43
|
+
*
|
|
44
|
+
* @param projectPath - Project path
|
|
45
|
+
* @param sessionId - Session ID
|
|
46
|
+
* @returns Logs result
|
|
47
|
+
*/
|
|
48
|
+
listLogs(projectPath: string, sessionId: string): Promise<LogsResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Get task detail
|
|
51
|
+
* Per spec 10_REPL_UX.md: /logs <task-id> shows details (Layer 2)
|
|
52
|
+
* Per spec 06_CORRECTNESS_PROPERTIES.md Property 25: --full for executor logs
|
|
53
|
+
*
|
|
54
|
+
* @param projectPath - Project path
|
|
55
|
+
* @param taskId - Task ID
|
|
56
|
+
* @param full - Show full details (executor logs)
|
|
57
|
+
* @returns Logs result
|
|
58
|
+
*/
|
|
59
|
+
getTaskDetail(projectPath: string, taskId: string, full?: boolean): Promise<LogsResult>;
|
|
60
|
+
/**
|
|
61
|
+
* Create a new task log
|
|
62
|
+
* Called when starting a new task
|
|
63
|
+
*
|
|
64
|
+
* @param projectPath - Project path
|
|
65
|
+
* @param taskId - Task ID
|
|
66
|
+
* @param sessionId - Session ID
|
|
67
|
+
* @returns Logs result
|
|
68
|
+
*/
|
|
69
|
+
createTaskLog(projectPath: string, taskId: string, sessionId: string): Promise<LogsResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Add event to task log
|
|
72
|
+
*
|
|
73
|
+
* @param projectPath - Project path
|
|
74
|
+
* @param taskId - Task ID
|
|
75
|
+
* @param eventType - Event type
|
|
76
|
+
* @param content - Event content
|
|
77
|
+
* @returns Logs result
|
|
78
|
+
*/
|
|
79
|
+
addEvent(projectPath: string, taskId: string, eventType: string, content: Record<string, unknown>): Promise<LogsResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Complete a task log
|
|
82
|
+
*
|
|
83
|
+
* @param projectPath - Project path
|
|
84
|
+
* @param taskId - Task ID
|
|
85
|
+
* @param status - Completion status
|
|
86
|
+
* @param filesModified - List of modified files
|
|
87
|
+
* @returns Logs result
|
|
88
|
+
*/
|
|
89
|
+
completeTask(projectPath: string, taskId: string, status: 'COMPLETE' | 'INCOMPLETE' | 'ERROR', filesModified?: string[]): Promise<LogsResult>;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/repl/commands/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAAc;IAEjC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;;;OAOG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB3E;;;;;;;;;OASG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,OAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAoCpG;;;;;;;;OAQG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBhG;;;;;;;;OAQG;IACG,QAAQ,CACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC;IAyBtB;;;;;;;;OAQG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,OAAO,EAC3C,aAAa,GAAE,MAAM,EAAO,GAC3B,OAAO,CAAC,UAAU,CAAC;CAoBvB"}
|