@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,81 @@
1
+ /**
2
+ * GitHub Sponsors API Client
3
+ *
4
+ * Client for checking GitHub Sponsors subscription status.
5
+ */
6
+ import type { Subscription } from "./billing.js";
7
+ /**
8
+ * GitHub Sponsors tier information
9
+ */
10
+ export interface SponsorTier {
11
+ /**
12
+ * Tier ID
13
+ */
14
+ id: string;
15
+ /**
16
+ * Tier name
17
+ */
18
+ name: string;
19
+ /**
20
+ * Monthly price in cents
21
+ */
22
+ monthlyPriceInCents: number;
23
+ /**
24
+ * Tier description
25
+ */
26
+ description?: string;
27
+ /**
28
+ * Whether this is a one-time sponsorship
29
+ */
30
+ isOneTime: boolean;
31
+ }
32
+ /**
33
+ * Sponsorship information
34
+ */
35
+ export interface Sponsorship {
36
+ /**
37
+ * Sponsor login
38
+ */
39
+ sponsorLogin: string;
40
+ /**
41
+ * Sponsor ID
42
+ */
43
+ sponsorId: number;
44
+ /**
45
+ * Tier information
46
+ */
47
+ tier: SponsorTier;
48
+ /**
49
+ * Creation date
50
+ */
51
+ createdAt: string;
52
+ /**
53
+ * Whether sponsorship is active
54
+ */
55
+ isActive: boolean;
56
+ }
57
+ /**
58
+ * GitHub Sponsors API client
59
+ */
60
+ export declare class GitHubSponsorsClient {
61
+ private token;
62
+ private accountLogin;
63
+ constructor(token: string, accountLogin: string);
64
+ /**
65
+ * Get current user's sponsorship of the Praxis account
66
+ */
67
+ getSponsorship(userLogin: string): Promise<Sponsorship | null>;
68
+ /**
69
+ * Get subscription from sponsorship
70
+ */
71
+ getSubscription(userLogin: string): Promise<Subscription>;
72
+ /**
73
+ * Check if user is a sponsor
74
+ */
75
+ isSponsor(userLogin: string): Promise<boolean>;
76
+ }
77
+ /**
78
+ * Create a GitHub Sponsors client
79
+ */
80
+ export declare function createSponsorsClient(token: string, accountLogin?: string): GitHubSponsorsClient;
81
+ //# sourceMappingURL=sponsors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sponsors.d.ts","sourceRoot":"","sources":["../../src/cloud/sponsors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAS;gBAEjB,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAK/C;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA+FpE;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAa/D;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,MAAiB,GAC9B,oBAAoB,CAEtB"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * GitHub Sponsors API Client
3
+ *
4
+ * Client for checking GitHub Sponsors subscription status.
5
+ */
6
+ import { createSponsorSubscription, createFreeSubscription } from "./billing.js";
7
+ /**
8
+ * GitHub Sponsors API client
9
+ */
10
+ export class GitHubSponsorsClient {
11
+ token;
12
+ accountLogin;
13
+ constructor(token, accountLogin) {
14
+ this.token = token;
15
+ this.accountLogin = accountLogin;
16
+ }
17
+ /**
18
+ * Get current user's sponsorship of the Praxis account
19
+ */
20
+ async getSponsorship(userLogin) {
21
+ try {
22
+ const query = `
23
+ query($accountLogin: String!, $userLogin: String!) {
24
+ user(login: $userLogin) {
25
+ sponsorshipForViewerAsSponsor(activeOnly: true) {
26
+ tier {
27
+ id
28
+ name
29
+ monthlyPriceInCents
30
+ description
31
+ isOneTime
32
+ }
33
+ createdAt
34
+ isActive
35
+ }
36
+ sponsorshipsAsSponsor(first: 100, activeOnly: true) {
37
+ nodes {
38
+ sponsorable {
39
+ ... on User {
40
+ login
41
+ }
42
+ ... on Organization {
43
+ login
44
+ }
45
+ }
46
+ tier {
47
+ id
48
+ name
49
+ monthlyPriceInCents
50
+ description
51
+ isOneTime
52
+ }
53
+ createdAt
54
+ isActive
55
+ }
56
+ }
57
+ }
58
+ }
59
+ `;
60
+ const response = await fetch("https://api.github.com/graphql", {
61
+ method: "POST",
62
+ headers: {
63
+ Authorization: `Bearer ${this.token}`,
64
+ "Content-Type": "application/json",
65
+ },
66
+ body: JSON.stringify({
67
+ query,
68
+ variables: {
69
+ accountLogin: this.accountLogin,
70
+ userLogin,
71
+ },
72
+ }),
73
+ });
74
+ if (!response.ok) {
75
+ throw new Error(`GitHub API error: ${response.statusText}`);
76
+ }
77
+ const data = await response.json();
78
+ if (data.errors) {
79
+ throw new Error(`GraphQL error: ${JSON.stringify(data.errors)}`);
80
+ }
81
+ // Check if user sponsors the Praxis account
82
+ const sponsorships = data.data?.user?.sponsorshipsAsSponsor?.nodes || [];
83
+ const praxisSponsorship = sponsorships.find((s) => s.sponsorable?.login === this.accountLogin);
84
+ if (!praxisSponsorship) {
85
+ return null;
86
+ }
87
+ return {
88
+ sponsorLogin: userLogin,
89
+ sponsorId: data.data.user.id,
90
+ tier: {
91
+ id: praxisSponsorship.tier.id,
92
+ name: praxisSponsorship.tier.name,
93
+ monthlyPriceInCents: praxisSponsorship.tier.monthlyPriceInCents,
94
+ description: praxisSponsorship.tier.description,
95
+ isOneTime: praxisSponsorship.tier.isOneTime,
96
+ },
97
+ createdAt: praxisSponsorship.createdAt,
98
+ isActive: praxisSponsorship.isActive,
99
+ };
100
+ }
101
+ catch (error) {
102
+ console.error("Failed to get sponsorship:", error);
103
+ return null;
104
+ }
105
+ }
106
+ /**
107
+ * Get subscription from sponsorship
108
+ */
109
+ async getSubscription(userLogin) {
110
+ const sponsorship = await this.getSponsorship(userLogin);
111
+ if (!sponsorship || !sponsorship.isActive) {
112
+ return createFreeSubscription();
113
+ }
114
+ return createSponsorSubscription(sponsorship.tier.name, sponsorship.tier.monthlyPriceInCents);
115
+ }
116
+ /**
117
+ * Check if user is a sponsor
118
+ */
119
+ async isSponsor(userLogin) {
120
+ const sponsorship = await this.getSponsorship(userLogin);
121
+ return sponsorship !== null && sponsorship.isActive;
122
+ }
123
+ }
124
+ /**
125
+ * Create a GitHub Sponsors client
126
+ */
127
+ export function createSponsorsClient(token, accountLogin = "plures") {
128
+ return new GitHubSponsorsClient(token, accountLogin);
129
+ }
130
+ //# sourceMappingURL=sponsors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sponsors.js","sourceRoot":"","sources":["../../src/cloud/sponsors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Cloud Relay Types
3
+ *
4
+ * Type definitions for Praxis Cloud Relay service.
5
+ */
6
+ import type { PraxisFact, PraxisEvent } from "../core/protocol.js";
7
+ /**
8
+ * Cloud relay configuration
9
+ */
10
+ export interface CloudRelayConfig {
11
+ /**
12
+ * Azure Function App endpoint URL
13
+ */
14
+ endpoint: string;
15
+ /**
16
+ * GitHub OAuth token for authentication
17
+ */
18
+ authToken?: string;
19
+ /**
20
+ * Application identifier
21
+ */
22
+ appId: string;
23
+ /**
24
+ * Enable automatic sync
25
+ */
26
+ autoSync?: boolean;
27
+ /**
28
+ * Sync interval in milliseconds (default: 5000)
29
+ */
30
+ syncInterval?: number;
31
+ /**
32
+ * Enable encryption for blob storage
33
+ */
34
+ encryption?: boolean;
35
+ }
36
+ /**
37
+ * Relay connection status
38
+ */
39
+ export interface RelayStatus {
40
+ connected: boolean;
41
+ lastSync?: number;
42
+ endpoint: string;
43
+ appId: string;
44
+ }
45
+ /**
46
+ * CRDT sync message
47
+ */
48
+ export interface CRDTSyncMessage {
49
+ /**
50
+ * Message type
51
+ */
52
+ type: "sync" | "delta" | "snapshot";
53
+ /**
54
+ * Application identifier
55
+ */
56
+ appId: string;
57
+ /**
58
+ * Vector clock for causality tracking
59
+ */
60
+ clock: Record<string, number>;
61
+ /**
62
+ * Facts to sync
63
+ */
64
+ facts?: PraxisFact[];
65
+ /**
66
+ * Events to forward
67
+ */
68
+ events?: PraxisEvent[];
69
+ /**
70
+ * Timestamp
71
+ */
72
+ timestamp: number;
73
+ }
74
+ /**
75
+ * Usage metrics
76
+ */
77
+ export interface UsageMetrics {
78
+ /**
79
+ * Application identifier
80
+ */
81
+ appId: string;
82
+ /**
83
+ * Number of sync operations
84
+ */
85
+ syncCount: number;
86
+ /**
87
+ * Number of events forwarded
88
+ */
89
+ eventCount: number;
90
+ /**
91
+ * Number of facts synced
92
+ */
93
+ factCount: number;
94
+ /**
95
+ * Storage used in bytes
96
+ */
97
+ storageBytes: number;
98
+ /**
99
+ * Period start timestamp
100
+ */
101
+ periodStart: number;
102
+ /**
103
+ * Period end timestamp
104
+ */
105
+ periodEnd: number;
106
+ }
107
+ /**
108
+ * Health check response
109
+ */
110
+ export interface HealthCheckResponse {
111
+ status: "healthy" | "degraded" | "unhealthy";
112
+ timestamp: number;
113
+ version: string;
114
+ services: {
115
+ relay: boolean;
116
+ eventGrid: boolean;
117
+ storage: boolean;
118
+ auth: boolean;
119
+ };
120
+ }
121
+ /**
122
+ * Cloud relay client interface
123
+ */
124
+ export interface CloudRelayClient {
125
+ /**
126
+ * Connect to the relay
127
+ */
128
+ connect(): Promise<void>;
129
+ /**
130
+ * Disconnect from the relay
131
+ */
132
+ disconnect(): Promise<void>;
133
+ /**
134
+ * Sync facts and events
135
+ */
136
+ sync(message: CRDTSyncMessage): Promise<void>;
137
+ /**
138
+ * Get usage metrics
139
+ */
140
+ getUsage(): Promise<UsageMetrics>;
141
+ /**
142
+ * Get health status
143
+ */
144
+ getHealth(): Promise<HealthCheckResponse>;
145
+ /**
146
+ * Get connection status
147
+ */
148
+ getStatus(): RelayStatus;
149
+ }
150
+ /**
151
+ * GitHub OAuth user info
152
+ */
153
+ export interface GitHubUser {
154
+ id: number;
155
+ login: string;
156
+ email?: string;
157
+ name?: string;
158
+ avatarUrl?: string;
159
+ }
160
+ /**
161
+ * Authentication result
162
+ */
163
+ export interface AuthResult {
164
+ success: boolean;
165
+ token?: string;
166
+ user?: GitHubUser;
167
+ expiresAt?: number;
168
+ }
169
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cloud/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Cloud Relay Types
3
+ *
4
+ * Type definitions for Praxis Cloud Relay service.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cloud/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Praxis Svelte Components
3
+ *
4
+ * Exports types and interfaces for Svelte components in Praxis/RuneBook applications.
5
+ *
6
+ * Note: Svelte components (.svelte files) must be imported directly in Svelte applications.
7
+ * This module provides TypeScript types for component props.
8
+ *
9
+ * @example
10
+ * ```svelte
11
+ * <script>
12
+ * import { TerminalNode } from '@plures/praxis/components/TerminalNode.svelte';
13
+ * </script>
14
+ * ```
15
+ */
16
+ import type { TerminalAdapter } from '../runtime/terminal-adapter.js';
17
+ /**
18
+ * Props for TerminalNode Svelte component
19
+ */
20
+ export interface TerminalNodeProps {
21
+ /** Terminal adapter instance (required) */
22
+ adapter: TerminalAdapter;
23
+ /** X position on canvas */
24
+ x?: number;
25
+ /** Y position on canvas */
26
+ y?: number;
27
+ /** Component width in pixels */
28
+ width?: number;
29
+ /** Component height in pixels */
30
+ height?: number;
31
+ /** Enable drag to move */
32
+ draggable?: boolean;
33
+ /** Enable resize handle */
34
+ resizable?: boolean;
35
+ /** Show context menu */
36
+ showContextMenu?: boolean;
37
+ }
38
+ /**
39
+ * Re-export TerminalAdapter for convenience
40
+ */
41
+ export type { TerminalAdapter } from '../runtime/terminal-adapter.js';
42
+ export { createTerminalAdapter } from '../runtime/terminal-adapter.js';
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,OAAO,EAAE,eAAe,CAAC;IACzB,2BAA2B;IAC3B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Praxis Svelte Components
3
+ *
4
+ * Exports types and interfaces for Svelte components in Praxis/RuneBook applications.
5
+ *
6
+ * Note: Svelte components (.svelte files) must be imported directly in Svelte applications.
7
+ * This module provides TypeScript types for component props.
8
+ *
9
+ * @example
10
+ * ```svelte
11
+ * <script>
12
+ * import { TerminalNode } from '@plures/praxis/components/TerminalNode.svelte';
13
+ * </script>
14
+ * ```
15
+ */
16
+ export { createTerminalAdapter } from '../runtime/terminal-adapter.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA8BH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Actors System
3
+ *
4
+ * Actors are effectful units that:
5
+ * - Observe Praxis logic state
6
+ * - Perform side effects (network I/O, database operations, timers, etc.)
7
+ * - Feed new events/facts back into the engine
8
+ *
9
+ * Actors provide the bridge between pure logic and the effectful world.
10
+ */
11
+ import type { LogicEngine } from "./engine.js";
12
+ import type { PraxisEvent, PraxisState } from "./protocol.js";
13
+ /**
14
+ * Actor interface
15
+ *
16
+ * An actor observes state changes and can:
17
+ * - React to state changes (onStateChange)
18
+ * - Perform initialization (onStart)
19
+ * - Perform cleanup (onStop)
20
+ */
21
+ export interface Actor<TContext = unknown> {
22
+ /** Unique identifier for the actor */
23
+ id: string;
24
+ /** Human-readable description */
25
+ description: string;
26
+ /** Called when the actor is started */
27
+ onStart?: (engine: LogicEngine<TContext>) => void | Promise<void>;
28
+ /** Called when state changes */
29
+ onStateChange?: (state: Readonly<PraxisState & {
30
+ context: TContext;
31
+ }>, engine: LogicEngine<TContext>) => void | Promise<void>;
32
+ /** Called when the actor is stopped */
33
+ onStop?: () => void | Promise<void>;
34
+ }
35
+ /**
36
+ * Actor manager
37
+ *
38
+ * Manages the lifecycle of actors and coordinates their interaction with the engine.
39
+ */
40
+ export declare class ActorManager<TContext = unknown> {
41
+ private actors;
42
+ private activeActors;
43
+ private engine;
44
+ /**
45
+ * Register an actor
46
+ */
47
+ register(actor: Actor<TContext>): void;
48
+ /**
49
+ * Unregister an actor
50
+ */
51
+ unregister(actorId: string): void;
52
+ /**
53
+ * Attach the actor manager to an engine
54
+ */
55
+ attachEngine(engine: LogicEngine<TContext>): void;
56
+ /**
57
+ * Start an actor
58
+ */
59
+ start(actorId: string): Promise<void>;
60
+ /**
61
+ * Stop an actor
62
+ */
63
+ stop(actorId: string): Promise<void>;
64
+ /**
65
+ * Start all registered actors
66
+ */
67
+ startAll(): Promise<void>;
68
+ /**
69
+ * Stop all active actors
70
+ */
71
+ stopAll(): Promise<void>;
72
+ /**
73
+ * Notify active actors of a state change
74
+ */
75
+ notifyStateChange(state: Readonly<PraxisState & {
76
+ context: TContext;
77
+ }>): Promise<void>;
78
+ /**
79
+ * Get all registered actor IDs
80
+ */
81
+ getActorIds(): string[];
82
+ /**
83
+ * Get all active actor IDs
84
+ */
85
+ getActiveActorIds(): string[];
86
+ /**
87
+ * Check if an actor is active
88
+ */
89
+ isActive(actorId: string): boolean;
90
+ }
91
+ /**
92
+ * Helper to create a simple actor that dispatches events on a timer
93
+ */
94
+ export declare function createTimerActor<TContext = unknown>(id: string, intervalMs: number, createEvent: () => PraxisEvent): Actor<TContext>;
95
+ //# sourceMappingURL=actors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../../src/core/actors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK,CAAC,QAAQ,GAAG,OAAO;IACvC,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,gCAAgC;IAChC,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,QAAQ,CAAC,WAAW,GAAG;QAAE,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC,EACpD,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,KAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED;;;;GAIG;AACH,qBAAa,YAAY,CAAC,QAAQ,GAAG,OAAO;IAC1C,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,MAAM,CAAsC;IAEpD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;IAOtC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOjC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAIjD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,GAAG;QAAE,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5F;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGnC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,GAAG,OAAO,EACjD,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,WAAW,GAC7B,KAAK,CAAC,QAAQ,CAAC,CAkBjB"}