gencode-ai 0.1.2 → 0.2.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 (180) hide show
  1. package/README.md +15 -17
  2. package/dist/agent/agent.d.ts +43 -0
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.js +107 -4
  5. package/dist/agent/agent.js.map +1 -1
  6. package/dist/agent/index.d.ts +1 -0
  7. package/dist/agent/index.d.ts.map +1 -1
  8. package/dist/agent/types.d.ts +20 -1
  9. package/dist/agent/types.d.ts.map +1 -1
  10. package/dist/checkpointing/checkpoint-manager.d.ts +87 -0
  11. package/dist/checkpointing/checkpoint-manager.d.ts.map +1 -0
  12. package/dist/checkpointing/checkpoint-manager.js +281 -0
  13. package/dist/checkpointing/checkpoint-manager.js.map +1 -0
  14. package/dist/checkpointing/index.d.ts +29 -0
  15. package/dist/checkpointing/index.d.ts.map +1 -0
  16. package/dist/checkpointing/index.js +29 -0
  17. package/dist/checkpointing/index.js.map +1 -0
  18. package/dist/checkpointing/types.d.ts +98 -0
  19. package/dist/checkpointing/types.d.ts.map +1 -0
  20. package/dist/checkpointing/types.js +7 -0
  21. package/dist/checkpointing/types.js.map +1 -0
  22. package/dist/cli/components/App.d.ts.map +1 -1
  23. package/dist/cli/components/App.js +193 -7
  24. package/dist/cli/components/App.js.map +1 -1
  25. package/dist/cli/components/CommandSuggestions.d.ts.map +1 -1
  26. package/dist/cli/components/CommandSuggestions.js +5 -0
  27. package/dist/cli/components/CommandSuggestions.js.map +1 -1
  28. package/dist/cli/components/Messages.d.ts +7 -1
  29. package/dist/cli/components/Messages.d.ts.map +1 -1
  30. package/dist/cli/components/Messages.js +28 -2
  31. package/dist/cli/components/Messages.js.map +1 -1
  32. package/dist/cli/components/ModeIndicator.d.ts +42 -0
  33. package/dist/cli/components/ModeIndicator.d.ts.map +1 -0
  34. package/dist/cli/components/ModeIndicator.js +52 -0
  35. package/dist/cli/components/ModeIndicator.js.map +1 -0
  36. package/dist/cli/components/PlanApproval.d.ts +36 -0
  37. package/dist/cli/components/PlanApproval.d.ts.map +1 -0
  38. package/dist/cli/components/PlanApproval.js +154 -0
  39. package/dist/cli/components/PlanApproval.js.map +1 -0
  40. package/dist/cli/components/QuestionPrompt.d.ts +23 -0
  41. package/dist/cli/components/QuestionPrompt.d.ts.map +1 -0
  42. package/dist/cli/components/QuestionPrompt.js +231 -0
  43. package/dist/cli/components/QuestionPrompt.js.map +1 -0
  44. package/dist/cli/components/index.d.ts +1 -0
  45. package/dist/cli/components/index.d.ts.map +1 -1
  46. package/dist/cli/components/index.js +1 -0
  47. package/dist/cli/components/index.js.map +1 -1
  48. package/dist/cli/components/theme.d.ts +9 -0
  49. package/dist/cli/components/theme.d.ts.map +1 -1
  50. package/dist/cli/components/theme.js +14 -1
  51. package/dist/cli/components/theme.js.map +1 -1
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/permissions/types.d.ts.map +1 -1
  57. package/dist/permissions/types.js +2 -0
  58. package/dist/permissions/types.js.map +1 -1
  59. package/dist/planning/index.d.ts +13 -0
  60. package/dist/planning/index.d.ts.map +1 -0
  61. package/dist/planning/index.js +15 -0
  62. package/dist/planning/index.js.map +1 -0
  63. package/dist/planning/plan-file.d.ts +59 -0
  64. package/dist/planning/plan-file.d.ts.map +1 -0
  65. package/dist/planning/plan-file.js +278 -0
  66. package/dist/planning/plan-file.js.map +1 -0
  67. package/dist/planning/state.d.ts +127 -0
  68. package/dist/planning/state.d.ts.map +1 -0
  69. package/dist/planning/state.js +261 -0
  70. package/dist/planning/state.js.map +1 -0
  71. package/dist/planning/tools/enter-plan-mode.d.ts +25 -0
  72. package/dist/planning/tools/enter-plan-mode.d.ts.map +1 -0
  73. package/dist/planning/tools/enter-plan-mode.js +98 -0
  74. package/dist/planning/tools/enter-plan-mode.js.map +1 -0
  75. package/dist/planning/tools/exit-plan-mode.d.ts +24 -0
  76. package/dist/planning/tools/exit-plan-mode.d.ts.map +1 -0
  77. package/dist/planning/tools/exit-plan-mode.js +149 -0
  78. package/dist/planning/tools/exit-plan-mode.js.map +1 -0
  79. package/dist/planning/types.d.ts +100 -0
  80. package/dist/planning/types.d.ts.map +1 -0
  81. package/dist/planning/types.js +28 -0
  82. package/dist/planning/types.js.map +1 -0
  83. package/dist/pricing/calculator.d.ts +21 -0
  84. package/dist/pricing/calculator.d.ts.map +1 -0
  85. package/dist/pricing/calculator.js +59 -0
  86. package/dist/pricing/calculator.js.map +1 -0
  87. package/dist/pricing/index.d.ts +7 -0
  88. package/dist/pricing/index.d.ts.map +1 -0
  89. package/dist/pricing/index.js +7 -0
  90. package/dist/pricing/index.js.map +1 -0
  91. package/dist/pricing/models.d.ts +20 -0
  92. package/dist/pricing/models.d.ts.map +1 -0
  93. package/dist/pricing/models.js +322 -0
  94. package/dist/pricing/models.js.map +1 -0
  95. package/dist/pricing/types.d.ts +30 -0
  96. package/dist/pricing/types.d.ts.map +1 -0
  97. package/dist/pricing/types.js +5 -0
  98. package/dist/pricing/types.js.map +1 -0
  99. package/dist/providers/anthropic.d.ts.map +1 -1
  100. package/dist/providers/anthropic.js +17 -10
  101. package/dist/providers/anthropic.js.map +1 -1
  102. package/dist/providers/gemini.d.ts.map +1 -1
  103. package/dist/providers/gemini.js +21 -14
  104. package/dist/providers/gemini.js.map +1 -1
  105. package/dist/providers/openai.d.ts.map +1 -1
  106. package/dist/providers/openai.js +12 -8
  107. package/dist/providers/openai.js.map +1 -1
  108. package/dist/providers/types.d.ts +2 -0
  109. package/dist/providers/types.d.ts.map +1 -1
  110. package/dist/providers/vertex-ai.d.ts.map +1 -1
  111. package/dist/providers/vertex-ai.js +17 -10
  112. package/dist/providers/vertex-ai.js.map +1 -1
  113. package/dist/session/manager.d.ts +4 -0
  114. package/dist/session/manager.d.ts.map +1 -1
  115. package/dist/session/manager.js +8 -0
  116. package/dist/session/manager.js.map +1 -1
  117. package/dist/tools/builtin/ask-user.d.ts +64 -0
  118. package/dist/tools/builtin/ask-user.d.ts.map +1 -0
  119. package/dist/tools/builtin/ask-user.js +148 -0
  120. package/dist/tools/builtin/ask-user.js.map +1 -0
  121. package/dist/tools/index.d.ts +19 -1
  122. package/dist/tools/index.d.ts.map +1 -1
  123. package/dist/tools/index.js +11 -0
  124. package/dist/tools/index.js.map +1 -1
  125. package/dist/tools/registry.d.ts +13 -0
  126. package/dist/tools/registry.d.ts.map +1 -1
  127. package/dist/tools/registry.js +79 -2
  128. package/dist/tools/registry.js.map +1 -1
  129. package/dist/tools/types.d.ts +17 -0
  130. package/dist/tools/types.d.ts.map +1 -1
  131. package/dist/tools/types.js.map +1 -1
  132. package/docs/cost-tracking-comparison.md +904 -0
  133. package/docs/operating-modes.md +96 -0
  134. package/docs/proposals/0012-ask-user-question.md +66 -1
  135. package/docs/proposals/0025-cost-tracking.md +60 -2
  136. package/docs/proposals/README.md +2 -2
  137. package/examples/test-ask-user.ts +167 -0
  138. package/examples/test-checkpointing.ts +121 -0
  139. package/examples/test-cost-tracking.ts +77 -0
  140. package/examples/test-interrupt-cleanup.ts +94 -0
  141. package/package.json +1 -1
  142. package/src/agent/agent.ts +130 -4
  143. package/src/agent/index.ts +1 -0
  144. package/src/agent/types.ts +19 -1
  145. package/src/checkpointing/checkpoint-manager.ts +327 -0
  146. package/src/checkpointing/index.ts +45 -0
  147. package/src/checkpointing/types.ts +104 -0
  148. package/src/cli/components/App.tsx +259 -8
  149. package/src/cli/components/CommandSuggestions.tsx +5 -0
  150. package/src/cli/components/Messages.tsx +66 -4
  151. package/src/cli/components/ModeIndicator.tsx +174 -0
  152. package/src/cli/components/PlanApproval.tsx +327 -0
  153. package/src/cli/components/QuestionPrompt.tsx +462 -0
  154. package/src/cli/components/index.ts +1 -0
  155. package/src/cli/components/theme.ts +14 -1
  156. package/src/index.ts +15 -0
  157. package/src/permissions/types.ts +2 -0
  158. package/src/planning/index.ts +53 -0
  159. package/src/planning/plan-file.ts +326 -0
  160. package/src/planning/state.ts +305 -0
  161. package/src/planning/tools/enter-plan-mode.ts +111 -0
  162. package/src/planning/tools/exit-plan-mode.ts +170 -0
  163. package/src/planning/types.ts +150 -0
  164. package/src/pricing/calculator.ts +71 -0
  165. package/src/pricing/index.ts +7 -0
  166. package/src/pricing/models.ts +334 -0
  167. package/src/pricing/types.ts +32 -0
  168. package/src/prompts/system/base.txt +42 -0
  169. package/src/prompts/tools/ask-user.txt +110 -0
  170. package/src/providers/anthropic.ts +21 -10
  171. package/src/providers/gemini.ts +25 -14
  172. package/src/providers/openai.ts +17 -8
  173. package/src/providers/types.ts +3 -0
  174. package/src/providers/vertex-ai.ts +21 -10
  175. package/src/session/manager.ts +9 -0
  176. package/src/tools/builtin/ask-user.ts +185 -0
  177. package/src/tools/index.ts +23 -0
  178. package/src/tools/registry.ts +95 -2
  179. package/src/tools/types.ts +18 -0
  180. package/.gencode/settings.local.json +0 -7
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Plan Mode Type Definitions
3
+ *
4
+ * Types for Plan Mode - a read-only exploration mode that allows
5
+ * the LLM to plan implementations before executing changes.
6
+ */
7
+ /**
8
+ * Plan mode phases following Claude Code's workflow
9
+ */
10
+ export type PlanPhase = 'understanding' | 'design' | 'review' | 'final' | 'approval';
11
+ /**
12
+ * User approval options for plan mode
13
+ */
14
+ export type PlanApprovalOption = 'approve' | 'approve_clear' | 'approve_manual' | 'modify' | 'cancel';
15
+ /**
16
+ * Pre-approved permission request (Claude Code ExitPlanMode style)
17
+ */
18
+ export interface AllowedPrompt {
19
+ tool: 'Bash';
20
+ prompt: string;
21
+ }
22
+ /**
23
+ * Plan mode state
24
+ */
25
+ export interface PlanModeState {
26
+ /** Whether plan mode is currently active */
27
+ active: boolean;
28
+ /** Current phase of planning */
29
+ phase: PlanPhase;
30
+ /** Path to the plan file */
31
+ planFilePath: string | null;
32
+ /** User's original request that triggered plan mode */
33
+ originalRequest: string | null;
34
+ /** Requested permissions for execution phase */
35
+ requestedPermissions: AllowedPrompt[];
36
+ /** Timestamp when plan mode was entered */
37
+ enteredAt: Date | null;
38
+ }
39
+ /**
40
+ * Plan file structure
41
+ */
42
+ export interface PlanFile {
43
+ /** Plan file path */
44
+ path: string;
45
+ /** Plan content in markdown */
46
+ content: string;
47
+ /** Creation timestamp */
48
+ createdAt: Date;
49
+ /** Last update timestamp */
50
+ updatedAt: Date;
51
+ }
52
+ /**
53
+ * Tools allowed in plan mode (read-only + planning tools)
54
+ */
55
+ export declare const PLAN_MODE_ALLOWED_TOOLS: readonly ["Read", "Glob", "Grep", "WebFetch", "WebSearch", "TodoWrite", "AskUserQuestion", "EnterPlanMode", "ExitPlanMode"];
56
+ /**
57
+ * Tools blocked in plan mode (write/execute operations)
58
+ */
59
+ export declare const PLAN_MODE_BLOCKED_TOOLS: readonly ["Write", "Edit", "Bash"];
60
+ export type PlanModeAllowedTool = (typeof PLAN_MODE_ALLOWED_TOOLS)[number];
61
+ export type PlanModeBlockedTool = (typeof PLAN_MODE_BLOCKED_TOOLS)[number];
62
+ /**
63
+ * Operating mode (cycle with Shift+Tab: normal → plan → accept → normal)
64
+ * - normal: Default mode, edits require confirmation
65
+ * - plan: Read-only exploration mode, edits blocked
66
+ * - accept: Auto-accept mode, edits approved without confirmation
67
+ */
68
+ export type ModeType = 'normal' | 'plan' | 'accept';
69
+ /**
70
+ * Plan approval UI state
71
+ */
72
+ export interface PlanApprovalState {
73
+ /** Plan content for display */
74
+ planContent: string;
75
+ /** Summary of files to change */
76
+ filesToChange: Array<{
77
+ path: string;
78
+ action: 'create' | 'modify' | 'delete';
79
+ }>;
80
+ /** Requested permissions */
81
+ requestedPermissions: AllowedPrompt[];
82
+ /** Callback when user makes decision */
83
+ onDecision: (option: PlanApprovalOption) => void;
84
+ }
85
+ /**
86
+ * Plan mode events for UI updates
87
+ */
88
+ export type PlanModeEvent = {
89
+ type: 'enter';
90
+ planFilePath: string;
91
+ } | {
92
+ type: 'phase_change';
93
+ phase: PlanPhase;
94
+ } | {
95
+ type: 'exit';
96
+ approved: boolean;
97
+ } | {
98
+ type: 'toggle';
99
+ };
100
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/planning/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,eAAe,GACf,gBAAgB,GAChB,QAAQ,GACR,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAEhB,gCAAgC;IAChC,KAAK,EAAE,SAAS,CAAC;IAEjB,4BAA4B;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,uDAAuD;IACvD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,gDAAgD;IAChD,oBAAoB,EAAE,aAAa,EAAE,CAAC;IAEtC,2CAA2C;IAC3C,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IAEb,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,SAAS,EAAE,IAAI,CAAC;IAEhB,4BAA4B;IAC5B,SAAS,EAAE,IAAI,CAAC;CACjB;AAMD;;GAEG;AACH,eAAO,MAAM,uBAAuB,6HAU1B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,uBAAuB,oCAAqC,CAAC;AAE1E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3E;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;KACxC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,oBAAoB,EAAE,aAAa,EAAE,CAAC;IAEtC,wCAAwC;IACxC,UAAU,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAClD;AAMD;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Plan Mode Type Definitions
3
+ *
4
+ * Types for Plan Mode - a read-only exploration mode that allows
5
+ * the LLM to plan implementations before executing changes.
6
+ */
7
+ // ============================================================================
8
+ // Tool Filtering Types
9
+ // ============================================================================
10
+ /**
11
+ * Tools allowed in plan mode (read-only + planning tools)
12
+ */
13
+ export const PLAN_MODE_ALLOWED_TOOLS = [
14
+ 'Read',
15
+ 'Glob',
16
+ 'Grep',
17
+ 'WebFetch',
18
+ 'WebSearch',
19
+ 'TodoWrite',
20
+ 'AskUserQuestion',
21
+ 'EnterPlanMode', // Can re-enter if needed
22
+ 'ExitPlanMode', // To exit plan mode
23
+ ];
24
+ /**
25
+ * Tools blocked in plan mode (write/execute operations)
26
+ */
27
+ export const PLAN_MODE_BLOCKED_TOOLS = ['Write', 'Edit', 'Bash'];
28
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/planning/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0EH,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,eAAe,EAAE,yBAAyB;IAC1C,cAAc,EAAE,oBAAoB;CAC5B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Cost calculation utilities
3
+ */
4
+ import { CostEstimate, TokenUsage } from './types.js';
5
+ /**
6
+ * Calculate cost from token usage
7
+ */
8
+ export declare function calculateCost(provider: string, model: string, tokens: TokenUsage): CostEstimate;
9
+ /**
10
+ * Format cost for display
11
+ */
12
+ export declare function formatCost(cost: number): string;
13
+ /**
14
+ * Format token count for display
15
+ */
16
+ export declare function formatTokens(count: number): string;
17
+ /**
18
+ * Format cost estimate for display
19
+ */
20
+ export declare function formatCostEstimate(estimate: CostEstimate): string;
21
+ //# sourceMappingURL=calculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../src/pricing/calculator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,UAAU,GACjB,YAAY,CAuBd;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAEjE"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Cost calculation utilities
3
+ */
4
+ import { getModelPricing } from './models.js';
5
+ /**
6
+ * Calculate cost from token usage
7
+ */
8
+ export function calculateCost(provider, model, tokens) {
9
+ const pricing = getModelPricing(provider, model);
10
+ // If no pricing found, return zero cost
11
+ if (!pricing) {
12
+ return {
13
+ inputCost: 0,
14
+ outputCost: 0,
15
+ totalCost: 0,
16
+ currency: 'USD',
17
+ };
18
+ }
19
+ // Calculate cost per token type
20
+ const inputCost = (tokens.inputTokens / 1_000_000) * pricing.inputPer1M;
21
+ const outputCost = (tokens.outputTokens / 1_000_000) * pricing.outputPer1M;
22
+ return {
23
+ inputCost,
24
+ outputCost,
25
+ totalCost: inputCost + outputCost,
26
+ currency: 'USD',
27
+ };
28
+ }
29
+ /**
30
+ * Format cost for display
31
+ */
32
+ export function formatCost(cost) {
33
+ if (cost === 0) {
34
+ return '$0.00';
35
+ }
36
+ if (cost < 0.01) {
37
+ return '<$0.01';
38
+ }
39
+ return `$${cost.toFixed(2)}`;
40
+ }
41
+ /**
42
+ * Format token count for display
43
+ */
44
+ export function formatTokens(count) {
45
+ if (count >= 1_000_000) {
46
+ return `${(count / 1_000_000).toFixed(1)}M`;
47
+ }
48
+ if (count >= 1_000) {
49
+ return `${(count / 1_000).toFixed(1)}K`;
50
+ }
51
+ return count.toString();
52
+ }
53
+ /**
54
+ * Format cost estimate for display
55
+ */
56
+ export function formatCostEstimate(estimate) {
57
+ return formatCost(estimate.totalCost);
58
+ }
59
+ //# sourceMappingURL=calculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../src/pricing/calculator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,KAAa,EACb,MAAkB;IAElB,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEjD,wCAAwC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IACxE,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAE3E,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS,EAAE,SAAS,GAAG,UAAU;QACjC,QAAQ,EAAE,KAAK;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAsB;IACvD,OAAO,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Pricing and cost tracking module
3
+ */
4
+ export * from './types.js';
5
+ export * from './models.js';
6
+ export * from './calculator.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pricing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Pricing and cost tracking module
3
+ */
4
+ export * from './types.js';
5
+ export * from './models.js';
6
+ export * from './calculator.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pricing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Model pricing database
3
+ * Prices are per 1M tokens in USD
4
+ * Updated: January 2025
5
+ */
6
+ import { ModelPricing } from './types.js';
7
+ /**
8
+ * Pricing data for all supported models
9
+ * Source: Official provider pricing pages as of January 2025
10
+ */
11
+ export declare const MODEL_PRICING: ModelPricing[];
12
+ /**
13
+ * Get pricing for a specific model
14
+ */
15
+ export declare function getModelPricing(provider: string, model: string): ModelPricing | undefined;
16
+ /**
17
+ * Get all pricing for a provider
18
+ */
19
+ export declare function getProviderPricing(provider: string): ModelPricing[];
20
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/pricing/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,YAAY,EA8SvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,YAAY,GAAG,SAAS,CAI1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAEnE"}
@@ -0,0 +1,322 @@
1
+ /**
2
+ * Model pricing database
3
+ * Prices are per 1M tokens in USD
4
+ * Updated: January 2025
5
+ */
6
+ /**
7
+ * Pricing data for all supported models
8
+ * Source: Official provider pricing pages as of January 2025
9
+ */
10
+ export const MODEL_PRICING = [
11
+ // Anthropic Claude Models
12
+ {
13
+ provider: 'anthropic',
14
+ model: 'claude-opus-4-5',
15
+ inputPer1M: 15.0,
16
+ outputPer1M: 75.0,
17
+ effectiveDate: '2025-01-01',
18
+ },
19
+ {
20
+ provider: 'anthropic',
21
+ model: 'claude-opus-4',
22
+ inputPer1M: 15.0,
23
+ outputPer1M: 75.0,
24
+ effectiveDate: '2024-11-01',
25
+ },
26
+ {
27
+ provider: 'anthropic',
28
+ model: 'claude-sonnet-4-5',
29
+ inputPer1M: 3.0,
30
+ outputPer1M: 15.0,
31
+ effectiveDate: '2025-01-01',
32
+ },
33
+ {
34
+ provider: 'anthropic',
35
+ model: 'claude-sonnet-4',
36
+ inputPer1M: 3.0,
37
+ outputPer1M: 15.0,
38
+ effectiveDate: '2024-10-22',
39
+ },
40
+ {
41
+ provider: 'anthropic',
42
+ model: 'claude-3-5-sonnet-20241022',
43
+ inputPer1M: 3.0,
44
+ outputPer1M: 15.0,
45
+ effectiveDate: '2024-10-22',
46
+ },
47
+ {
48
+ provider: 'anthropic',
49
+ model: 'claude-3-5-sonnet-20240620',
50
+ inputPer1M: 3.0,
51
+ outputPer1M: 15.0,
52
+ effectiveDate: '2024-06-20',
53
+ },
54
+ {
55
+ provider: 'anthropic',
56
+ model: 'claude-haiku-3-5',
57
+ inputPer1M: 0.8,
58
+ outputPer1M: 4.0,
59
+ effectiveDate: '2024-11-01',
60
+ },
61
+ {
62
+ provider: 'anthropic',
63
+ model: 'claude-3-5-haiku-20241022',
64
+ inputPer1M: 0.8,
65
+ outputPer1M: 4.0,
66
+ effectiveDate: '2024-10-22',
67
+ },
68
+ {
69
+ provider: 'anthropic',
70
+ model: 'claude-3-haiku-20240307',
71
+ inputPer1M: 0.25,
72
+ outputPer1M: 1.25,
73
+ effectiveDate: '2024-03-07',
74
+ },
75
+ {
76
+ provider: 'anthropic',
77
+ model: 'claude-3-opus-20240229',
78
+ inputPer1M: 15.0,
79
+ outputPer1M: 75.0,
80
+ effectiveDate: '2024-02-29',
81
+ },
82
+ // OpenAI Models
83
+ {
84
+ provider: 'openai',
85
+ model: 'gpt-4o',
86
+ inputPer1M: 2.5,
87
+ outputPer1M: 10.0,
88
+ effectiveDate: '2024-08-06',
89
+ },
90
+ {
91
+ provider: 'openai',
92
+ model: 'gpt-4o-2024-11-20',
93
+ inputPer1M: 2.5,
94
+ outputPer1M: 10.0,
95
+ effectiveDate: '2024-11-20',
96
+ },
97
+ {
98
+ provider: 'openai',
99
+ model: 'gpt-4o-2024-08-06',
100
+ inputPer1M: 2.5,
101
+ outputPer1M: 10.0,
102
+ effectiveDate: '2024-08-06',
103
+ },
104
+ {
105
+ provider: 'openai',
106
+ model: 'gpt-4o-2024-05-13',
107
+ inputPer1M: 5.0,
108
+ outputPer1M: 15.0,
109
+ effectiveDate: '2024-05-13',
110
+ },
111
+ {
112
+ provider: 'openai',
113
+ model: 'gpt-4o-mini',
114
+ inputPer1M: 0.15,
115
+ outputPer1M: 0.6,
116
+ effectiveDate: '2024-07-18',
117
+ },
118
+ {
119
+ provider: 'openai',
120
+ model: 'gpt-4o-mini-2024-07-18',
121
+ inputPer1M: 0.15,
122
+ outputPer1M: 0.6,
123
+ effectiveDate: '2024-07-18',
124
+ },
125
+ {
126
+ provider: 'openai',
127
+ model: 'gpt-4-turbo',
128
+ inputPer1M: 10.0,
129
+ outputPer1M: 30.0,
130
+ effectiveDate: '2024-04-09',
131
+ },
132
+ {
133
+ provider: 'openai',
134
+ model: 'gpt-4-turbo-2024-04-09',
135
+ inputPer1M: 10.0,
136
+ outputPer1M: 30.0,
137
+ effectiveDate: '2024-04-09',
138
+ },
139
+ {
140
+ provider: 'openai',
141
+ model: 'gpt-4',
142
+ inputPer1M: 30.0,
143
+ outputPer1M: 60.0,
144
+ effectiveDate: '2023-03-14',
145
+ },
146
+ {
147
+ provider: 'openai',
148
+ model: 'gpt-3.5-turbo',
149
+ inputPer1M: 0.5,
150
+ outputPer1M: 1.5,
151
+ effectiveDate: '2023-11-06',
152
+ },
153
+ {
154
+ provider: 'openai',
155
+ model: 'o1',
156
+ inputPer1M: 15.0,
157
+ outputPer1M: 60.0,
158
+ effectiveDate: '2024-12-17',
159
+ },
160
+ {
161
+ provider: 'openai',
162
+ model: 'o1-2024-12-17',
163
+ inputPer1M: 15.0,
164
+ outputPer1M: 60.0,
165
+ effectiveDate: '2024-12-17',
166
+ },
167
+ {
168
+ provider: 'openai',
169
+ model: 'o1-preview',
170
+ inputPer1M: 15.0,
171
+ outputPer1M: 60.0,
172
+ effectiveDate: '2024-09-12',
173
+ },
174
+ {
175
+ provider: 'openai',
176
+ model: 'o1-preview-2024-09-12',
177
+ inputPer1M: 15.0,
178
+ outputPer1M: 60.0,
179
+ effectiveDate: '2024-09-12',
180
+ },
181
+ {
182
+ provider: 'openai',
183
+ model: 'o1-mini',
184
+ inputPer1M: 3.0,
185
+ outputPer1M: 12.0,
186
+ effectiveDate: '2024-09-12',
187
+ },
188
+ {
189
+ provider: 'openai',
190
+ model: 'o1-mini-2024-09-12',
191
+ inputPer1M: 3.0,
192
+ outputPer1M: 12.0,
193
+ effectiveDate: '2024-09-12',
194
+ },
195
+ // Google Gemini Models
196
+ {
197
+ provider: 'gemini',
198
+ model: 'gemini-2.0-flash-exp',
199
+ inputPer1M: 0.0,
200
+ outputPer1M: 0.0,
201
+ effectiveDate: '2024-12-11',
202
+ },
203
+ {
204
+ provider: 'gemini',
205
+ model: 'gemini-2.0-flash',
206
+ inputPer1M: 0.075,
207
+ outputPer1M: 0.3,
208
+ effectiveDate: '2025-01-01',
209
+ },
210
+ {
211
+ provider: 'gemini',
212
+ model: 'gemini-exp-1206',
213
+ inputPer1M: 0.0,
214
+ outputPer1M: 0.0,
215
+ effectiveDate: '2024-12-06',
216
+ },
217
+ {
218
+ provider: 'gemini',
219
+ model: 'gemini-1.5-pro',
220
+ inputPer1M: 1.25,
221
+ outputPer1M: 5.0,
222
+ effectiveDate: '2024-05-14',
223
+ },
224
+ {
225
+ provider: 'gemini',
226
+ model: 'gemini-1.5-pro-002',
227
+ inputPer1M: 1.25,
228
+ outputPer1M: 5.0,
229
+ effectiveDate: '2024-09-24',
230
+ },
231
+ {
232
+ provider: 'gemini',
233
+ model: 'gemini-1.5-flash',
234
+ inputPer1M: 0.075,
235
+ outputPer1M: 0.3,
236
+ effectiveDate: '2024-05-14',
237
+ },
238
+ {
239
+ provider: 'gemini',
240
+ model: 'gemini-1.5-flash-002',
241
+ inputPer1M: 0.075,
242
+ outputPer1M: 0.3,
243
+ effectiveDate: '2024-09-24',
244
+ },
245
+ {
246
+ provider: 'gemini',
247
+ model: 'gemini-1.5-flash-8b',
248
+ inputPer1M: 0.0375,
249
+ outputPer1M: 0.15,
250
+ effectiveDate: '2024-10-03',
251
+ },
252
+ // Google Vertex AI (same pricing as Gemini)
253
+ {
254
+ provider: 'vertex-ai',
255
+ model: 'gemini-2.0-flash-exp',
256
+ inputPer1M: 0.0,
257
+ outputPer1M: 0.0,
258
+ effectiveDate: '2024-12-11',
259
+ },
260
+ {
261
+ provider: 'vertex-ai',
262
+ model: 'gemini-2.0-flash',
263
+ inputPer1M: 0.075,
264
+ outputPer1M: 0.3,
265
+ effectiveDate: '2025-01-01',
266
+ },
267
+ {
268
+ provider: 'vertex-ai',
269
+ model: 'gemini-exp-1206',
270
+ inputPer1M: 0.0,
271
+ outputPer1M: 0.0,
272
+ effectiveDate: '2024-12-06',
273
+ },
274
+ {
275
+ provider: 'vertex-ai',
276
+ model: 'gemini-1.5-pro',
277
+ inputPer1M: 1.25,
278
+ outputPer1M: 5.0,
279
+ effectiveDate: '2024-05-14',
280
+ },
281
+ {
282
+ provider: 'vertex-ai',
283
+ model: 'gemini-1.5-pro-002',
284
+ inputPer1M: 1.25,
285
+ outputPer1M: 5.0,
286
+ effectiveDate: '2024-09-24',
287
+ },
288
+ {
289
+ provider: 'vertex-ai',
290
+ model: 'gemini-1.5-flash',
291
+ inputPer1M: 0.075,
292
+ outputPer1M: 0.3,
293
+ effectiveDate: '2024-05-14',
294
+ },
295
+ {
296
+ provider: 'vertex-ai',
297
+ model: 'gemini-1.5-flash-002',
298
+ inputPer1M: 0.075,
299
+ outputPer1M: 0.3,
300
+ effectiveDate: '2024-09-24',
301
+ },
302
+ {
303
+ provider: 'vertex-ai',
304
+ model: 'gemini-1.5-flash-8b',
305
+ inputPer1M: 0.0375,
306
+ outputPer1M: 0.15,
307
+ effectiveDate: '2024-10-03',
308
+ },
309
+ ];
310
+ /**
311
+ * Get pricing for a specific model
312
+ */
313
+ export function getModelPricing(provider, model) {
314
+ return MODEL_PRICING.find((p) => p.provider === provider && p.model === model);
315
+ }
316
+ /**
317
+ * Get all pricing for a provider
318
+ */
319
+ export function getProviderPricing(provider) {
320
+ return MODEL_PRICING.filter((p) => p.provider === provider);
321
+ }
322
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/pricing/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Pricing and cost tracking types
3
+ */
4
+ /**
5
+ * Token usage information
6
+ */
7
+ export interface TokenUsage {
8
+ inputTokens: number;
9
+ outputTokens: number;
10
+ }
11
+ /**
12
+ * Cost estimate in USD
13
+ */
14
+ export interface CostEstimate {
15
+ inputCost: number;
16
+ outputCost: number;
17
+ totalCost: number;
18
+ currency: string;
19
+ }
20
+ /**
21
+ * Model pricing per 1M tokens (USD)
22
+ */
23
+ export interface ModelPricing {
24
+ provider: string;
25
+ model: string;
26
+ inputPer1M: number;
27
+ outputPer1M: number;
28
+ effectiveDate?: string;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pricing/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Pricing and cost tracking types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pricing/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAKX,eAAe,EACf,SAAS,EACV,MAAM,YAAY,CAAC;AAMpB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,GAAE,eAAoB;IAOlC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgBhE,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IA2DrF,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,yBAAyB;IAiCjC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,iBAAiB;IAcnB,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAUzC"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAKX,eAAe,EACf,SAAS,EACV,MAAM,YAAY,CAAC;AAMpB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,GAAE,eAAoB;IAOlC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgBhE,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IAgErF,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,yBAAyB;IAiCjC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,iBAAiB;IAcnB,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAUzC"}