openplanr 0.3.0 → 0.5.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.
Files changed (80) hide show
  1. package/dist/agents/cursor-agent.d.ts.map +1 -1
  2. package/dist/agents/cursor-agent.js +2 -2
  3. package/dist/agents/cursor-agent.js.map +1 -1
  4. package/dist/agents/implementation-bridge.d.ts.map +1 -1
  5. package/dist/agents/implementation-bridge.js +6 -8
  6. package/dist/agents/implementation-bridge.js.map +1 -1
  7. package/dist/ai/codebase/file-reader.js +7 -7
  8. package/dist/ai/codebase/file-reader.js.map +1 -1
  9. package/dist/ai/codebase/tree-generator.js +4 -4
  10. package/dist/ai/codebase/tree-generator.js.map +1 -1
  11. package/dist/ai/prompts/prompt-builder.d.ts +4 -1
  12. package/dist/ai/prompts/prompt-builder.d.ts.map +1 -1
  13. package/dist/ai/prompts/prompt-builder.js +6 -2
  14. package/dist/ai/prompts/prompt-builder.js.map +1 -1
  15. package/dist/ai/prompts/system-prompts.d.ts +1 -1
  16. package/dist/ai/prompts/system-prompts.d.ts.map +1 -1
  17. package/dist/ai/prompts/system-prompts.js +8 -2
  18. package/dist/ai/prompts/system-prompts.js.map +1 -1
  19. package/dist/ai/providers/anthropic-provider.d.ts +3 -1
  20. package/dist/ai/providers/anthropic-provider.d.ts.map +1 -1
  21. package/dist/ai/providers/anthropic-provider.js +18 -2
  22. package/dist/ai/providers/anthropic-provider.js.map +1 -1
  23. package/dist/ai/providers/openai-provider.d.ts +3 -1
  24. package/dist/ai/providers/openai-provider.d.ts.map +1 -1
  25. package/dist/ai/providers/openai-provider.js +28 -2
  26. package/dist/ai/providers/openai-provider.js.map +1 -1
  27. package/dist/ai/schemas/ai-response-schemas.d.ts +28 -328
  28. package/dist/ai/schemas/ai-response-schemas.d.ts.map +1 -1
  29. package/dist/ai/schemas/ai-response-schemas.js +1 -1
  30. package/dist/ai/schemas/ai-response-schemas.js.map +1 -1
  31. package/dist/ai/types.d.ts +28 -0
  32. package/dist/ai/types.d.ts.map +1 -1
  33. package/dist/ai/types.js +19 -0
  34. package/dist/ai/types.js.map +1 -1
  35. package/dist/cli/commands/config.d.ts.map +1 -1
  36. package/dist/cli/commands/config.js +14 -7
  37. package/dist/cli/commands/config.js.map +1 -1
  38. package/dist/cli/commands/epic.d.ts.map +1 -1
  39. package/dist/cli/commands/epic.js +3 -2
  40. package/dist/cli/commands/epic.js.map +1 -1
  41. package/dist/cli/commands/feature.d.ts.map +1 -1
  42. package/dist/cli/commands/feature.js +2 -1
  43. package/dist/cli/commands/feature.js.map +1 -1
  44. package/dist/cli/commands/init.d.ts.map +1 -1
  45. package/dist/cli/commands/init.js +3 -2
  46. package/dist/cli/commands/init.js.map +1 -1
  47. package/dist/cli/commands/plan.d.ts.map +1 -1
  48. package/dist/cli/commands/plan.js +5 -4
  49. package/dist/cli/commands/plan.js.map +1 -1
  50. package/dist/cli/commands/refine.d.ts +1 -0
  51. package/dist/cli/commands/refine.d.ts.map +1 -1
  52. package/dist/cli/commands/refine.js +140 -54
  53. package/dist/cli/commands/refine.js.map +1 -1
  54. package/dist/cli/commands/story.d.ts.map +1 -1
  55. package/dist/cli/commands/story.js +2 -1
  56. package/dist/cli/commands/story.js.map +1 -1
  57. package/dist/cli/commands/task.d.ts.map +1 -1
  58. package/dist/cli/commands/task.js +3 -2
  59. package/dist/cli/commands/task.js.map +1 -1
  60. package/dist/models/schema.d.ts +39 -95
  61. package/dist/models/schema.d.ts.map +1 -1
  62. package/dist/services/ai-service.d.ts +12 -5
  63. package/dist/services/ai-service.d.ts.map +1 -1
  64. package/dist/services/ai-service.js +86 -51
  65. package/dist/services/ai-service.js.map +1 -1
  66. package/dist/services/credential-backends.d.ts +41 -0
  67. package/dist/services/credential-backends.d.ts.map +1 -0
  68. package/dist/services/credential-backends.js +208 -0
  69. package/dist/services/credential-backends.js.map +1 -0
  70. package/dist/services/credentials-service.d.ts +38 -14
  71. package/dist/services/credentials-service.d.ts.map +1 -1
  72. package/dist/services/credentials-service.js +132 -39
  73. package/dist/services/credentials-service.js.map +1 -1
  74. package/dist/utils/fs.js +8 -8
  75. package/dist/utils/fs.js.map +1 -1
  76. package/dist/utils/logger.d.ts +9 -0
  77. package/dist/utils/logger.d.ts.map +1 -1
  78. package/dist/utils/logger.js +32 -0
  79. package/dist/utils/logger.js.map +1 -1
  80. package/package.json +10 -12
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/task.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA6HnD"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/task.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA6HnD"}
@@ -13,6 +13,7 @@ import { isAIConfigured, getAIProvider, generateStreamingJSON } from '../../serv
13
13
  import { promptText, promptMultiText, promptConfirm } from '../../services/prompt-service.js';
14
14
  import { buildTasksPrompt } from '../../ai/prompts/prompt-builder.js';
15
15
  import { aiTasksResponseSchema } from '../../ai/schemas/ai-response-schemas.js';
16
+ import { TOKEN_BUDGETS } from '../../ai/types.js';
16
17
  import { gatherStoryArtifacts, gatherFeatureArtifacts } from '../../services/artifact-gathering.js';
17
18
  import { logger } from '../../utils/logger.js';
18
19
  import chalk from 'chalk';
@@ -228,7 +229,7 @@ async function createTasksWithAI(projectDir, config, storyId) {
228
229
  ctx.scope = { type: 'story', id: storyId };
229
230
  const messages = buildTasksPrompt(ctx);
230
231
  logger.debug(`Task prompt: ${messages.length} messages, user content ${messages[1]?.content.length ?? 0} chars`);
231
- const result = await generateStreamingJSON(provider, messages, aiTasksResponseSchema);
232
+ const { result } = await generateStreamingJSON(provider, messages, aiTasksResponseSchema, { maxTokens: TOKEN_BUDGETS.task });
232
233
  displayTaskPreview(result);
233
234
  const total = result.tasks.reduce((sum, t) => sum + (t.subtasks || []).length + 1, 0);
234
235
  const confirmCreate = await promptConfirm(`Create task list with ${total} items?`, true);
@@ -314,7 +315,7 @@ async function createTasksFromFeature(projectDir, config, featureId) {
314
315
  ctx.scope = { type: 'feature', id: featureId };
315
316
  const messages = buildTasksPrompt(ctx);
316
317
  logger.debug(`Task prompt: ${messages.length} messages, user content ${messages[1]?.content.length ?? 0} chars`);
317
- const result = await generateStreamingJSON(provider, messages, aiTasksResponseSchema);
318
+ const { result } = await generateStreamingJSON(provider, messages, aiTasksResponseSchema, { maxTokens: TOKEN_BUDGETS.taskFeature });
318
319
  displayTaskPreview(result);
319
320
  const total = result.tasks.reduce((sum, t) => sum + (t.subtasks || []).length + 1, 0);
320
321
  const confirmCreate = await promptConfirm(`Create task list with ${total} items?`, true);
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/cli/commands/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/cli/commands/task.ts"],"names":[],"mappings":"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"}
@@ -1,120 +1,64 @@
1
1
  import { z } from 'zod';
2
- export declare const targetCLISchema: z.ZodEnum<["cursor", "claude", "codex"]>;
3
- export declare const aiProviderSchema: z.ZodEnum<["anthropic", "openai", "ollama"]>;
4
- export declare const codingAgentSchema: z.ZodEnum<["claude", "cursor", "codex"]>;
2
+ export declare const targetCLISchema: z.ZodEnum<{
3
+ cursor: "cursor";
4
+ claude: "claude";
5
+ codex: "codex";
6
+ }>;
7
+ export declare const aiProviderSchema: z.ZodEnum<{
8
+ anthropic: "anthropic";
9
+ openai: "openai";
10
+ ollama: "ollama";
11
+ }>;
12
+ export declare const codingAgentSchema: z.ZodEnum<{
13
+ cursor: "cursor";
14
+ claude: "claude";
15
+ codex: "codex";
16
+ }>;
5
17
  export declare const aiConfigSchema: z.ZodObject<{
6
- provider: z.ZodEnum<["anthropic", "openai", "ollama"]>;
18
+ provider: z.ZodEnum<{
19
+ anthropic: "anthropic";
20
+ openai: "openai";
21
+ ollama: "ollama";
22
+ }>;
7
23
  model: z.ZodOptional<z.ZodString>;
8
24
  ollamaBaseUrl: z.ZodOptional<z.ZodString>;
9
- }, "strip", z.ZodTypeAny, {
10
- provider: "anthropic" | "openai" | "ollama";
11
- model?: string | undefined;
12
- ollamaBaseUrl?: string | undefined;
13
- }, {
14
- provider: "anthropic" | "openai" | "ollama";
15
- model?: string | undefined;
16
- ollamaBaseUrl?: string | undefined;
17
- }>;
25
+ }, z.core.$strip>;
18
26
  export declare const configSchema: z.ZodObject<{
19
27
  projectName: z.ZodString;
20
- targets: z.ZodArray<z.ZodEnum<["cursor", "claude", "codex"]>, "many">;
28
+ targets: z.ZodArray<z.ZodEnum<{
29
+ cursor: "cursor";
30
+ claude: "claude";
31
+ codex: "codex";
32
+ }>>;
21
33
  outputPaths: z.ZodObject<{
22
34
  agile: z.ZodDefault<z.ZodString>;
23
35
  cursorRules: z.ZodDefault<z.ZodString>;
24
36
  claudeConfig: z.ZodDefault<z.ZodString>;
25
37
  codexConfig: z.ZodDefault<z.ZodString>;
26
- }, "strip", z.ZodTypeAny, {
27
- agile: string;
28
- cursorRules: string;
29
- claudeConfig: string;
30
- codexConfig: string;
31
- }, {
32
- agile?: string | undefined;
33
- cursorRules?: string | undefined;
34
- claudeConfig?: string | undefined;
35
- codexConfig?: string | undefined;
36
- }>;
38
+ }, z.core.$strip>;
37
39
  idPrefix: z.ZodObject<{
38
40
  epic: z.ZodDefault<z.ZodString>;
39
41
  feature: z.ZodDefault<z.ZodString>;
40
42
  story: z.ZodDefault<z.ZodString>;
41
43
  task: z.ZodDefault<z.ZodString>;
42
- }, "strip", z.ZodTypeAny, {
43
- epic: string;
44
- feature: string;
45
- story: string;
46
- task: string;
47
- }, {
48
- epic?: string | undefined;
49
- feature?: string | undefined;
50
- story?: string | undefined;
51
- task?: string | undefined;
52
- }>;
44
+ }, z.core.$strip>;
53
45
  ai: z.ZodOptional<z.ZodObject<{
54
- provider: z.ZodEnum<["anthropic", "openai", "ollama"]>;
46
+ provider: z.ZodEnum<{
47
+ anthropic: "anthropic";
48
+ openai: "openai";
49
+ ollama: "ollama";
50
+ }>;
55
51
  model: z.ZodOptional<z.ZodString>;
56
52
  ollamaBaseUrl: z.ZodOptional<z.ZodString>;
57
- }, "strip", z.ZodTypeAny, {
58
- provider: "anthropic" | "openai" | "ollama";
59
- model?: string | undefined;
60
- ollamaBaseUrl?: string | undefined;
61
- }, {
62
- provider: "anthropic" | "openai" | "ollama";
63
- model?: string | undefined;
64
- ollamaBaseUrl?: string | undefined;
53
+ }, z.core.$strip>>;
54
+ defaultAgent: z.ZodOptional<z.ZodEnum<{
55
+ cursor: "cursor";
56
+ claude: "claude";
57
+ codex: "codex";
65
58
  }>>;
66
- defaultAgent: z.ZodOptional<z.ZodEnum<["claude", "cursor", "codex"]>>;
67
59
  templateOverrides: z.ZodOptional<z.ZodString>;
68
60
  author: z.ZodOptional<z.ZodString>;
69
61
  createdAt: z.ZodString;
70
- }, "strip", z.ZodTypeAny, {
71
- projectName: string;
72
- targets: ("cursor" | "claude" | "codex")[];
73
- outputPaths: {
74
- agile: string;
75
- cursorRules: string;
76
- claudeConfig: string;
77
- codexConfig: string;
78
- };
79
- idPrefix: {
80
- epic: string;
81
- feature: string;
82
- story: string;
83
- task: string;
84
- };
85
- createdAt: string;
86
- ai?: {
87
- provider: "anthropic" | "openai" | "ollama";
88
- model?: string | undefined;
89
- ollamaBaseUrl?: string | undefined;
90
- } | undefined;
91
- defaultAgent?: "cursor" | "claude" | "codex" | undefined;
92
- templateOverrides?: string | undefined;
93
- author?: string | undefined;
94
- }, {
95
- projectName: string;
96
- targets: ("cursor" | "claude" | "codex")[];
97
- outputPaths: {
98
- agile?: string | undefined;
99
- cursorRules?: string | undefined;
100
- claudeConfig?: string | undefined;
101
- codexConfig?: string | undefined;
102
- };
103
- idPrefix: {
104
- epic?: string | undefined;
105
- feature?: string | undefined;
106
- story?: string | undefined;
107
- task?: string | undefined;
108
- };
109
- createdAt: string;
110
- ai?: {
111
- provider: "anthropic" | "openai" | "ollama";
112
- model?: string | undefined;
113
- ollamaBaseUrl?: string | undefined;
114
- } | undefined;
115
- defaultAgent?: "cursor" | "claude" | "codex" | undefined;
116
- templateOverrides?: string | undefined;
117
- author?: string | undefined;
118
- }>;
62
+ }, z.core.$strip>;
119
63
  export type ValidatedConfig = z.infer<typeof configSchema>;
120
64
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/models/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,0CAAwC,CAAC;AACrE,eAAO,MAAM,gBAAgB,8CAA4C,CAAC;AAC1E,eAAO,MAAM,iBAAiB,0CAAwC,CAAC;AAEvE,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBvB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/models/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;EAAwC,CAAC;AACrE,eAAO,MAAM,gBAAgB;;;;EAA4C,CAAC;AAC1E,eAAO,MAAM,iBAAiB;;;;EAAwC,CAAC;AAEvE,eAAO,MAAM,cAAc;;;;;;;;iBAIzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBvB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * JSON generation with Zod validation and retry logic.
7
7
  */
8
8
  import type { ZodSchema } from 'zod';
9
- import type { AIProvider, AIMessage, AIRequestOptions } from '../ai/types.js';
9
+ import type { AIProvider, AIMessage, AIRequestOptions, AIUsage } from '../ai/types.js';
10
10
  import type { OpenPlanrConfig } from '../models/types.js';
11
11
  /**
12
12
  * Initialize an AI provider from project config.
@@ -22,8 +22,13 @@ export declare function isAIConfigured(config: OpenPlanrConfig): boolean;
22
22
  * Returns the fully accumulated text once streaming completes.
23
23
  */
24
24
  export declare function streamToTerminal(stream: AsyncIterable<string>): Promise<string>;
25
+ /** Result from AI generation including the parsed data and optional token usage. */
26
+ export interface AIGenerateResult<T> {
27
+ result: T;
28
+ usage?: AIUsage;
29
+ }
25
30
  /**
26
- * Generate a validated JSON response from the AI.
31
+ * Generate a validated JSON response from the AI (non-streaming).
27
32
  *
28
33
  * Flow:
29
34
  * 1. Send messages with JSON mode hint
@@ -31,10 +36,12 @@ export declare function streamToTerminal(stream: AsyncIterable<string>): Promise
31
36
  * 3. Validate with Zod schema
32
37
  * 4. On failure, retry once with error feedback
33
38
  */
34
- export declare function generateJSON<T>(provider: AIProvider, messages: AIMessage[], schema: ZodSchema<T>, options?: AIRequestOptions): Promise<T>;
39
+ export declare function generateJSON<T>(provider: AIProvider, messages: AIMessage[], schema: ZodSchema<T>, options?: AIRequestOptions): Promise<AIGenerateResult<T>>;
35
40
  /**
36
- * Generate JSON with streaming — shows progress dots in the terminal
41
+ * Generate JSON with streaming — shows progress spinner in the terminal
37
42
  * while the AI generates, then parses the complete response.
38
43
  */
39
- export declare function generateStreamingJSON<T>(provider: AIProvider, messages: AIMessage[], schema: ZodSchema<T>, options?: AIRequestOptions): Promise<T>;
44
+ export declare function generateStreamingJSON<T>(provider: AIProvider, messages: AIMessage[], schema: ZodSchema<T>, options?: AIRequestOptions): Promise<AIGenerateResult<T>>;
45
+ /** Accumulate token usage from a provider call into a running total. */
46
+ export declare function accumulateUsage(total: AIUsage, usage?: AIUsage): void;
40
47
  //# sourceMappingURL=ai-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../src/services/ai-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBhF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,SAAS,EAAE,EACrB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC,CA+BZ;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,SAAS,EAAE,EACrB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC,CA8CZ"}
1
+ {"version":3,"file":"ai-service.d.ts","sourceRoot":"","sources":["../../src/services/ai-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAoB,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBhF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,oFAAoF;AACpF,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyFD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,SAAS,EAAE,EACrB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAU9B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,SAAS,EAAE,EACrB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAe9B;AAcD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAKrE"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { AIError } from '../ai/errors.js';
9
9
  import { resolveApiKey } from './credentials-service.js';
10
+ import { createSpinner, formatUsage } from '../utils/logger.js';
10
11
  /**
11
12
  * Initialize an AI provider from project config.
12
13
  * Dynamically imports the factory to keep non-AI commands fast.
@@ -45,8 +46,73 @@ export async function streamToTerminal(stream) {
45
46
  process.stdout.write('\n');
46
47
  return chunks.join('');
47
48
  }
49
+ // ---------------------------------------------------------------------------
50
+ // Shared helpers
51
+ // ---------------------------------------------------------------------------
52
+ /** Throw a descriptive error when the AI response was truncated. */
53
+ function throwTruncationError(usage, maxTokens, isRetry = false) {
54
+ const prefix = isRetry ? 'AI retry response' : 'AI response';
55
+ const limit = maxTokens != null ? maxTokens.toLocaleString() : 'default';
56
+ throw new AIError(`${prefix} was truncated at ${usage.outputTokens.toLocaleString()} output tokens (hit max_tokens limit of ${limit}). Try reducing the input scope or increasing the token budget.`, 'invalid_response');
57
+ }
58
+ /** Check usage for truncation; throw if truncated. */
59
+ function checkTruncation(usage, maxTokens, isRetry = false) {
60
+ if (usage?.truncated) {
61
+ throwTruncationError(usage, maxTokens, isRetry);
62
+ }
63
+ }
48
64
  /**
49
- * Generate a validated JSON response from the AI.
65
+ * Core generation logic shared by generateJSON and generateStreamingJSON.
66
+ *
67
+ * Accepts a `fetchResponse` callback that performs the initial AI call
68
+ * (sync or streaming), then handles validation, retry, truncation, and spinner.
69
+ */
70
+ async function generateCore(provider, messages, schema, requestOptions, fetchResponse) {
71
+ let totalUsage = { inputTokens: 0, outputTokens: 0 };
72
+ const spinner = createSpinner('Generating...');
73
+ try {
74
+ // --- First attempt ---
75
+ let rawResponse = await fetchResponse();
76
+ let lastUsage = provider.getLastUsage();
77
+ accumulateUsage(totalUsage, lastUsage);
78
+ checkTruncation(lastUsage, requestOptions.maxTokens);
79
+ const parsed = tryParseAndValidate(rawResponse, schema);
80
+ if (parsed.success) {
81
+ spinner.succeed(`Done${formatUsage(totalUsage)}`);
82
+ return { result: parsed.data, usage: totalUsage };
83
+ }
84
+ // --- Retry once with error feedback ---
85
+ spinner.update('Retrying...');
86
+ const retryMessages = [
87
+ ...messages,
88
+ { role: 'assistant', content: rawResponse },
89
+ {
90
+ role: 'user',
91
+ content: `Your response was not valid JSON or failed validation:\n${parsed.error}\n\nPlease fix and return valid JSON only.`,
92
+ },
93
+ ];
94
+ rawResponse = await provider.chatSync(retryMessages, requestOptions);
95
+ lastUsage = provider.getLastUsage();
96
+ accumulateUsage(totalUsage, lastUsage);
97
+ checkTruncation(lastUsage, requestOptions.maxTokens, true);
98
+ const retryParsed = tryParseAndValidate(rawResponse, schema);
99
+ if (retryParsed.success) {
100
+ spinner.succeed(`Done${formatUsage(totalUsage)}`);
101
+ return { result: retryParsed.data, usage: totalUsage };
102
+ }
103
+ spinner.stop();
104
+ throw new AIError(`AI returned invalid JSON after retry: ${retryParsed.error}`, 'invalid_response');
105
+ }
106
+ catch (err) {
107
+ spinner.stop();
108
+ throw err;
109
+ }
110
+ }
111
+ // ---------------------------------------------------------------------------
112
+ // Public generation functions
113
+ // ---------------------------------------------------------------------------
114
+ /**
115
+ * Generate a validated JSON response from the AI (non-streaming).
50
116
  *
51
117
  * Flow:
52
118
  * 1. Send messages with JSON mode hint
@@ -60,27 +126,10 @@ export async function generateJSON(provider, messages, schema, options) {
60
126
  ...options,
61
127
  jsonMode: true,
62
128
  };
63
- let rawResponse = await provider.chatSync(messages, requestOptions);
64
- let parsed = tryParseAndValidate(rawResponse, schema);
65
- if (parsed.success)
66
- return parsed.data;
67
- // Retry once with error feedback
68
- const retryMessages = [
69
- ...messages,
70
- { role: 'assistant', content: rawResponse },
71
- {
72
- role: 'user',
73
- content: `Your response was not valid JSON or failed validation:\n${parsed.error}\n\nPlease fix and return valid JSON only.`,
74
- },
75
- ];
76
- rawResponse = await provider.chatSync(retryMessages, requestOptions);
77
- parsed = tryParseAndValidate(rawResponse, schema);
78
- if (parsed.success)
79
- return parsed.data;
80
- throw new AIError(`AI returned invalid JSON after retry: ${parsed.error}`, 'invalid_response');
129
+ return generateCore(provider, messages, schema, requestOptions, () => provider.chatSync(messages, requestOptions));
81
130
  }
82
131
  /**
83
- * Generate JSON with streaming — shows progress dots in the terminal
132
+ * Generate JSON with streaming — shows progress spinner in the terminal
84
133
  * while the AI generates, then parses the complete response.
85
134
  */
86
135
  export async function generateStreamingJSON(provider, messages, schema, options) {
@@ -89,39 +138,18 @@ export async function generateStreamingJSON(provider, messages, schema, options)
89
138
  ...options,
90
139
  jsonMode: true,
91
140
  };
92
- // Stream the response, showing dots for progress
93
- const chunks = [];
94
- let dotCount = 0;
95
- const stream = provider.chat(messages, requestOptions);
96
- for await (const chunk of stream) {
97
- chunks.push(chunk);
98
- // Show a dot every ~200 chars of content
99
- if (chunks.join('').length > (dotCount + 1) * 200) {
100
- process.stdout.write('.');
101
- dotCount++;
141
+ return generateCore(provider, messages, schema, requestOptions, async () => {
142
+ const chunks = [];
143
+ const stream = provider.chat(messages, requestOptions);
144
+ for await (const chunk of stream) {
145
+ chunks.push(chunk);
102
146
  }
103
- }
104
- if (dotCount > 0)
105
- process.stdout.write('\n');
106
- const rawResponse = chunks.join('');
107
- let parsed = tryParseAndValidate(rawResponse, schema);
108
- if (parsed.success)
109
- return parsed.data;
110
- // Retry once with error feedback (non-streaming for retry)
111
- const retryMessages = [
112
- ...messages,
113
- { role: 'assistant', content: rawResponse },
114
- {
115
- role: 'user',
116
- content: `Your response was not valid JSON or failed validation:\n${parsed.error}\n\nPlease fix and return valid JSON only.`,
117
- },
118
- ];
119
- const retryResponse = await provider.chatSync(retryMessages, requestOptions);
120
- parsed = tryParseAndValidate(retryResponse, schema);
121
- if (parsed.success)
122
- return parsed.data;
123
- throw new AIError(`AI returned invalid JSON after retry: ${parsed.error}`, 'invalid_response');
147
+ return chunks.join('');
148
+ });
124
149
  }
150
+ // ---------------------------------------------------------------------------
151
+ // Internal utilities
152
+ // ---------------------------------------------------------------------------
125
153
  /** Extract JSON from a response that might contain markdown code fences. */
126
154
  function extractJSON(raw) {
127
155
  // Strip markdown code fences if present
@@ -130,6 +158,13 @@ function extractJSON(raw) {
130
158
  return fenceMatch[1].trim();
131
159
  return raw.trim();
132
160
  }
161
+ /** Accumulate token usage from a provider call into a running total. */
162
+ export function accumulateUsage(total, usage) {
163
+ if (usage) {
164
+ total.inputTokens += usage.inputTokens;
165
+ total.outputTokens += usage.outputTokens;
166
+ }
167
+ }
133
168
  function tryParseAndValidate(raw, schema) {
134
169
  try {
135
170
  const cleaned = extractJSON(raw);
@@ -1 +1 @@
1
- {"version":3,"file":"ai-service.js","sourceRoot":"","sources":["../../src/services/ai-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-service.js","sourceRoot":"","sources":["../../src/services/ai-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Credential storage backends.
3
+ *
4
+ * Three backends in order of preference:
5
+ * 1. OS Keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service)
6
+ * 2. Encrypted file (~/.planr/credentials.enc) using AES-256-GCM
7
+ * 3. Legacy plaintext file (~/.planr/credentials.json) — read-only, for migration
8
+ */
9
+ export type CredentialSource = 'env' | 'keychain' | 'encrypted-file';
10
+ export interface CredentialBackend {
11
+ readonly name: CredentialSource;
12
+ get(provider: string): Promise<string | undefined>;
13
+ set(provider: string, value: string): Promise<void>;
14
+ delete(provider: string): Promise<boolean>;
15
+ isAvailable(): Promise<boolean>;
16
+ }
17
+ export declare class KeychainBackend implements CredentialBackend {
18
+ readonly name: "keychain";
19
+ isAvailable(): Promise<boolean>;
20
+ get(provider: string): Promise<string | undefined>;
21
+ set(provider: string, value: string): Promise<void>;
22
+ delete(provider: string): Promise<boolean>;
23
+ }
24
+ export declare class EncryptedFileBackend implements CredentialBackend {
25
+ readonly name: "encrypted-file";
26
+ isAvailable(): Promise<boolean>;
27
+ private loadAll;
28
+ private saveAll;
29
+ get(provider: string): Promise<string | undefined>;
30
+ set(provider: string, value: string): Promise<void>;
31
+ delete(provider: string): Promise<boolean>;
32
+ }
33
+ export declare class LegacyPlaintextBackend {
34
+ exists(): Promise<boolean>;
35
+ loadAll(): Promise<Record<string, string>>;
36
+ remove(): Promise<void>;
37
+ }
38
+ export declare const keychainBackend: KeychainBackend;
39
+ export declare const encryptedFileBackend: EncryptedFileBackend;
40
+ export declare const legacyBackend: LegacyPlaintextBackend;
41
+ //# sourceMappingURL=credential-backends.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-backends.d.ts","sourceRoot":"","sources":["../../src/services/credential-backends.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC;AA0BD,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAE9B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB/B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUlD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CASjD;AA6DD,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAU;IAEpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;YAIvB,OAAO;YAwBP,OAAO;IAWf,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKlD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAOjD;AAQD,qBAAa,sBAAsB;IAC3B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAI1B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAW1C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAO9B;AAMD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AACrD,eAAO,MAAM,oBAAoB,sBAA6B,CAAC;AAC/D,eAAO,MAAM,aAAa,wBAA+B,CAAC"}