@wundam/orchex 1.0.0-rc.1

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 (104) hide show
  1. package/LICENSE +65 -0
  2. package/README.md +332 -0
  3. package/bin/orchex.js +2 -0
  4. package/dist/artifacts.d.ts +132 -0
  5. package/dist/artifacts.js +832 -0
  6. package/dist/claude-executor.d.ts +31 -0
  7. package/dist/claude-executor.js +200 -0
  8. package/dist/commands.d.ts +36 -0
  9. package/dist/commands.js +264 -0
  10. package/dist/config.d.ts +100 -0
  11. package/dist/config.js +172 -0
  12. package/dist/context-builder.d.ts +46 -0
  13. package/dist/context-builder.js +506 -0
  14. package/dist/cost.d.ts +29 -0
  15. package/dist/cost.js +60 -0
  16. package/dist/execution-broadcaster.d.ts +18 -0
  17. package/dist/execution-broadcaster.js +17 -0
  18. package/dist/executors/base.d.ts +99 -0
  19. package/dist/executors/base.js +206 -0
  20. package/dist/executors/circuit-breaker.d.ts +36 -0
  21. package/dist/executors/circuit-breaker.js +109 -0
  22. package/dist/executors/deepseek-executor.d.ts +22 -0
  23. package/dist/executors/deepseek-executor.js +145 -0
  24. package/dist/executors/gemini-executor.d.ts +20 -0
  25. package/dist/executors/gemini-executor.js +176 -0
  26. package/dist/executors/index.d.ts +81 -0
  27. package/dist/executors/index.js +193 -0
  28. package/dist/executors/ollama-executor.d.ts +25 -0
  29. package/dist/executors/ollama-executor.js +184 -0
  30. package/dist/executors/openai-executor.d.ts +22 -0
  31. package/dist/executors/openai-executor.js +142 -0
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.js +115 -0
  34. package/dist/intelligence/anti-pattern-detector.d.ts +117 -0
  35. package/dist/intelligence/anti-pattern-detector.js +327 -0
  36. package/dist/intelligence/budget-enforcer.d.ts +119 -0
  37. package/dist/intelligence/budget-enforcer.js +226 -0
  38. package/dist/intelligence/context-optimizer.d.ts +111 -0
  39. package/dist/intelligence/context-optimizer.js +282 -0
  40. package/dist/intelligence/cost-tracker.d.ts +114 -0
  41. package/dist/intelligence/cost-tracker.js +183 -0
  42. package/dist/intelligence/deliverable-extractor.d.ts +134 -0
  43. package/dist/intelligence/deliverable-extractor.js +909 -0
  44. package/dist/intelligence/dependency-inferrer.d.ts +87 -0
  45. package/dist/intelligence/dependency-inferrer.js +403 -0
  46. package/dist/intelligence/diagnostics.d.ts +25 -0
  47. package/dist/intelligence/diagnostics.js +36 -0
  48. package/dist/intelligence/error-analyzer.d.ts +7 -0
  49. package/dist/intelligence/error-analyzer.js +76 -0
  50. package/dist/intelligence/file-chunker.d.ts +15 -0
  51. package/dist/intelligence/file-chunker.js +64 -0
  52. package/dist/intelligence/fix-stream-manager.d.ts +59 -0
  53. package/dist/intelligence/fix-stream-manager.js +212 -0
  54. package/dist/intelligence/heuristics.d.ts +23 -0
  55. package/dist/intelligence/heuristics.js +124 -0
  56. package/dist/intelligence/learning-engine.d.ts +157 -0
  57. package/dist/intelligence/learning-engine.js +433 -0
  58. package/dist/intelligence/learning-feedback.d.ts +96 -0
  59. package/dist/intelligence/learning-feedback.js +202 -0
  60. package/dist/intelligence/pattern-analyzer.d.ts +35 -0
  61. package/dist/intelligence/pattern-analyzer.js +189 -0
  62. package/dist/intelligence/plan-parser.d.ts +124 -0
  63. package/dist/intelligence/plan-parser.js +498 -0
  64. package/dist/intelligence/planner.d.ts +29 -0
  65. package/dist/intelligence/planner.js +86 -0
  66. package/dist/intelligence/self-healer.d.ts +16 -0
  67. package/dist/intelligence/self-healer.js +84 -0
  68. package/dist/intelligence/slicing-metrics.d.ts +62 -0
  69. package/dist/intelligence/slicing-metrics.js +202 -0
  70. package/dist/intelligence/slicing-templates.d.ts +81 -0
  71. package/dist/intelligence/slicing-templates.js +420 -0
  72. package/dist/intelligence/split-suggester.d.ts +69 -0
  73. package/dist/intelligence/split-suggester.js +176 -0
  74. package/dist/intelligence/stream-generator.d.ts +90 -0
  75. package/dist/intelligence/stream-generator.js +452 -0
  76. package/dist/logger.d.ts +34 -0
  77. package/dist/logger.js +83 -0
  78. package/dist/logging.d.ts +5 -0
  79. package/dist/logging.js +38 -0
  80. package/dist/manifest.d.ts +56 -0
  81. package/dist/manifest.js +254 -0
  82. package/dist/metrics.d.ts +35 -0
  83. package/dist/metrics.js +75 -0
  84. package/dist/orchestrator.d.ts +35 -0
  85. package/dist/orchestrator.js +723 -0
  86. package/dist/ownership.d.ts +44 -0
  87. package/dist/ownership.js +250 -0
  88. package/dist/semaphore.d.ts +12 -0
  89. package/dist/semaphore.js +34 -0
  90. package/dist/telemetry/telemetry-types.d.ts +85 -0
  91. package/dist/telemetry/telemetry-types.js +1 -0
  92. package/dist/tier-gating.d.ts +24 -0
  93. package/dist/tier-gating.js +88 -0
  94. package/dist/tiers.d.ts +92 -0
  95. package/dist/tiers.js +108 -0
  96. package/dist/tools.d.ts +18 -0
  97. package/dist/tools.js +1363 -0
  98. package/dist/types.d.ts +740 -0
  99. package/dist/types.js +160 -0
  100. package/dist/utils/ownership-validator.d.ts +6 -0
  101. package/dist/utils/ownership-validator.js +21 -0
  102. package/dist/waves.d.ts +21 -0
  103. package/dist/waves.js +146 -0
  104. package/package.json +120 -0
package/dist/tiers.js ADDED
@@ -0,0 +1,108 @@
1
+ import { z } from 'zod';
2
+ // ============================================================================
3
+ // Tier Definitions
4
+ // ============================================================================
5
+ export const TierIdSchema = z.enum(['free', 'pro', 'team', 'enterprise']);
6
+ export const TierSchema = z.object({
7
+ id: TierIdSchema,
8
+ name: z.string(),
9
+ price: z.number().describe('Monthly price in USD, -1 = contact sales'),
10
+ cloudOrchestrations: z.number().describe('Max cloud orchestrations per month, 0 = local only, -1 = unlimited'),
11
+ maxParallelAgents: z.number().describe('Max parallel agents'),
12
+ selfHealing: z.enum(['none', 'full']),
13
+ smartPlanning: z.enum(['none', 'full']),
14
+ teamMembers: z.number().describe('Max team members, 1 = solo, -1 = unlimited'),
15
+ /** Maximum # of dependency waves (-1 = unlimited) */
16
+ maxWaves: z.number().describe('Max dependency waves allowed. -1 = unlimited'),
17
+ /** Maximum # of distinct LLM providers per orchestration (-1 = unlimited) */
18
+ maxProviders: z.number().describe('Max LLM providers allowed per orchestration. -1 = unlimited'),
19
+ });
20
+ // ============================================================================
21
+ // Canonical tier definitions — 4-tier value-based pricing (2026-02-06)
22
+ // ============================================================================
23
+ //
24
+ // PRICING RATIONALE (Updated 2026-02-13 — charm pricing alignment):
25
+ // ------------------
26
+ // Cost Analysis:
27
+ // - Variable cost per orchestration: ~$0.006 (Fly.io per-second billing + storage)
28
+ // - Fixed infrastructure: ~$35-55/month (API server, PostgreSQL, monitoring)
29
+ // - LLM API costs: $0 (BYOK - user pays their own API costs)
30
+ //
31
+ // With BYOK and efficient infrastructure, margins are 93%+. We price for VALUE,
32
+ // not cost. Users save ~30 min per orchestration in time value.
33
+ //
34
+ // Value Calculation:
35
+ // - Time saved per orchestration: ~30 minutes (parallel execution, auto-apply, self-healing)
36
+ // - At $50/hr developer rate: ~$25 value per orchestration
37
+ // - Pro user (50 orchestrations): $1,250 potential value for $19 = 65x ROI
38
+ //
39
+ // Tier Design (5-tier model, code tracks 4 — Trial is a feature of Free):
40
+ // - Free: Funnel, local only, no cloud costs. $5 one-time cloud credit (30 days).
41
+ // - Pro ($19): Individual devs, freelancers - 100 orchestrations covers power users
42
+ // - Team ($49): Small teams (2-10) - shared quotas, org management, 500 runs
43
+ // - Enterprise: Custom - SLA, dedicated infra, custom integrations (compliance discussed in sales)
44
+ //
45
+ // Why 100 orchestrations for Pro:
46
+ // - Most users do 15-50/month (won't hit limit)
47
+ // - Power users (50-100/month) still comfortable
48
+ // - Heavy users (100+) naturally upgrade to Team
49
+ // ============================================================================
50
+ export const TIERS = {
51
+ free: {
52
+ id: 'free',
53
+ name: 'Free',
54
+ price: 0,
55
+ cloudOrchestrations: 0,
56
+ maxParallelAgents: 5,
57
+ selfHealing: 'none',
58
+ smartPlanning: 'none',
59
+ teamMembers: 1,
60
+ maxWaves: 2, // max dependency depth for free tier (decision: all docs agree on 2)
61
+ maxProviders: 1, // only 1 provider allowed for free
62
+ },
63
+ pro: {
64
+ id: 'pro',
65
+ name: 'Pro',
66
+ price: 19,
67
+ cloudOrchestrations: 100,
68
+ maxParallelAgents: 15,
69
+ selfHealing: 'full',
70
+ smartPlanning: 'full',
71
+ teamMembers: 1,
72
+ maxWaves: 10, // e.g., higher but not unlimited
73
+ maxProviders: 2,
74
+ },
75
+ team: {
76
+ id: 'team',
77
+ name: 'Team',
78
+ price: 49,
79
+ cloudOrchestrations: 500,
80
+ maxParallelAgents: 25,
81
+ selfHealing: 'full',
82
+ smartPlanning: 'full',
83
+ teamMembers: -1, // unlimited
84
+ maxWaves: 25,
85
+ maxProviders: 3,
86
+ },
87
+ enterprise: {
88
+ id: 'enterprise',
89
+ name: 'Enterprise',
90
+ price: -1, // contact sales
91
+ cloudOrchestrations: -1, // unlimited
92
+ maxParallelAgents: 50,
93
+ selfHealing: 'full',
94
+ smartPlanning: 'full',
95
+ teamMembers: -1, // unlimited
96
+ maxWaves: -1, // unlimited
97
+ maxProviders: -1, // unlimited
98
+ },
99
+ };
100
+ // ============================================================================
101
+ // Helpers
102
+ // ============================================================================
103
+ export function getTier(id) {
104
+ return TIERS[id];
105
+ }
106
+ export function isCloudTier(id) {
107
+ return TIERS[id].cloudOrchestrations !== 0;
108
+ }
@@ -0,0 +1,18 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { ExecutorStrategy } from './types.js';
3
+ import type { TierId } from './tiers.js';
4
+ import type { IUserStore } from './storage/users.js';
5
+ import type { IProviderKeyStore } from './storage/provider-keys.js';
6
+ import type { IHistoryStore } from './storage/history.js';
7
+ export declare function setProjectDir(dir: string): void;
8
+ export interface ToolContext {
9
+ userStore: IUserStore;
10
+ userId: string;
11
+ userTier: TierId;
12
+ userCreatedAt: string;
13
+ organizationId?: string;
14
+ providerKeyStore?: IProviderKeyStore;
15
+ historyStore?: IHistoryStore;
16
+ }
17
+ export declare function generatePlanTemplate(featureName: string, slug: string): string;
18
+ export declare function registerTools(server: McpServer, executor?: ExecutorStrategy, context?: ToolContext): void;