openplanr 0.4.0 → 0.6.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/dist/agents/agent-factory.d.ts +1 -1
- package/dist/agents/agent-factory.d.ts.map +1 -1
- package/dist/agents/claude-agent.d.ts +8 -3
- package/dist/agents/claude-agent.d.ts.map +1 -1
- package/dist/agents/claude-agent.js +150 -19
- package/dist/agents/claude-agent.js.map +1 -1
- package/dist/agents/codex-agent.d.ts +7 -3
- package/dist/agents/codex-agent.d.ts.map +1 -1
- package/dist/agents/codex-agent.js +96 -19
- package/dist/agents/codex-agent.js.map +1 -1
- package/dist/agents/cursor-agent.d.ts +3 -2
- package/dist/agents/cursor-agent.d.ts.map +1 -1
- package/dist/agents/cursor-agent.js +21 -12
- package/dist/agents/cursor-agent.js.map +1 -1
- package/dist/agents/implementation-bridge.d.ts +9 -0
- package/dist/agents/implementation-bridge.d.ts.map +1 -1
- package/dist/agents/implementation-bridge.js +90 -28
- package/dist/agents/implementation-bridge.js.map +1 -1
- package/dist/agents/index.d.ts +4 -3
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +3 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/progress.d.ts +62 -0
- package/dist/agents/progress.d.ts.map +1 -0
- package/dist/agents/progress.js +155 -0
- package/dist/agents/progress.js.map +1 -0
- package/dist/agents/prompt-composer.js +2 -2
- package/dist/agents/prompt-composer.js.map +1 -1
- package/dist/agents/task-parser.js +1 -1
- package/dist/agents/task-parser.js.map +1 -1
- package/dist/agents/types.d.ts +2 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/utils.d.ts +4 -0
- package/dist/agents/utils.d.ts.map +1 -1
- package/dist/agents/utils.js +23 -0
- package/dist/agents/utils.js.map +1 -1
- package/dist/ai/codebase/context-builder.d.ts.map +1 -1
- package/dist/ai/codebase/context-builder.js +3 -3
- package/dist/ai/codebase/context-builder.js.map +1 -1
- package/dist/ai/codebase/file-reader.d.ts.map +1 -1
- package/dist/ai/codebase/file-reader.js +39 -10
- package/dist/ai/codebase/file-reader.js.map +1 -1
- package/dist/ai/codebase/index.d.ts +2 -2
- package/dist/ai/codebase/index.d.ts.map +1 -1
- package/dist/ai/codebase/index.js +2 -2
- package/dist/ai/codebase/index.js.map +1 -1
- package/dist/ai/codebase/stack-detector.d.ts.map +1 -1
- package/dist/ai/codebase/stack-detector.js +42 -19
- package/dist/ai/codebase/stack-detector.js.map +1 -1
- package/dist/ai/codebase/tree-generator.d.ts.map +1 -1
- package/dist/ai/codebase/tree-generator.js +3 -7
- package/dist/ai/codebase/tree-generator.js.map +1 -1
- package/dist/ai/errors.d.ts.map +1 -1
- package/dist/ai/errors.js.map +1 -1
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +1 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/prompts/prompt-builder.d.ts.map +1 -1
- package/dist/ai/prompts/prompt-builder.js +1 -1
- package/dist/ai/prompts/prompt-builder.js.map +1 -1
- package/dist/ai/provider-factory.d.ts.map +1 -1
- package/dist/ai/provider-factory.js.map +1 -1
- package/dist/ai/providers/anthropic-provider.d.ts +1 -1
- package/dist/ai/providers/anthropic-provider.d.ts.map +1 -1
- package/dist/ai/providers/anthropic-provider.js +6 -4
- package/dist/ai/providers/anthropic-provider.js.map +1 -1
- package/dist/ai/providers/openai-provider.d.ts +1 -1
- package/dist/ai/providers/openai-provider.d.ts.map +1 -1
- package/dist/ai/providers/openai-provider.js +10 -2
- package/dist/ai/providers/openai-provider.js.map +1 -1
- package/dist/ai/schemas/ai-response-schemas.d.ts.map +1 -1
- package/dist/ai/schemas/ai-response-schemas.js +7 -1
- package/dist/ai/schemas/ai-response-schemas.js.map +1 -1
- package/dist/ai/types.d.ts +18 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/ai/types.js +19 -0
- package/dist/ai/types.js.map +1 -1
- package/dist/cli/commands/checklist.d.ts +1 -1
- package/dist/cli/commands/checklist.d.ts.map +1 -1
- package/dist/cli/commands/checklist.js +2 -2
- package/dist/cli/commands/checklist.js.map +1 -1
- package/dist/cli/commands/config.d.ts +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/config.js +15 -8
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/epic.d.ts +1 -1
- package/dist/cli/commands/epic.d.ts.map +1 -1
- package/dist/cli/commands/epic.js +13 -10
- package/dist/cli/commands/epic.js.map +1 -1
- package/dist/cli/commands/feature.d.ts +1 -1
- package/dist/cli/commands/feature.d.ts.map +1 -1
- package/dist/cli/commands/feature.js +9 -6
- package/dist/cli/commands/feature.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +8 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/plan.d.ts +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js +26 -14
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/refine.d.ts +1 -1
- package/dist/cli/commands/refine.d.ts.map +1 -1
- package/dist/cli/commands/refine.js +10 -9
- package/dist/cli/commands/refine.js.map +1 -1
- package/dist/cli/commands/rules.d.ts +1 -1
- package/dist/cli/commands/rules.d.ts.map +1 -1
- package/dist/cli/commands/rules.js +3 -3
- package/dist/cli/commands/rules.js.map +1 -1
- package/dist/cli/commands/status.d.ts +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +5 -5
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/story.d.ts +1 -1
- package/dist/cli/commands/story.d.ts.map +1 -1
- package/dist/cli/commands/story.js +10 -7
- package/dist/cli/commands/story.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +1 -1
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +3 -3
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/task.d.ts +1 -1
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +63 -9
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/index.js +7 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/generators/base-generator.d.ts +1 -1
- package/dist/generators/base-generator.d.ts.map +1 -1
- package/dist/generators/base-generator.js.map +1 -1
- package/dist/generators/claude-generator.d.ts +2 -2
- package/dist/generators/claude-generator.d.ts.map +1 -1
- package/dist/generators/claude-generator.js +3 -3
- package/dist/generators/claude-generator.js.map +1 -1
- package/dist/generators/codex-generator.d.ts +2 -2
- package/dist/generators/codex-generator.d.ts.map +1 -1
- package/dist/generators/codex-generator.js +2 -2
- package/dist/generators/codex-generator.js.map +1 -1
- package/dist/generators/cursor-generator.d.ts +1 -1
- package/dist/generators/cursor-generator.d.ts.map +1 -1
- package/dist/generators/cursor-generator.js +1 -1
- package/dist/generators/cursor-generator.js.map +1 -1
- package/dist/generators/generator-factory.d.ts +1 -1
- package/dist/generators/generator-factory.d.ts.map +1 -1
- package/dist/generators/generator-factory.js +1 -1
- package/dist/generators/generator-factory.js.map +1 -1
- package/dist/services/ai-service.d.ts +8 -8
- package/dist/services/ai-service.d.ts.map +1 -1
- package/dist/services/ai-service.js +89 -60
- package/dist/services/ai-service.js.map +1 -1
- package/dist/services/artifact-gathering.d.ts.map +1 -1
- package/dist/services/artifact-gathering.js +3 -3
- package/dist/services/artifact-gathering.js.map +1 -1
- package/dist/services/artifact-service.d.ts +1 -1
- package/dist/services/artifact-service.d.ts.map +1 -1
- package/dist/services/artifact-service.js +3 -3
- package/dist/services/artifact-service.js.map +1 -1
- package/dist/services/checklist-service.d.ts.map +1 -1
- package/dist/services/checklist-service.js.map +1 -1
- package/dist/services/config-service.d.ts.map +1 -1
- package/dist/services/config-service.js +2 -2
- package/dist/services/config-service.js.map +1 -1
- package/dist/services/credential-backends.d.ts +41 -0
- package/dist/services/credential-backends.d.ts.map +1 -0
- package/dist/services/credential-backends.js +208 -0
- package/dist/services/credential-backends.js.map +1 -0
- package/dist/services/credentials-service.d.ts +38 -14
- package/dist/services/credentials-service.d.ts.map +1 -1
- package/dist/services/credentials-service.js +132 -42
- package/dist/services/credentials-service.js.map +1 -1
- package/dist/services/id-service.d.ts.map +1 -1
- package/dist/services/id-service.js.map +1 -1
- package/dist/services/prompt-service.js +1 -1
- package/dist/services/prompt-service.js.map +1 -1
- package/dist/services/template-service.js +1 -1
- package/dist/services/template-service.js.map +1 -1
- package/dist/utils/error-context.d.ts +23 -0
- package/dist/utils/error-context.d.ts.map +1 -0
- package/dist/utils/error-context.js +94 -0
- package/dist/utils/error-context.js.map +1 -0
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +7 -3
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- package/package.json +7 -2
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error context extraction and multi-line input utilities.
|
|
3
|
+
*
|
|
4
|
+
* Used by `planr task fix` to intelligently truncate verbose build/test
|
|
5
|
+
* output down to the error-relevant portion before sending to an AI agent.
|
|
6
|
+
*/
|
|
7
|
+
/** Maximum lines to send to the agent from piped input */
|
|
8
|
+
const MAX_ERROR_LINES = 150;
|
|
9
|
+
/** Context lines to keep before the first error marker */
|
|
10
|
+
const CONTEXT_BEFORE = 20;
|
|
11
|
+
/** Patterns that indicate the start of an error section */
|
|
12
|
+
const ERROR_MARKERS = [
|
|
13
|
+
/^error/i,
|
|
14
|
+
/^FAIL/i,
|
|
15
|
+
/=> ERROR/,
|
|
16
|
+
/^\s*[✗✘]/,
|
|
17
|
+
/^fatal:/i,
|
|
18
|
+
/^panic:/,
|
|
19
|
+
/Traceback/,
|
|
20
|
+
/^npm ERR!/,
|
|
21
|
+
/^SyntaxError/,
|
|
22
|
+
/^TypeError/,
|
|
23
|
+
/^ReferenceError/,
|
|
24
|
+
/Could not/i,
|
|
25
|
+
/No matching/i,
|
|
26
|
+
/exit code: \d+/,
|
|
27
|
+
/did not complete successfully/,
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Extract only the error-relevant portion from verbose build output.
|
|
31
|
+
*
|
|
32
|
+
* - Input ≤ 150 lines → returned as-is
|
|
33
|
+
* - Error marker found → keeps 20 lines of context before it + up to 130 after
|
|
34
|
+
* - No marker found → keeps the last 150 lines (tail)
|
|
35
|
+
*/
|
|
36
|
+
export function extractErrorContext(raw) {
|
|
37
|
+
const lines = raw.split('\n');
|
|
38
|
+
if (lines.length <= MAX_ERROR_LINES)
|
|
39
|
+
return raw;
|
|
40
|
+
const firstErrorIdx = lines.findIndex((line) => ERROR_MARKERS.some((re) => re.test(line)));
|
|
41
|
+
if (firstErrorIdx === -1) {
|
|
42
|
+
const tail = lines.slice(-MAX_ERROR_LINES);
|
|
43
|
+
return `... (${lines.length - MAX_ERROR_LINES} lines trimmed)\n${tail.join('\n')}`;
|
|
44
|
+
}
|
|
45
|
+
const start = Math.max(0, firstErrorIdx - CONTEXT_BEFORE);
|
|
46
|
+
const extracted = lines.slice(start, start + MAX_ERROR_LINES);
|
|
47
|
+
const parts = [];
|
|
48
|
+
if (start > 0) {
|
|
49
|
+
parts.push(`... (${start} lines trimmed)`);
|
|
50
|
+
}
|
|
51
|
+
parts.push(extracted.join('\n'));
|
|
52
|
+
if (start + MAX_ERROR_LINES < lines.length) {
|
|
53
|
+
parts.push(`... (${lines.length - start - MAX_ERROR_LINES} lines trimmed)`);
|
|
54
|
+
}
|
|
55
|
+
return parts.join('\n');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Read multi-line input from the terminal.
|
|
59
|
+
*
|
|
60
|
+
* The user types or pastes text and submits by pressing Enter on an
|
|
61
|
+
* empty line (double Enter). Large pastes are automatically truncated
|
|
62
|
+
* to the error-relevant portion.
|
|
63
|
+
*/
|
|
64
|
+
export async function readMultilineInput() {
|
|
65
|
+
const { createInterface } = await import('node:readline');
|
|
66
|
+
return new Promise((resolve) => {
|
|
67
|
+
const rl = createInterface({
|
|
68
|
+
input: process.stdin,
|
|
69
|
+
output: process.stdout,
|
|
70
|
+
prompt: '',
|
|
71
|
+
});
|
|
72
|
+
const lines = [];
|
|
73
|
+
let consecutiveEmpty = 0;
|
|
74
|
+
rl.on('line', (line) => {
|
|
75
|
+
if (line.trim() === '') {
|
|
76
|
+
consecutiveEmpty++;
|
|
77
|
+
if (consecutiveEmpty >= 2) {
|
|
78
|
+
rl.close();
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
lines.push(line);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
consecutiveEmpty = 0;
|
|
85
|
+
lines.push(line);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
rl.on('close', () => {
|
|
89
|
+
const raw = lines.join('\n').trim();
|
|
90
|
+
resolve(raw.split('\n').length > MAX_ERROR_LINES ? extractErrorContext(raw) : raw);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=error-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-context.js","sourceRoot":"","sources":["../../src/utils/error-context.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/fs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AASA,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEhE;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAInE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWpF"}
|
package/dist/utils/fs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { access, readFile as fsReadFile, writeFile as fsWriteFile, mkdir, readdir, } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
export async function ensureDir(dirPath) {
|
|
4
4
|
await mkdir(dirPath, { recursive: true });
|
|
@@ -11,10 +11,14 @@ export async function readFile(filePath) {
|
|
|
11
11
|
return fsReadFile(filePath, 'utf-8');
|
|
12
12
|
}
|
|
13
13
|
export async function fileExists(filePath) {
|
|
14
|
-
return access(filePath)
|
|
14
|
+
return access(filePath)
|
|
15
|
+
.then(() => true)
|
|
16
|
+
.catch(() => false);
|
|
15
17
|
}
|
|
16
18
|
export async function listFiles(dirPath, pattern) {
|
|
17
|
-
const exists = await access(dirPath)
|
|
19
|
+
const exists = await access(dirPath)
|
|
20
|
+
.then(() => true)
|
|
21
|
+
.catch(() => false);
|
|
18
22
|
if (!exists)
|
|
19
23
|
return [];
|
|
20
24
|
const entries = await readdir(dirPath);
|
package/dist/utils/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,QAAQ,IAAI,UAAU,EACtB,SAAS,IAAI,WAAW,EACxB,KAAK,EACL,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,OAAO,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC;SACpB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,OAAgB;IAC/D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;SACjC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -23,11 +23,11 @@ export function createSpinner(message) {
|
|
|
23
23
|
},
|
|
24
24
|
stop() {
|
|
25
25
|
clearInterval(interval);
|
|
26
|
-
process.stdout.write(
|
|
26
|
+
process.stdout.write(`\r${' '.repeat(currentMsg.length + 4)}\r`);
|
|
27
27
|
},
|
|
28
28
|
succeed(msg) {
|
|
29
29
|
clearInterval(interval);
|
|
30
|
-
process.stdout.write(
|
|
30
|
+
process.stdout.write(`\r${' '.repeat(currentMsg.length + 4)}\r`);
|
|
31
31
|
console.log(chalk.green('✓'), msg);
|
|
32
32
|
},
|
|
33
33
|
};
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAQ1E,6EAA6E;AAC7E,MAAM,UAAU,WAAW,CAAC,KAAsB;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,OAAO,CAAC;IAEzB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,UAAU,EAAE,CAAC,CAAC;QACjD,UAAU,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,EAAE,CAAC;IACR,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAExC,OAAO;QACL,MAAM,CAAC,GAAW;YAChB,UAAU,GAAG,GAAG,CAAC;QACnB,CAAC;QACD,IAAI;YACF,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openplanr",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "CLI tool for agile planning with AI agents — generates epics, features, stories, tasks, and AI rule files for Cursor, Claude Code, and Codex",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cli/index.js",
|
|
@@ -21,7 +21,10 @@
|
|
|
21
21
|
"test": "vitest run",
|
|
22
22
|
"test:watch": "vitest",
|
|
23
23
|
"test:coverage": "vitest run --coverage",
|
|
24
|
-
"lint": "
|
|
24
|
+
"lint": "biome check src/ tests/",
|
|
25
|
+
"lint:fix": "biome check --write src/ tests/",
|
|
26
|
+
"format": "biome format --write src/ tests/",
|
|
27
|
+
"format:check": "biome format src/ tests/",
|
|
25
28
|
"prepare": "husky",
|
|
26
29
|
"prepublishOnly": "npm run build"
|
|
27
30
|
},
|
|
@@ -53,6 +56,7 @@
|
|
|
53
56
|
"dependencies": {
|
|
54
57
|
"@anthropic-ai/sdk": "^0.80.0",
|
|
55
58
|
"@inquirer/prompts": "^8.3.2",
|
|
59
|
+
"@napi-rs/keyring": "^1.2.0",
|
|
56
60
|
"chalk": "^5.3.0",
|
|
57
61
|
"commander": "^14.0.3",
|
|
58
62
|
"gray-matter": "^4.0.3",
|
|
@@ -61,6 +65,7 @@
|
|
|
61
65
|
"zod": "^4.3.6"
|
|
62
66
|
},
|
|
63
67
|
"devDependencies": {
|
|
68
|
+
"@biomejs/biome": "^2.4.9",
|
|
64
69
|
"@types/node": "^25.5.0",
|
|
65
70
|
"@vitest/coverage-v8": "^4.1.2",
|
|
66
71
|
"husky": "^9.1.7",
|