@plures/praxis 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 (263) hide show
  1. package/FRAMEWORK.md +420 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1310 -0
  4. package/dist/adapters/cli.d.ts +43 -0
  5. package/dist/adapters/cli.d.ts.map +1 -0
  6. package/dist/adapters/cli.js +126 -0
  7. package/dist/adapters/cli.js.map +1 -0
  8. package/dist/cli/commands/auth.d.ts +26 -0
  9. package/dist/cli/commands/auth.d.ts.map +1 -0
  10. package/dist/cli/commands/auth.js +233 -0
  11. package/dist/cli/commands/auth.js.map +1 -0
  12. package/dist/cli/commands/cloud.d.ts +27 -0
  13. package/dist/cli/commands/cloud.d.ts.map +1 -0
  14. package/dist/cli/commands/cloud.js +232 -0
  15. package/dist/cli/commands/cloud.js.map +1 -0
  16. package/dist/cli/commands/generate.d.ts +25 -0
  17. package/dist/cli/commands/generate.d.ts.map +1 -0
  18. package/dist/cli/commands/generate.js +168 -0
  19. package/dist/cli/commands/generate.js.map +1 -0
  20. package/dist/cli/index.d.ts +8 -0
  21. package/dist/cli/index.d.ts.map +1 -0
  22. package/dist/cli/index.js +179 -0
  23. package/dist/cli/index.js.map +1 -0
  24. package/dist/cloud/auth.d.ts +51 -0
  25. package/dist/cloud/auth.d.ts.map +1 -0
  26. package/dist/cloud/auth.js +194 -0
  27. package/dist/cloud/auth.js.map +1 -0
  28. package/dist/cloud/billing.d.ts +184 -0
  29. package/dist/cloud/billing.d.ts.map +1 -0
  30. package/dist/cloud/billing.js +179 -0
  31. package/dist/cloud/billing.js.map +1 -0
  32. package/dist/cloud/client.d.ts +39 -0
  33. package/dist/cloud/client.d.ts.map +1 -0
  34. package/dist/cloud/client.js +176 -0
  35. package/dist/cloud/client.js.map +1 -0
  36. package/dist/cloud/index.d.ts +44 -0
  37. package/dist/cloud/index.d.ts.map +1 -0
  38. package/dist/cloud/index.js +44 -0
  39. package/dist/cloud/index.js.map +1 -0
  40. package/dist/cloud/marketplace.d.ts +166 -0
  41. package/dist/cloud/marketplace.d.ts.map +1 -0
  42. package/dist/cloud/marketplace.js +159 -0
  43. package/dist/cloud/marketplace.js.map +1 -0
  44. package/dist/cloud/provisioning.d.ts +110 -0
  45. package/dist/cloud/provisioning.d.ts.map +1 -0
  46. package/dist/cloud/provisioning.js +148 -0
  47. package/dist/cloud/provisioning.js.map +1 -0
  48. package/dist/cloud/relay/endpoints.d.ts +62 -0
  49. package/dist/cloud/relay/endpoints.d.ts.map +1 -0
  50. package/dist/cloud/relay/endpoints.js +217 -0
  51. package/dist/cloud/relay/endpoints.js.map +1 -0
  52. package/dist/cloud/relay/health/index.d.ts +5 -0
  53. package/dist/cloud/relay/health/index.d.ts.map +1 -0
  54. package/dist/cloud/relay/health/index.js +9 -0
  55. package/dist/cloud/relay/health/index.js.map +1 -0
  56. package/dist/cloud/relay/stats/index.d.ts +5 -0
  57. package/dist/cloud/relay/stats/index.d.ts.map +1 -0
  58. package/dist/cloud/relay/stats/index.js +9 -0
  59. package/dist/cloud/relay/stats/index.js.map +1 -0
  60. package/dist/cloud/relay/sync/index.d.ts +5 -0
  61. package/dist/cloud/relay/sync/index.d.ts.map +1 -0
  62. package/dist/cloud/relay/sync/index.js +9 -0
  63. package/dist/cloud/relay/sync/index.js.map +1 -0
  64. package/dist/cloud/relay/usage/index.d.ts +5 -0
  65. package/dist/cloud/relay/usage/index.d.ts.map +1 -0
  66. package/dist/cloud/relay/usage/index.js +9 -0
  67. package/dist/cloud/relay/usage/index.js.map +1 -0
  68. package/dist/cloud/sponsors.d.ts +81 -0
  69. package/dist/cloud/sponsors.d.ts.map +1 -0
  70. package/dist/cloud/sponsors.js +130 -0
  71. package/dist/cloud/sponsors.js.map +1 -0
  72. package/dist/cloud/types.d.ts +169 -0
  73. package/dist/cloud/types.d.ts.map +1 -0
  74. package/dist/cloud/types.js +7 -0
  75. package/dist/cloud/types.js.map +1 -0
  76. package/dist/components/index.d.ts +43 -0
  77. package/dist/components/index.d.ts.map +1 -0
  78. package/dist/components/index.js +17 -0
  79. package/dist/components/index.js.map +1 -0
  80. package/dist/core/actors.d.ts +95 -0
  81. package/dist/core/actors.d.ts.map +1 -0
  82. package/dist/core/actors.js +158 -0
  83. package/dist/core/actors.js.map +1 -0
  84. package/dist/core/component/generator.d.ts +122 -0
  85. package/dist/core/component/generator.d.ts.map +1 -0
  86. package/dist/core/component/generator.js +307 -0
  87. package/dist/core/component/generator.js.map +1 -0
  88. package/dist/core/engine.d.ts +92 -0
  89. package/dist/core/engine.d.ts.map +1 -0
  90. package/dist/core/engine.js +199 -0
  91. package/dist/core/engine.js.map +1 -0
  92. package/dist/core/introspection.d.ts +141 -0
  93. package/dist/core/introspection.d.ts.map +1 -0
  94. package/dist/core/introspection.js +208 -0
  95. package/dist/core/introspection.js.map +1 -0
  96. package/dist/core/logic/generator.d.ts +76 -0
  97. package/dist/core/logic/generator.d.ts.map +1 -0
  98. package/dist/core/logic/generator.js +339 -0
  99. package/dist/core/logic/generator.js.map +1 -0
  100. package/dist/core/pluresdb/generator.d.ts +58 -0
  101. package/dist/core/pluresdb/generator.d.ts.map +1 -0
  102. package/dist/core/pluresdb/generator.js +162 -0
  103. package/dist/core/pluresdb/generator.js.map +1 -0
  104. package/dist/core/protocol.d.ts +121 -0
  105. package/dist/core/protocol.d.ts.map +1 -0
  106. package/dist/core/protocol.js +46 -0
  107. package/dist/core/protocol.js.map +1 -0
  108. package/dist/core/rules.d.ts +120 -0
  109. package/dist/core/rules.d.ts.map +1 -0
  110. package/dist/core/rules.js +81 -0
  111. package/dist/core/rules.js.map +1 -0
  112. package/dist/core/schema/loader.d.ts +47 -0
  113. package/dist/core/schema/loader.d.ts.map +1 -0
  114. package/dist/core/schema/loader.js +189 -0
  115. package/dist/core/schema/loader.js.map +1 -0
  116. package/dist/core/schema/normalize.d.ts +72 -0
  117. package/dist/core/schema/normalize.d.ts.map +1 -0
  118. package/dist/core/schema/normalize.js +190 -0
  119. package/dist/core/schema/normalize.js.map +1 -0
  120. package/dist/core/schema/types.d.ts +370 -0
  121. package/dist/core/schema/types.d.ts.map +1 -0
  122. package/dist/core/schema/types.js +161 -0
  123. package/dist/core/schema/types.js.map +1 -0
  124. package/dist/dsl/index.d.ts +152 -0
  125. package/dist/dsl/index.d.ts.map +1 -0
  126. package/dist/dsl/index.js +132 -0
  127. package/dist/dsl/index.js.map +1 -0
  128. package/dist/dsl.d.ts +124 -0
  129. package/dist/dsl.d.ts.map +1 -0
  130. package/dist/dsl.js +130 -0
  131. package/dist/dsl.js.map +1 -0
  132. package/dist/examples/advanced-todo/index.d.ts +55 -0
  133. package/dist/examples/advanced-todo/index.d.ts.map +1 -0
  134. package/dist/examples/advanced-todo/index.js +222 -0
  135. package/dist/examples/advanced-todo/index.js.map +1 -0
  136. package/dist/examples/auth-basic/index.d.ts +17 -0
  137. package/dist/examples/auth-basic/index.d.ts.map +1 -0
  138. package/dist/examples/auth-basic/index.js +122 -0
  139. package/dist/examples/auth-basic/index.js.map +1 -0
  140. package/dist/examples/cart/index.d.ts +19 -0
  141. package/dist/examples/cart/index.d.ts.map +1 -0
  142. package/dist/examples/cart/index.js +202 -0
  143. package/dist/examples/cart/index.js.map +1 -0
  144. package/dist/examples/hero-ecommerce/index.d.ts +39 -0
  145. package/dist/examples/hero-ecommerce/index.d.ts.map +1 -0
  146. package/dist/examples/hero-ecommerce/index.js +506 -0
  147. package/dist/examples/hero-ecommerce/index.js.map +1 -0
  148. package/dist/examples/svelte-counter/index.d.ts +31 -0
  149. package/dist/examples/svelte-counter/index.d.ts.map +1 -0
  150. package/dist/examples/svelte-counter/index.js +123 -0
  151. package/dist/examples/svelte-counter/index.js.map +1 -0
  152. package/dist/flows.d.ts +125 -0
  153. package/dist/flows.d.ts.map +1 -0
  154. package/dist/flows.js +160 -0
  155. package/dist/flows.js.map +1 -0
  156. package/dist/index.d.ts +67 -0
  157. package/dist/index.d.ts.map +1 -0
  158. package/dist/index.js +59 -0
  159. package/dist/index.js.map +1 -0
  160. package/dist/integrations/pluresdb.d.ts +56 -0
  161. package/dist/integrations/pluresdb.d.ts.map +1 -0
  162. package/dist/integrations/pluresdb.js +46 -0
  163. package/dist/integrations/pluresdb.js.map +1 -0
  164. package/dist/integrations/svelte.d.ts +306 -0
  165. package/dist/integrations/svelte.d.ts.map +1 -0
  166. package/dist/integrations/svelte.js +447 -0
  167. package/dist/integrations/svelte.js.map +1 -0
  168. package/dist/registry.d.ts +94 -0
  169. package/dist/registry.d.ts.map +1 -0
  170. package/dist/registry.js +181 -0
  171. package/dist/registry.js.map +1 -0
  172. package/dist/runtime/terminal-adapter.d.ts +105 -0
  173. package/dist/runtime/terminal-adapter.d.ts.map +1 -0
  174. package/dist/runtime/terminal-adapter.js +113 -0
  175. package/dist/runtime/terminal-adapter.js.map +1 -0
  176. package/dist/step.d.ts +34 -0
  177. package/dist/step.d.ts.map +1 -0
  178. package/dist/step.js +111 -0
  179. package/dist/step.js.map +1 -0
  180. package/dist/types.d.ts +63 -0
  181. package/dist/types.d.ts.map +1 -0
  182. package/dist/types.js +6 -0
  183. package/dist/types.js.map +1 -0
  184. package/docs/MONETIZATION.md +394 -0
  185. package/docs/TERMINAL_NODE.md +588 -0
  186. package/docs/guides/canvas.md +389 -0
  187. package/docs/guides/getting-started.md +347 -0
  188. package/docs/guides/history-state-pattern.md +618 -0
  189. package/docs/guides/orchestration.md +617 -0
  190. package/docs/guides/parallel-state-pattern.md +767 -0
  191. package/docs/guides/svelte-integration.md +691 -0
  192. package/package.json +96 -0
  193. package/src/__tests__/actors.test.ts +270 -0
  194. package/src/__tests__/billing.test.ts +175 -0
  195. package/src/__tests__/cloud.test.ts +247 -0
  196. package/src/__tests__/dsl.test.ts +154 -0
  197. package/src/__tests__/edge-cases.test.ts +475 -0
  198. package/src/__tests__/engine.test.ts +137 -0
  199. package/src/__tests__/generators.test.ts +270 -0
  200. package/src/__tests__/introspection.test.ts +321 -0
  201. package/src/__tests__/protocol.test.ts +40 -0
  202. package/src/__tests__/provisioning.test.ts +162 -0
  203. package/src/__tests__/schema.test.ts +241 -0
  204. package/src/__tests__/svelte-integration.test.ts +431 -0
  205. package/src/__tests__/terminal-node.test.ts +352 -0
  206. package/src/adapters/cli.ts +175 -0
  207. package/src/cli/commands/auth.ts +271 -0
  208. package/src/cli/commands/cloud.ts +281 -0
  209. package/src/cli/commands/generate.ts +225 -0
  210. package/src/cli/index.ts +190 -0
  211. package/src/cloud/README.md +383 -0
  212. package/src/cloud/auth.ts +245 -0
  213. package/src/cloud/billing.ts +336 -0
  214. package/src/cloud/client.ts +221 -0
  215. package/src/cloud/index.ts +121 -0
  216. package/src/cloud/marketplace.ts +303 -0
  217. package/src/cloud/provisioning.ts +254 -0
  218. package/src/cloud/relay/endpoints.ts +307 -0
  219. package/src/cloud/relay/health/function.json +17 -0
  220. package/src/cloud/relay/health/index.ts +10 -0
  221. package/src/cloud/relay/host.json +15 -0
  222. package/src/cloud/relay/local.settings.json +8 -0
  223. package/src/cloud/relay/stats/function.json +17 -0
  224. package/src/cloud/relay/stats/index.ts +10 -0
  225. package/src/cloud/relay/sync/function.json +17 -0
  226. package/src/cloud/relay/sync/index.ts +10 -0
  227. package/src/cloud/relay/usage/function.json +17 -0
  228. package/src/cloud/relay/usage/index.ts +10 -0
  229. package/src/cloud/sponsors.ts +213 -0
  230. package/src/cloud/types.ts +198 -0
  231. package/src/components/README.md +125 -0
  232. package/src/components/TerminalNode.svelte +457 -0
  233. package/src/components/index.ts +46 -0
  234. package/src/core/actors.ts +205 -0
  235. package/src/core/component/generator.ts +432 -0
  236. package/src/core/engine.ts +243 -0
  237. package/src/core/introspection.ts +329 -0
  238. package/src/core/logic/generator.ts +420 -0
  239. package/src/core/pluresdb/generator.ts +229 -0
  240. package/src/core/protocol.ts +132 -0
  241. package/src/core/rules.ts +167 -0
  242. package/src/core/schema/loader.ts +247 -0
  243. package/src/core/schema/normalize.ts +322 -0
  244. package/src/core/schema/types.ts +557 -0
  245. package/src/dsl/index.ts +218 -0
  246. package/src/dsl.ts +214 -0
  247. package/src/examples/advanced-todo/App.svelte +506 -0
  248. package/src/examples/advanced-todo/README.md +371 -0
  249. package/src/examples/advanced-todo/index.ts +309 -0
  250. package/src/examples/auth-basic/index.ts +163 -0
  251. package/src/examples/cart/index.ts +259 -0
  252. package/src/examples/hero-ecommerce/index.ts +657 -0
  253. package/src/examples/svelte-counter/index.ts +168 -0
  254. package/src/flows.ts +268 -0
  255. package/src/index.ts +154 -0
  256. package/src/integrations/pluresdb.ts +93 -0
  257. package/src/integrations/svelte.ts +617 -0
  258. package/src/registry.ts +223 -0
  259. package/src/runtime/terminal-adapter.ts +175 -0
  260. package/src/step.ts +151 -0
  261. package/src/types.ts +70 -0
  262. package/templates/basic-app/README.md +147 -0
  263. package/templates/fullstack-app/README.md +279 -0
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Cloud CLI Commands
3
+ *
4
+ * CLI commands for Praxis Cloud connectivity.
5
+ */
6
+ import * as fs from "fs";
7
+ import * as path from "path";
8
+ import { authenticateWithDeviceFlow } from "../../cloud/auth.js";
9
+ import { connectRelay } from "../../cloud/client.js";
10
+ const CONFIG_FILE = ".praxis-cloud.json";
11
+ const GITHUB_CLIENT_ID = "Ov23liQxF7P0BqUxVXHk"; // Demo client ID (replace in production)
12
+ /**
13
+ * Load stored cloud configuration
14
+ */
15
+ function loadConfig() {
16
+ try {
17
+ const configPath = path.join(process.cwd(), CONFIG_FILE);
18
+ if (fs.existsSync(configPath)) {
19
+ const data = fs.readFileSync(configPath, "utf-8");
20
+ return JSON.parse(data);
21
+ }
22
+ }
23
+ catch (error) {
24
+ console.warn("Failed to load cloud configuration:", error);
25
+ }
26
+ return null;
27
+ }
28
+ /**
29
+ * Save cloud configuration
30
+ */
31
+ function saveConfig(config) {
32
+ try {
33
+ const configPath = path.join(process.cwd(), CONFIG_FILE);
34
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
35
+ console.log(`\n✓ Configuration saved to ${CONFIG_FILE}`);
36
+ }
37
+ catch (error) {
38
+ console.error("Failed to save cloud configuration:", error);
39
+ throw error;
40
+ }
41
+ }
42
+ /**
43
+ * Initialize cloud connection (wizard)
44
+ */
45
+ export async function cloudInit(options) {
46
+ console.log("\n╔═══════════════════════════════════════════════════╗");
47
+ console.log("║ Welcome to Praxis Cloud Setup Wizard ║");
48
+ console.log("╚═══════════════════════════════════════════════════╝\n");
49
+ // Check if already configured
50
+ const existingConfig = loadConfig();
51
+ if (existingConfig) {
52
+ console.log("⚠ Existing cloud configuration found.");
53
+ console.log(` Endpoint: ${existingConfig.endpoint}`);
54
+ console.log(` App ID: ${existingConfig.appId}\n`);
55
+ // In production, prompt user to confirm overwrite
56
+ }
57
+ // Get endpoint
58
+ let endpoint = options.endpoint;
59
+ if (!endpoint) {
60
+ // In production, prompt user for input
61
+ endpoint = "https://praxis-relay.azurewebsites.net";
62
+ console.log(`Using default endpoint: ${endpoint}`);
63
+ }
64
+ // Get app ID
65
+ let appId = options.appId;
66
+ if (!appId) {
67
+ // In production, prompt user for input or generate from git remote
68
+ appId = path.basename(process.cwd());
69
+ console.log(`Using app ID from directory name: ${appId}`);
70
+ }
71
+ // Authenticate with GitHub
72
+ console.log("\n🔐 Authenticating with GitHub...");
73
+ const authResult = await authenticateWithDeviceFlow(GITHUB_CLIENT_ID);
74
+ if (!authResult.success || !authResult.token) {
75
+ console.error("\n✗ Authentication failed");
76
+ process.exit(1);
77
+ }
78
+ console.log(`✓ Authenticated as ${authResult.user?.login || "unknown"}`);
79
+ // Test connection
80
+ console.log("\n🔗 Testing connection to Praxis Cloud...");
81
+ try {
82
+ const config = {
83
+ endpoint,
84
+ appId,
85
+ authToken: authResult.token,
86
+ autoSync: options.autoSync,
87
+ syncInterval: options.interval ? parseInt(options.interval) : 5000,
88
+ };
89
+ const client = await connectRelay(endpoint, config);
90
+ const health = await client.getHealth();
91
+ if (health.status === "healthy") {
92
+ console.log("✓ Connected successfully!");
93
+ console.log(` Status: ${health.status}`);
94
+ console.log(` Version: ${health.version}`);
95
+ }
96
+ else {
97
+ console.log(`⚠ Connected but service is ${health.status}`);
98
+ }
99
+ await client.disconnect();
100
+ // Save configuration
101
+ const storedConfig = {
102
+ endpoint,
103
+ appId,
104
+ authToken: authResult.token,
105
+ autoSync: options.autoSync,
106
+ syncInterval: config.syncInterval,
107
+ };
108
+ saveConfig(storedConfig);
109
+ console.log("\n✓ Praxis Cloud is now configured!");
110
+ console.log("\nNext steps:");
111
+ console.log(" • Use 'praxis cloud status' to check connection");
112
+ console.log(" • Use 'praxis cloud sync' to manually sync");
113
+ console.log(" • Use 'praxis cloud usage' to view metrics");
114
+ console.log("\nIn your code:");
115
+ console.log(' import { connectRelay } from "@plures/praxis/cloud";');
116
+ console.log(` const relay = await connectRelay("${endpoint}", {`);
117
+ console.log(` appId: "${appId}",`);
118
+ console.log(` authToken: "<your-token>"`);
119
+ console.log(" });\n");
120
+ }
121
+ catch (error) {
122
+ console.error("\n✗ Failed to connect to Praxis Cloud");
123
+ console.error(` Error: ${error instanceof Error ? error.message : String(error)}`);
124
+ process.exit(1);
125
+ }
126
+ }
127
+ /**
128
+ * Check cloud connection status
129
+ */
130
+ export async function cloudStatus() {
131
+ const config = loadConfig();
132
+ if (!config) {
133
+ console.log("\n✗ No cloud configuration found");
134
+ console.log(" Run 'praxis cloud init' to set up cloud connection\n");
135
+ process.exit(1);
136
+ }
137
+ console.log("\n╔═══════════════════════════════════════════════════╗");
138
+ console.log("║ Praxis Cloud Status ║");
139
+ console.log("╚═══════════════════════════════════════════════════╝\n");
140
+ console.log(`Endpoint: ${config.endpoint}`);
141
+ console.log(`App ID: ${config.appId}`);
142
+ console.log(`Auto Sync: ${config.autoSync ? "enabled" : "disabled"}`);
143
+ if (config.autoSync) {
144
+ console.log(`Sync Interval: ${config.syncInterval}ms`);
145
+ }
146
+ try {
147
+ const client = await connectRelay(config.endpoint, config);
148
+ const health = await client.getHealth();
149
+ console.log(`\nConnection: ✓ Connected`);
150
+ console.log(`Status: ${health.status}`);
151
+ console.log(`Version: ${health.version}`);
152
+ console.log("\nServices:");
153
+ console.log(` Relay: ${health.services.relay ? "✓" : "✗"}`);
154
+ console.log(` Event Grid: ${health.services.eventGrid ? "✓" : "✗"}`);
155
+ console.log(` Storage: ${health.services.storage ? "✓" : "✗"}`);
156
+ console.log(` Auth: ${health.services.auth ? "✓" : "✗"}`);
157
+ await client.disconnect();
158
+ }
159
+ catch (error) {
160
+ console.log(`\nConnection: ✗ Failed`);
161
+ console.log(`Error: ${error instanceof Error ? error.message : String(error)}`);
162
+ }
163
+ console.log();
164
+ }
165
+ /**
166
+ * Manually trigger cloud sync
167
+ */
168
+ export async function cloudSync() {
169
+ const config = loadConfig();
170
+ if (!config) {
171
+ console.log("\n✗ No cloud configuration found");
172
+ console.log(" Run 'praxis cloud init' to set up cloud connection\n");
173
+ process.exit(1);
174
+ }
175
+ console.log("\n🔄 Syncing to Praxis Cloud...");
176
+ try {
177
+ const client = await connectRelay(config.endpoint, config);
178
+ // In production, collect actual facts and events to sync
179
+ await client.sync({
180
+ type: "delta",
181
+ appId: config.appId,
182
+ clock: {},
183
+ facts: [],
184
+ events: [],
185
+ timestamp: Date.now(),
186
+ });
187
+ console.log("✓ Sync completed successfully\n");
188
+ await client.disconnect();
189
+ }
190
+ catch (error) {
191
+ console.error("\n✗ Sync failed");
192
+ console.error(` Error: ${error instanceof Error ? error.message : String(error)}\n`);
193
+ process.exit(1);
194
+ }
195
+ }
196
+ /**
197
+ * View cloud usage metrics
198
+ */
199
+ export async function cloudUsage() {
200
+ const config = loadConfig();
201
+ if (!config) {
202
+ console.log("\n✗ No cloud configuration found");
203
+ console.log(" Run 'praxis cloud init' to set up cloud connection\n");
204
+ process.exit(1);
205
+ }
206
+ console.log("\n╔═══════════════════════════════════════════════════╗");
207
+ console.log("║ Praxis Cloud Usage Metrics ║");
208
+ console.log("╚═══════════════════════════════════════════════════╝\n");
209
+ try {
210
+ const client = await connectRelay(config.endpoint, config);
211
+ const usage = await client.getUsage();
212
+ console.log(`App ID: ${usage.appId}`);
213
+ console.log(`\nMetrics:`);
214
+ console.log(` Total Syncs: ${usage.syncCount}`);
215
+ console.log(` Events Forwarded: ${usage.eventCount}`);
216
+ console.log(` Facts Synced: ${usage.factCount}`);
217
+ console.log(` Storage Used: ${(usage.storageBytes / 1024).toFixed(2)} KB`);
218
+ const periodDuration = usage.periodEnd - usage.periodStart;
219
+ const durationHours = (periodDuration / 1000 / 60 / 60).toFixed(1);
220
+ console.log(`\nPeriod: ${durationHours} hours`);
221
+ console.log(` From: ${new Date(usage.periodStart).toLocaleString()}`);
222
+ console.log(` To: ${new Date(usage.periodEnd).toLocaleString()}`);
223
+ console.log();
224
+ await client.disconnect();
225
+ }
226
+ catch (error) {
227
+ console.error("\n✗ Failed to retrieve usage metrics");
228
+ console.error(` Error: ${error instanceof Error ? error.message : String(error)}\n`);
229
+ process.exit(1);
230
+ }
231
+ }
232
+ //# sourceMappingURL=cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../../src/cli/commands/cloud.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Praxis Generate Command
3
+ *
4
+ * Generates code from Praxis schema files.
5
+ */
6
+ /**
7
+ * Generate command options
8
+ */
9
+ export interface GenerateOptions {
10
+ /** Schema file path */
11
+ schema?: string;
12
+ /** Generation target */
13
+ target?: 'all' | 'logic' | 'components' | 'pluresdb';
14
+ /** Output directory */
15
+ output?: string;
16
+ /** Watch mode */
17
+ watch?: boolean;
18
+ /** Auto-indexing strategy for PluresDB: 'all' (default), 'explicit', or 'none' */
19
+ autoIndex?: 'all' | 'explicit' | 'none';
20
+ }
21
+ /**
22
+ * Execute the generate command
23
+ */
24
+ export declare function generate(options: GenerateOptions): Promise<void>;
25
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAC;IACrD,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,SAAS,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;CACzC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FtE"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Praxis Generate Command
3
+ *
4
+ * Generates code from Praxis schema files.
5
+ */
6
+ import { mkdir, writeFile } from 'fs/promises';
7
+ import { dirname, resolve } from 'path';
8
+ import { loadSchemaFromFile, validateForGeneration } from '../../core/schema/loader.js';
9
+ import { normalizeSchema } from '../../core/schema/normalize.js';
10
+ import { createLogicGenerator } from '../../core/logic/generator.js';
11
+ import { createComponentGenerator } from '../../core/component/generator.js';
12
+ import { createPluresDBGenerator } from '../../core/pluresdb/generator.js';
13
+ /**
14
+ * Execute the generate command
15
+ */
16
+ export async function generate(options) {
17
+ try {
18
+ // Determine schema file path
19
+ const schemaPath = options.schema || './praxis.schema.js';
20
+ const resolvedSchemaPath = resolve(process.cwd(), schemaPath);
21
+ console.log(`Loading schema from: ${resolvedSchemaPath}`);
22
+ // Load the schema
23
+ const loadResult = await loadSchemaFromFile(resolvedSchemaPath, {
24
+ validate: true,
25
+ });
26
+ if (loadResult.errors.length > 0) {
27
+ console.error('❌ Failed to load schema:');
28
+ loadResult.errors.forEach((error) => console.error(` - ${error}`));
29
+ process.exit(1);
30
+ }
31
+ if (!loadResult.schema) {
32
+ console.error('❌ No schema found');
33
+ process.exit(1);
34
+ }
35
+ // Validate schema for generation
36
+ const generationValidation = validateForGeneration(loadResult.schema);
37
+ if (!generationValidation.valid) {
38
+ console.error('❌ Schema validation failed:');
39
+ generationValidation.errors.forEach((error) => console.error(` - ${error.message}`));
40
+ process.exit(1);
41
+ }
42
+ console.log('✓ Schema loaded successfully');
43
+ // Normalize the schema
44
+ console.log('Normalizing schema...');
45
+ const normalizedSchema = normalizeSchema(loadResult.schema);
46
+ console.log('✓ Schema normalized');
47
+ // Determine output directory
48
+ const outputDir = options.output || './generated';
49
+ const resolvedOutputDir = resolve(process.cwd(), outputDir);
50
+ // Generate based on target
51
+ const target = options.target || 'all';
52
+ let generatedFiles = 0;
53
+ if (target === 'all' || target === 'logic') {
54
+ console.log('\nGenerating logic module...');
55
+ const logicOutputDir = `${resolvedOutputDir}/logic`;
56
+ await generateLogic(normalizedSchema, logicOutputDir);
57
+ generatedFiles += 5; // facts, events, rules, engine, index
58
+ console.log(`✓ Logic module generated in ${logicOutputDir}`);
59
+ }
60
+ if (target === 'all' || target === 'components') {
61
+ console.log('\nGenerating components...');
62
+ const componentsOutputDir = `${resolvedOutputDir}/components`;
63
+ const componentCount = await generateComponents(normalizedSchema, componentsOutputDir);
64
+ generatedFiles += componentCount;
65
+ console.log(`✓ ${componentCount} components generated in ${componentsOutputDir}`);
66
+ }
67
+ if (target === 'all' || target === 'pluresdb') {
68
+ console.log('\nGenerating PluresDB configuration...');
69
+ const dbOutputDir = resolvedOutputDir;
70
+ await generatePluresDB(normalizedSchema, dbOutputDir, options.autoIndex);
71
+ generatedFiles += 1;
72
+ console.log(`✓ PluresDB config generated in ${dbOutputDir}`);
73
+ }
74
+ console.log(`\n✅ Generation complete! ${generatedFiles} files generated.`);
75
+ if (options.watch) {
76
+ console.log('\n👀 Watching for changes...');
77
+ console.log('(Watch mode not yet implemented)');
78
+ }
79
+ }
80
+ catch (error) {
81
+ console.error('❌ Generation failed:');
82
+ if (error instanceof Error) {
83
+ console.error(error.message);
84
+ if (process.env.DEBUG) {
85
+ console.error(error.stack);
86
+ }
87
+ }
88
+ else {
89
+ console.error('Unknown error');
90
+ }
91
+ process.exit(1);
92
+ }
93
+ }
94
+ /**
95
+ * Generate logic module
96
+ */
97
+ async function generateLogic(schema, outputDir) {
98
+ const generator = createLogicGenerator(outputDir);
99
+ const files = generator.generateLogic(schema);
100
+ // Write files
101
+ for (const file of files) {
102
+ await ensureDir(dirname(file.path));
103
+ await writeFile(file.path, file.content, 'utf-8');
104
+ }
105
+ }
106
+ /**
107
+ * Generate components
108
+ */
109
+ async function generateComponents(schema, outputDir) {
110
+ if (!schema.components || schema.components.length === 0) {
111
+ console.log(' No components defined in schema');
112
+ return 0;
113
+ }
114
+ const generator = createComponentGenerator(outputDir, {
115
+ typescript: true,
116
+ includeTests: false,
117
+ includeDocs: true,
118
+ });
119
+ let fileCount = 0;
120
+ for (const component of schema.components) {
121
+ // Find model if component references one
122
+ const model = component.resolvedModel || undefined;
123
+ const result = generator.generateComponent(component, model);
124
+ if (!result.success) {
125
+ console.error(` ⚠️ Failed to generate ${component.name}:`);
126
+ result.errors.forEach((error) => console.error(` - ${error.message}`));
127
+ continue;
128
+ }
129
+ // Write files
130
+ for (const file of result.files) {
131
+ await ensureDir(dirname(file.path));
132
+ await writeFile(file.path, file.content, 'utf-8');
133
+ fileCount++;
134
+ }
135
+ }
136
+ return fileCount;
137
+ }
138
+ /**
139
+ * Generate PluresDB configuration
140
+ */
141
+ async function generatePluresDB(schema, outputDir, autoIndex) {
142
+ const generator = createPluresDBGenerator(outputDir, {
143
+ dbName: schema.name.toLowerCase(),
144
+ enableSync: false,
145
+ autoIndex: autoIndex || 'all',
146
+ });
147
+ const files = generator.generateConfig(schema);
148
+ // Write files
149
+ for (const file of files) {
150
+ await ensureDir(dirname(file.path));
151
+ await writeFile(file.path, file.content, 'utf-8');
152
+ }
153
+ }
154
+ /**
155
+ * Ensure directory exists
156
+ */
157
+ async function ensureDir(dir) {
158
+ try {
159
+ await mkdir(dir, { recursive: true });
160
+ }
161
+ catch (error) {
162
+ // Only ignore if directory already exists
163
+ if (error.code !== 'EEXIST') {
164
+ throw error;
165
+ }
166
+ }
167
+ }
168
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Praxis CLI
4
+ *
5
+ * Command-line interface for the Praxis framework.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG"}
@@ -0,0 +1,179 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Praxis CLI
4
+ *
5
+ * Command-line interface for the Praxis framework.
6
+ */
7
+ import { Command } from 'commander';
8
+ import { generate } from './commands/generate.js';
9
+ const program = new Command();
10
+ program
11
+ .name('praxis')
12
+ .description('Praxis Framework - Full-stack application development')
13
+ .version('0.1.0');
14
+ // Authentication command
15
+ program
16
+ .command('login')
17
+ .description('Authenticate with GitHub for Praxis Cloud access')
18
+ .option('--token <token>', 'Use a personal access token instead of device flow')
19
+ .action(async (options) => {
20
+ try {
21
+ const { loginCommand } = await import('./commands/auth.js');
22
+ await loginCommand(options);
23
+ }
24
+ catch (error) {
25
+ console.error('Error during login:', error);
26
+ process.exit(1);
27
+ }
28
+ });
29
+ program
30
+ .command('logout')
31
+ .description('Log out from Praxis Cloud')
32
+ .action(async () => {
33
+ try {
34
+ const { logoutCommand } = await import('./commands/auth.js');
35
+ await logoutCommand();
36
+ }
37
+ catch (error) {
38
+ console.error('Error during logout:', error);
39
+ process.exit(1);
40
+ }
41
+ });
42
+ program
43
+ .command('whoami')
44
+ .description('Show current authenticated user')
45
+ .action(async () => {
46
+ try {
47
+ const { whoamiCommand } = await import('./commands/auth.js');
48
+ await whoamiCommand();
49
+ }
50
+ catch (error) {
51
+ console.error('Error checking authentication:', error);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ // Create commands
56
+ program
57
+ .command('create <type> [name]')
58
+ .description('Create a new Praxis project or component')
59
+ .option('-t, --template <template>', 'Template to use', 'basic')
60
+ .option('-d, --directory <dir>', 'Output directory')
61
+ .option('--features <features...>', 'Features to include')
62
+ .action((type, name, options) => {
63
+ console.log(`Creating ${type}: ${name || 'unnamed'}`);
64
+ console.log('Options:', options);
65
+ console.log('Note: Full implementation coming soon');
66
+ });
67
+ program
68
+ .command('generate')
69
+ .description('Generate code from schemas')
70
+ .option('-s, --schema <file>', 'Schema file path')
71
+ .option('-t, --target <target>', 'Generation target (all, logic, components, pluresdb)', 'all')
72
+ .option('-o, --output <dir>', 'Output directory', './generated')
73
+ .option('-w, --watch', 'Watch for changes')
74
+ .option('--auto-index <strategy>', 'Auto-indexing strategy for PluresDB (all, explicit, none)', 'all')
75
+ .action(async (options) => {
76
+ await generate(options);
77
+ });
78
+ program
79
+ .command('canvas [schema]')
80
+ .description('Open CodeCanvas for visual editing')
81
+ .option('-p, --port <port>', 'Port for Canvas server', '3000')
82
+ .option('-m, --mode <mode>', 'Mode (edit, view, present)', 'edit')
83
+ .action((schema, options) => {
84
+ console.log(`Opening Canvas for: ${schema || 'new schema'}`);
85
+ console.log('Options:', options);
86
+ console.log('Note: Full implementation coming soon');
87
+ });
88
+ program
89
+ .command('orchestrate')
90
+ .description('Manage orchestration and distributed coordination')
91
+ .option('-c, --config <file>', 'Orchestration configuration file')
92
+ .option('-n, --nodes <count>', 'Number of nodes', '1')
93
+ .action((options) => {
94
+ console.log('Starting orchestration...');
95
+ console.log('Options:', options);
96
+ console.log('Note: Full implementation coming soon');
97
+ });
98
+ program
99
+ .command('dev')
100
+ .description('Start development server')
101
+ .option('-p, --port <port>', 'Port number', '5173')
102
+ .action((options) => {
103
+ console.log('Starting development server...');
104
+ console.log('Options:', options);
105
+ console.log('Note: Full implementation coming soon');
106
+ });
107
+ program
108
+ .command('build')
109
+ .description('Build application for production')
110
+ .option('-o, --output <dir>', 'Output directory', './dist')
111
+ .option('--target <target>', 'Build target (web, desktop, mobile)', 'web')
112
+ .action((options) => {
113
+ console.log('Building application...');
114
+ console.log('Options:', options);
115
+ console.log('Note: Full implementation coming soon');
116
+ });
117
+ // Cloud commands
118
+ const cloudCmd = program
119
+ .command('cloud')
120
+ .description('Manage Praxis Cloud connection and synchronization');
121
+ cloudCmd
122
+ .command('init')
123
+ .description('Connect to Praxis Cloud (setup wizard)')
124
+ .option('-e, --endpoint <url>', 'Azure Function App endpoint URL')
125
+ .option('-a, --app-id <id>', 'Application identifier')
126
+ .option('--auto-sync', 'Enable automatic synchronization', false)
127
+ .option('--interval <ms>', 'Sync interval in milliseconds', '5000')
128
+ .action(async (options) => {
129
+ try {
130
+ // Dynamic import to avoid loading cloud module unless needed
131
+ const { cloudInit } = await import('./commands/cloud.js');
132
+ await cloudInit(options);
133
+ }
134
+ catch (error) {
135
+ console.error('Error initializing cloud connection:', error);
136
+ process.exit(1);
137
+ }
138
+ });
139
+ cloudCmd
140
+ .command('status')
141
+ .description('Check Praxis Cloud connection status')
142
+ .action(async () => {
143
+ try {
144
+ const { cloudStatus } = await import('./commands/cloud.js');
145
+ await cloudStatus();
146
+ }
147
+ catch (error) {
148
+ console.error('Error checking cloud status:', error);
149
+ process.exit(1);
150
+ }
151
+ });
152
+ cloudCmd
153
+ .command('sync')
154
+ .description('Manually trigger cloud synchronization')
155
+ .action(async () => {
156
+ try {
157
+ const { cloudSync } = await import('./commands/cloud.js');
158
+ await cloudSync();
159
+ }
160
+ catch (error) {
161
+ console.error('Error syncing to cloud:', error);
162
+ process.exit(1);
163
+ }
164
+ });
165
+ cloudCmd
166
+ .command('usage')
167
+ .description('View cloud usage metrics')
168
+ .action(async () => {
169
+ try {
170
+ const { cloudUsage } = await import('./commands/cloud.js');
171
+ await cloudUsage();
172
+ }
173
+ catch (error) {
174
+ console.error('Error retrieving usage metrics:', error);
175
+ process.exit(1);
176
+ }
177
+ });
178
+ program.parse();
179
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}