@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.
- package/FRAMEWORK.md +420 -0
- package/LICENSE +21 -0
- package/README.md +1310 -0
- package/dist/adapters/cli.d.ts +43 -0
- package/dist/adapters/cli.d.ts.map +1 -0
- package/dist/adapters/cli.js +126 -0
- package/dist/adapters/cli.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +26 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +233 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/cloud.d.ts +27 -0
- package/dist/cli/commands/cloud.d.ts.map +1 -0
- package/dist/cli/commands/cloud.js +232 -0
- package/dist/cli/commands/cloud.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +25 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +168 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +179 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cloud/auth.d.ts +51 -0
- package/dist/cloud/auth.d.ts.map +1 -0
- package/dist/cloud/auth.js +194 -0
- package/dist/cloud/auth.js.map +1 -0
- package/dist/cloud/billing.d.ts +184 -0
- package/dist/cloud/billing.d.ts.map +1 -0
- package/dist/cloud/billing.js +179 -0
- package/dist/cloud/billing.js.map +1 -0
- package/dist/cloud/client.d.ts +39 -0
- package/dist/cloud/client.d.ts.map +1 -0
- package/dist/cloud/client.js +176 -0
- package/dist/cloud/client.js.map +1 -0
- package/dist/cloud/index.d.ts +44 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +44 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/marketplace.d.ts +166 -0
- package/dist/cloud/marketplace.d.ts.map +1 -0
- package/dist/cloud/marketplace.js +159 -0
- package/dist/cloud/marketplace.js.map +1 -0
- package/dist/cloud/provisioning.d.ts +110 -0
- package/dist/cloud/provisioning.d.ts.map +1 -0
- package/dist/cloud/provisioning.js +148 -0
- package/dist/cloud/provisioning.js.map +1 -0
- package/dist/cloud/relay/endpoints.d.ts +62 -0
- package/dist/cloud/relay/endpoints.d.ts.map +1 -0
- package/dist/cloud/relay/endpoints.js +217 -0
- package/dist/cloud/relay/endpoints.js.map +1 -0
- package/dist/cloud/relay/health/index.d.ts +5 -0
- package/dist/cloud/relay/health/index.d.ts.map +1 -0
- package/dist/cloud/relay/health/index.js +9 -0
- package/dist/cloud/relay/health/index.js.map +1 -0
- package/dist/cloud/relay/stats/index.d.ts +5 -0
- package/dist/cloud/relay/stats/index.d.ts.map +1 -0
- package/dist/cloud/relay/stats/index.js +9 -0
- package/dist/cloud/relay/stats/index.js.map +1 -0
- package/dist/cloud/relay/sync/index.d.ts +5 -0
- package/dist/cloud/relay/sync/index.d.ts.map +1 -0
- package/dist/cloud/relay/sync/index.js +9 -0
- package/dist/cloud/relay/sync/index.js.map +1 -0
- package/dist/cloud/relay/usage/index.d.ts +5 -0
- package/dist/cloud/relay/usage/index.d.ts.map +1 -0
- package/dist/cloud/relay/usage/index.js +9 -0
- package/dist/cloud/relay/usage/index.js.map +1 -0
- package/dist/cloud/sponsors.d.ts +81 -0
- package/dist/cloud/sponsors.d.ts.map +1 -0
- package/dist/cloud/sponsors.js +130 -0
- package/dist/cloud/sponsors.js.map +1 -0
- package/dist/cloud/types.d.ts +169 -0
- package/dist/cloud/types.d.ts.map +1 -0
- package/dist/cloud/types.js +7 -0
- package/dist/cloud/types.js.map +1 -0
- package/dist/components/index.d.ts +43 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/index.js.map +1 -0
- package/dist/core/actors.d.ts +95 -0
- package/dist/core/actors.d.ts.map +1 -0
- package/dist/core/actors.js +158 -0
- package/dist/core/actors.js.map +1 -0
- package/dist/core/component/generator.d.ts +122 -0
- package/dist/core/component/generator.d.ts.map +1 -0
- package/dist/core/component/generator.js +307 -0
- package/dist/core/component/generator.js.map +1 -0
- package/dist/core/engine.d.ts +92 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +199 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/introspection.d.ts +141 -0
- package/dist/core/introspection.d.ts.map +1 -0
- package/dist/core/introspection.js +208 -0
- package/dist/core/introspection.js.map +1 -0
- package/dist/core/logic/generator.d.ts +76 -0
- package/dist/core/logic/generator.d.ts.map +1 -0
- package/dist/core/logic/generator.js +339 -0
- package/dist/core/logic/generator.js.map +1 -0
- package/dist/core/pluresdb/generator.d.ts +58 -0
- package/dist/core/pluresdb/generator.d.ts.map +1 -0
- package/dist/core/pluresdb/generator.js +162 -0
- package/dist/core/pluresdb/generator.js.map +1 -0
- package/dist/core/protocol.d.ts +121 -0
- package/dist/core/protocol.d.ts.map +1 -0
- package/dist/core/protocol.js +46 -0
- package/dist/core/protocol.js.map +1 -0
- package/dist/core/rules.d.ts +120 -0
- package/dist/core/rules.d.ts.map +1 -0
- package/dist/core/rules.js +81 -0
- package/dist/core/rules.js.map +1 -0
- package/dist/core/schema/loader.d.ts +47 -0
- package/dist/core/schema/loader.d.ts.map +1 -0
- package/dist/core/schema/loader.js +189 -0
- package/dist/core/schema/loader.js.map +1 -0
- package/dist/core/schema/normalize.d.ts +72 -0
- package/dist/core/schema/normalize.d.ts.map +1 -0
- package/dist/core/schema/normalize.js +190 -0
- package/dist/core/schema/normalize.js.map +1 -0
- package/dist/core/schema/types.d.ts +370 -0
- package/dist/core/schema/types.d.ts.map +1 -0
- package/dist/core/schema/types.js +161 -0
- package/dist/core/schema/types.js.map +1 -0
- package/dist/dsl/index.d.ts +152 -0
- package/dist/dsl/index.d.ts.map +1 -0
- package/dist/dsl/index.js +132 -0
- package/dist/dsl/index.js.map +1 -0
- package/dist/dsl.d.ts +124 -0
- package/dist/dsl.d.ts.map +1 -0
- package/dist/dsl.js +130 -0
- package/dist/dsl.js.map +1 -0
- package/dist/examples/advanced-todo/index.d.ts +55 -0
- package/dist/examples/advanced-todo/index.d.ts.map +1 -0
- package/dist/examples/advanced-todo/index.js +222 -0
- package/dist/examples/advanced-todo/index.js.map +1 -0
- package/dist/examples/auth-basic/index.d.ts +17 -0
- package/dist/examples/auth-basic/index.d.ts.map +1 -0
- package/dist/examples/auth-basic/index.js +122 -0
- package/dist/examples/auth-basic/index.js.map +1 -0
- package/dist/examples/cart/index.d.ts +19 -0
- package/dist/examples/cart/index.d.ts.map +1 -0
- package/dist/examples/cart/index.js +202 -0
- package/dist/examples/cart/index.js.map +1 -0
- package/dist/examples/hero-ecommerce/index.d.ts +39 -0
- package/dist/examples/hero-ecommerce/index.d.ts.map +1 -0
- package/dist/examples/hero-ecommerce/index.js +506 -0
- package/dist/examples/hero-ecommerce/index.js.map +1 -0
- package/dist/examples/svelte-counter/index.d.ts +31 -0
- package/dist/examples/svelte-counter/index.d.ts.map +1 -0
- package/dist/examples/svelte-counter/index.js +123 -0
- package/dist/examples/svelte-counter/index.js.map +1 -0
- package/dist/flows.d.ts +125 -0
- package/dist/flows.d.ts.map +1 -0
- package/dist/flows.js +160 -0
- package/dist/flows.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/pluresdb.d.ts +56 -0
- package/dist/integrations/pluresdb.d.ts.map +1 -0
- package/dist/integrations/pluresdb.js +46 -0
- package/dist/integrations/pluresdb.js.map +1 -0
- package/dist/integrations/svelte.d.ts +306 -0
- package/dist/integrations/svelte.d.ts.map +1 -0
- package/dist/integrations/svelte.js +447 -0
- package/dist/integrations/svelte.js.map +1 -0
- package/dist/registry.d.ts +94 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +181 -0
- package/dist/registry.js.map +1 -0
- package/dist/runtime/terminal-adapter.d.ts +105 -0
- package/dist/runtime/terminal-adapter.d.ts.map +1 -0
- package/dist/runtime/terminal-adapter.js +113 -0
- package/dist/runtime/terminal-adapter.js.map +1 -0
- package/dist/step.d.ts +34 -0
- package/dist/step.d.ts.map +1 -0
- package/dist/step.js +111 -0
- package/dist/step.js.map +1 -0
- package/dist/types.d.ts +63 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/docs/MONETIZATION.md +394 -0
- package/docs/TERMINAL_NODE.md +588 -0
- package/docs/guides/canvas.md +389 -0
- package/docs/guides/getting-started.md +347 -0
- package/docs/guides/history-state-pattern.md +618 -0
- package/docs/guides/orchestration.md +617 -0
- package/docs/guides/parallel-state-pattern.md +767 -0
- package/docs/guides/svelte-integration.md +691 -0
- package/package.json +96 -0
- package/src/__tests__/actors.test.ts +270 -0
- package/src/__tests__/billing.test.ts +175 -0
- package/src/__tests__/cloud.test.ts +247 -0
- package/src/__tests__/dsl.test.ts +154 -0
- package/src/__tests__/edge-cases.test.ts +475 -0
- package/src/__tests__/engine.test.ts +137 -0
- package/src/__tests__/generators.test.ts +270 -0
- package/src/__tests__/introspection.test.ts +321 -0
- package/src/__tests__/protocol.test.ts +40 -0
- package/src/__tests__/provisioning.test.ts +162 -0
- package/src/__tests__/schema.test.ts +241 -0
- package/src/__tests__/svelte-integration.test.ts +431 -0
- package/src/__tests__/terminal-node.test.ts +352 -0
- package/src/adapters/cli.ts +175 -0
- package/src/cli/commands/auth.ts +271 -0
- package/src/cli/commands/cloud.ts +281 -0
- package/src/cli/commands/generate.ts +225 -0
- package/src/cli/index.ts +190 -0
- package/src/cloud/README.md +383 -0
- package/src/cloud/auth.ts +245 -0
- package/src/cloud/billing.ts +336 -0
- package/src/cloud/client.ts +221 -0
- package/src/cloud/index.ts +121 -0
- package/src/cloud/marketplace.ts +303 -0
- package/src/cloud/provisioning.ts +254 -0
- package/src/cloud/relay/endpoints.ts +307 -0
- package/src/cloud/relay/health/function.json +17 -0
- package/src/cloud/relay/health/index.ts +10 -0
- package/src/cloud/relay/host.json +15 -0
- package/src/cloud/relay/local.settings.json +8 -0
- package/src/cloud/relay/stats/function.json +17 -0
- package/src/cloud/relay/stats/index.ts +10 -0
- package/src/cloud/relay/sync/function.json +17 -0
- package/src/cloud/relay/sync/index.ts +10 -0
- package/src/cloud/relay/usage/function.json +17 -0
- package/src/cloud/relay/usage/index.ts +10 -0
- package/src/cloud/sponsors.ts +213 -0
- package/src/cloud/types.ts +198 -0
- package/src/components/README.md +125 -0
- package/src/components/TerminalNode.svelte +457 -0
- package/src/components/index.ts +46 -0
- package/src/core/actors.ts +205 -0
- package/src/core/component/generator.ts +432 -0
- package/src/core/engine.ts +243 -0
- package/src/core/introspection.ts +329 -0
- package/src/core/logic/generator.ts +420 -0
- package/src/core/pluresdb/generator.ts +229 -0
- package/src/core/protocol.ts +132 -0
- package/src/core/rules.ts +167 -0
- package/src/core/schema/loader.ts +247 -0
- package/src/core/schema/normalize.ts +322 -0
- package/src/core/schema/types.ts +557 -0
- package/src/dsl/index.ts +218 -0
- package/src/dsl.ts +214 -0
- package/src/examples/advanced-todo/App.svelte +506 -0
- package/src/examples/advanced-todo/README.md +371 -0
- package/src/examples/advanced-todo/index.ts +309 -0
- package/src/examples/auth-basic/index.ts +163 -0
- package/src/examples/cart/index.ts +259 -0
- package/src/examples/hero-ecommerce/index.ts +657 -0
- package/src/examples/svelte-counter/index.ts +168 -0
- package/src/flows.ts +268 -0
- package/src/index.ts +154 -0
- package/src/integrations/pluresdb.ts +93 -0
- package/src/integrations/svelte.ts +617 -0
- package/src/registry.ts +223 -0
- package/src/runtime/terminal-adapter.ts +175 -0
- package/src/step.ts +151 -0
- package/src/types.ts +70 -0
- package/templates/basic-app/README.md +147 -0
- package/templates/fullstack-app/README.md +279 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Praxis CLI Adapter
|
|
4
|
+
*
|
|
5
|
+
* JSON-based CLI interface for cross-language Praxis engine invocation.
|
|
6
|
+
* Reads JSON from stdin, processes through Praxis engine, outputs JSON to stdout.
|
|
7
|
+
*
|
|
8
|
+
* This enables PowerShell, Python, and other languages to use Praxis.
|
|
9
|
+
*/
|
|
10
|
+
import { PraxisRegistry, type PraxisState, type PraxisEvent, type PraxisStepResult } from "../index.js";
|
|
11
|
+
interface CLIInput {
|
|
12
|
+
state: PraxisState;
|
|
13
|
+
events: PraxisEvent[];
|
|
14
|
+
configPath: string;
|
|
15
|
+
}
|
|
16
|
+
interface RegistryConfig {
|
|
17
|
+
rules: Array<{
|
|
18
|
+
id: string;
|
|
19
|
+
description: string;
|
|
20
|
+
impl?: string;
|
|
21
|
+
}>;
|
|
22
|
+
constraints: Array<{
|
|
23
|
+
id: string;
|
|
24
|
+
description: string;
|
|
25
|
+
impl?: string;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load registry configuration from JSON file
|
|
30
|
+
*/
|
|
31
|
+
declare function loadRegistryConfig(configPath: string): RegistryConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Create a registry from configuration
|
|
34
|
+
* Note: For simplicity, this uses eval for rule implementations.
|
|
35
|
+
* In production, use a safer approach like loading from pre-compiled modules.
|
|
36
|
+
*/
|
|
37
|
+
declare function createRegistryFromConfig<TContext = unknown>(config: RegistryConfig): PraxisRegistry<TContext>;
|
|
38
|
+
/**
|
|
39
|
+
* Process a step through the Praxis engine
|
|
40
|
+
*/
|
|
41
|
+
declare function processStep(input: CLIInput): PraxisStepResult;
|
|
42
|
+
export { processStep, loadRegistryConfig, createRegistryFromConfig };
|
|
43
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/adapters/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAGH,OAAO,EAEL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAGtB,MAAM,aAAa,CAAC;AAErB,UAAU,QAAQ;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QAEpB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,WAAW,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAO9D;AAED;;;;GAIG;AACH,iBAAS,wBAAwB,CAAC,QAAQ,GAAG,OAAO,EAClD,MAAM,EAAE,cAAc,GACrB,cAAc,CAAC,QAAQ,CAAC,CAgD1B;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,gBAAgB,CAetD;AA8CD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Praxis CLI Adapter
|
|
4
|
+
*
|
|
5
|
+
* JSON-based CLI interface for cross-language Praxis engine invocation.
|
|
6
|
+
* Reads JSON from stdin, processes through Praxis engine, outputs JSON to stdout.
|
|
7
|
+
*
|
|
8
|
+
* This enables PowerShell, Python, and other languages to use Praxis.
|
|
9
|
+
*/
|
|
10
|
+
import * as fs from "fs";
|
|
11
|
+
import { createPraxisEngine, PraxisRegistry, } from "../index.js";
|
|
12
|
+
/**
|
|
13
|
+
* Load registry configuration from JSON file
|
|
14
|
+
*/
|
|
15
|
+
function loadRegistryConfig(configPath) {
|
|
16
|
+
try {
|
|
17
|
+
const content = fs.readFileSync(configPath, "utf-8");
|
|
18
|
+
return JSON.parse(content);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
throw new Error(`Failed to load registry config from ${configPath}: ${error}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create a registry from configuration
|
|
26
|
+
* Note: For simplicity, this uses eval for rule implementations.
|
|
27
|
+
* In production, use a safer approach like loading from pre-compiled modules.
|
|
28
|
+
*/
|
|
29
|
+
function createRegistryFromConfig(config) {
|
|
30
|
+
const registry = new PraxisRegistry();
|
|
31
|
+
// Register rules
|
|
32
|
+
for (const ruleConfig of config.rules) {
|
|
33
|
+
if (!ruleConfig.impl) {
|
|
34
|
+
throw new Error(`Rule ${ruleConfig.id} missing implementation`);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
// Eval the implementation (for demo purposes)
|
|
38
|
+
// In production, load from modules or use a safer evaluation method
|
|
39
|
+
const impl = eval(ruleConfig.impl);
|
|
40
|
+
const rule = {
|
|
41
|
+
id: ruleConfig.id,
|
|
42
|
+
description: ruleConfig.description,
|
|
43
|
+
impl,
|
|
44
|
+
};
|
|
45
|
+
registry.registerRule(rule);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw new Error(`Failed to load rule ${ruleConfig.id}: ${error}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Register constraints
|
|
52
|
+
for (const constraintConfig of config.constraints) {
|
|
53
|
+
if (!constraintConfig.impl) {
|
|
54
|
+
throw new Error(`Constraint ${constraintConfig.id} missing implementation`);
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const impl = eval(constraintConfig.impl);
|
|
58
|
+
const constraint = {
|
|
59
|
+
id: constraintConfig.id,
|
|
60
|
+
description: constraintConfig.description,
|
|
61
|
+
impl,
|
|
62
|
+
};
|
|
63
|
+
registry.registerConstraint(constraint);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
throw new Error(`Failed to load constraint ${constraintConfig.id}: ${error}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return registry;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Process a step through the Praxis engine
|
|
73
|
+
*/
|
|
74
|
+
function processStep(input) {
|
|
75
|
+
// Load registry configuration
|
|
76
|
+
const config = loadRegistryConfig(input.configPath);
|
|
77
|
+
const registry = createRegistryFromConfig(config);
|
|
78
|
+
// Create engine with state from input
|
|
79
|
+
const engine = createPraxisEngine({
|
|
80
|
+
initialContext: input.state.context,
|
|
81
|
+
initialFacts: input.state.facts,
|
|
82
|
+
initialMeta: input.state.meta,
|
|
83
|
+
registry,
|
|
84
|
+
});
|
|
85
|
+
// Process events
|
|
86
|
+
return engine.step(input.events);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Main CLI entry point
|
|
90
|
+
*/
|
|
91
|
+
async function main() {
|
|
92
|
+
try {
|
|
93
|
+
// Read input from stdin
|
|
94
|
+
let inputData = "";
|
|
95
|
+
for await (const chunk of process.stdin) {
|
|
96
|
+
inputData += chunk;
|
|
97
|
+
}
|
|
98
|
+
if (!inputData.trim()) {
|
|
99
|
+
throw new Error("No input provided");
|
|
100
|
+
}
|
|
101
|
+
// Parse input
|
|
102
|
+
const input = JSON.parse(inputData);
|
|
103
|
+
// Validate input
|
|
104
|
+
if (!input.state || !input.events || !input.configPath) {
|
|
105
|
+
throw new Error("Invalid input: must provide state, events, and configPath");
|
|
106
|
+
}
|
|
107
|
+
// Process step
|
|
108
|
+
const result = processStep(input);
|
|
109
|
+
// Output result as JSON
|
|
110
|
+
console.log(JSON.stringify(result, null, 2));
|
|
111
|
+
process.exit(0);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error(JSON.stringify({
|
|
115
|
+
error: error instanceof Error ? error.message : String(error),
|
|
116
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
117
|
+
}, null, 2));
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Run if executed directly
|
|
122
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
123
|
+
main();
|
|
124
|
+
}
|
|
125
|
+
export { processStep, loadRegistryConfig, createRegistryFromConfig };
|
|
126
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/adapters/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,cAAc,GAMf,MAAM,aAAa,CAAC;AAsBrB;;GAEG;AACH,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB,CAC/B,MAAsB;IAEtB,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAY,CAAC;IAEhD,iBAAiB;IACjB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,QAAQ,UAAU,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC;YACH,8CAA8C;YAC9C,oEAAoE;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEnC,MAAM,IAAI,GAA6B;gBACrC,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,IAAI;aACL,CAAC;YAEF,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAmC;gBACjD,EAAE,EAAE,gBAAgB,CAAC,EAAE;gBACvB,WAAW,EAAE,gBAAgB,CAAC,WAAW;gBACzC,IAAI;aACL,CAAC;YAEF,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,gBAAgB,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,KAAe;IAClC,8BAA8B;IAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAElD,sCAAsC;IACtC,MAAM,MAAM,GAAG,kBAAkB,CAAC;QAChC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;QACnC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;QAC/B,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;QAC7B,QAAQ;KACT,CAAC,CAAC;IAEH,iBAAiB;IACjB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,wBAAwB;QACxB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,SAAS,IAAI,KAAK,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,cAAc;QACd,MAAM,KAAK,GAAa,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE9C,iBAAiB;QACjB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAElC,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACxD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC;AACT,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication CLI Commands
|
|
3
|
+
*
|
|
4
|
+
* Commands for authenticating with GitHub for Praxis Cloud access.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Login command
|
|
8
|
+
*/
|
|
9
|
+
export declare function loginCommand(options: {
|
|
10
|
+
token?: string;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Logout command
|
|
14
|
+
*/
|
|
15
|
+
export declare function logoutCommand(): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Whoami command
|
|
18
|
+
*/
|
|
19
|
+
export declare function whoamiCommand(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Get stored authentication token
|
|
22
|
+
*
|
|
23
|
+
* Used by other commands that need authentication
|
|
24
|
+
*/
|
|
25
|
+
export declare function getAuthToken(): string | null;
|
|
26
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqEH;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoG7E;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAcnD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA4DnD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAG5C"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication CLI Commands
|
|
3
|
+
*
|
|
4
|
+
* Commands for authenticating with GitHub for Praxis Cloud access.
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from "fs";
|
|
7
|
+
import * as path from "path";
|
|
8
|
+
import * as os from "os";
|
|
9
|
+
import { authenticateWithDeviceFlow } from "../../cloud/auth.js";
|
|
10
|
+
import { createSponsorsClient } from "../../cloud/sponsors.js";
|
|
11
|
+
const AUTH_DIR = path.join(os.homedir(), ".praxis");
|
|
12
|
+
const AUTH_FILE = path.join(AUTH_DIR, "auth.json");
|
|
13
|
+
const GITHUB_CLIENT_ID = "Ov23liQxF7P0BqUxVXHk"; // Demo client ID (replace in production)
|
|
14
|
+
/**
|
|
15
|
+
* Load stored authentication
|
|
16
|
+
*/
|
|
17
|
+
function loadAuth() {
|
|
18
|
+
try {
|
|
19
|
+
if (fs.existsSync(AUTH_FILE)) {
|
|
20
|
+
const data = fs.readFileSync(AUTH_FILE, "utf-8");
|
|
21
|
+
return JSON.parse(data);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.warn("Failed to load authentication:", error);
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Save authentication
|
|
31
|
+
*/
|
|
32
|
+
function saveAuth(auth) {
|
|
33
|
+
try {
|
|
34
|
+
// Ensure directory exists
|
|
35
|
+
if (!fs.existsSync(AUTH_DIR)) {
|
|
36
|
+
fs.mkdirSync(AUTH_DIR, { recursive: true });
|
|
37
|
+
}
|
|
38
|
+
// Save with restricted permissions
|
|
39
|
+
fs.writeFileSync(AUTH_FILE, JSON.stringify(auth, null, 2), { mode: 0o600 });
|
|
40
|
+
console.log(`\n✓ Authentication saved to ${AUTH_FILE}`);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error("Failed to save authentication:", error);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Delete stored authentication
|
|
49
|
+
*/
|
|
50
|
+
function deleteAuth() {
|
|
51
|
+
try {
|
|
52
|
+
if (fs.existsSync(AUTH_FILE)) {
|
|
53
|
+
fs.unlinkSync(AUTH_FILE);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.warn("Failed to delete authentication:", error);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Login command
|
|
62
|
+
*/
|
|
63
|
+
export async function loginCommand(options) {
|
|
64
|
+
console.log("\n╔═══════════════════════════════════════════════════╗");
|
|
65
|
+
console.log("║ Praxis Cloud Authentication ║");
|
|
66
|
+
console.log("╚═══════════════════════════════════════════════════╝\n");
|
|
67
|
+
// Check if already authenticated
|
|
68
|
+
const existingAuth = loadAuth();
|
|
69
|
+
if (existingAuth) {
|
|
70
|
+
console.log("⚠ Already authenticated");
|
|
71
|
+
console.log(` User: ${existingAuth.userLogin}`);
|
|
72
|
+
console.log(` Authenticated at: ${new Date(existingAuth.authenticatedAt).toLocaleString()}\n`);
|
|
73
|
+
console.log("Run 'praxis logout' to log out first.");
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
let authResult;
|
|
77
|
+
if (options.token) {
|
|
78
|
+
// Use provided token
|
|
79
|
+
console.log("🔐 Using provided personal access token...");
|
|
80
|
+
try {
|
|
81
|
+
const response = await fetch("https://api.github.com/user", {
|
|
82
|
+
headers: {
|
|
83
|
+
Authorization: `Bearer ${options.token}`,
|
|
84
|
+
Accept: "application/vnd.github.v3+json",
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
if (!response.ok) {
|
|
88
|
+
throw new Error(`Invalid token: ${response.statusText}`);
|
|
89
|
+
}
|
|
90
|
+
const userData = await response.json();
|
|
91
|
+
authResult = {
|
|
92
|
+
success: true,
|
|
93
|
+
token: options.token,
|
|
94
|
+
user: {
|
|
95
|
+
id: userData.id,
|
|
96
|
+
login: userData.login,
|
|
97
|
+
email: userData.email,
|
|
98
|
+
name: userData.name,
|
|
99
|
+
avatarUrl: userData.avatar_url,
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error("\n✗ Authentication failed");
|
|
105
|
+
console.error(` Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
// Use device flow
|
|
111
|
+
console.log("🔐 Authenticating with GitHub device flow...");
|
|
112
|
+
authResult = await authenticateWithDeviceFlow(GITHUB_CLIENT_ID);
|
|
113
|
+
}
|
|
114
|
+
if (!authResult.success || !authResult.token || !authResult.user) {
|
|
115
|
+
console.error("\n✗ Authentication failed");
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
console.log(`✓ Authenticated as ${authResult.user.login}`);
|
|
119
|
+
// Check GitHub Sponsors status
|
|
120
|
+
console.log("\n🔍 Checking GitHub Sponsors status...");
|
|
121
|
+
try {
|
|
122
|
+
const sponsorsClient = createSponsorsClient(authResult.token);
|
|
123
|
+
const subscription = await sponsorsClient.getSubscription(authResult.user.login);
|
|
124
|
+
console.log(`✓ Subscription tier: ${subscription.tier}`);
|
|
125
|
+
console.log(` Status: ${subscription.status}`);
|
|
126
|
+
console.log(` Provider: ${subscription.provider}`);
|
|
127
|
+
if (subscription.tier === "free") {
|
|
128
|
+
console.log("\n💡 Upgrade to a paid tier for more features!");
|
|
129
|
+
console.log(" Visit: https://github.com/sponsors/plures");
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
console.warn("\n⚠ Could not check Sponsors status");
|
|
134
|
+
console.warn(` Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
135
|
+
}
|
|
136
|
+
// Save authentication
|
|
137
|
+
const storedAuth = {
|
|
138
|
+
token: authResult.token,
|
|
139
|
+
userId: authResult.user.id,
|
|
140
|
+
userLogin: authResult.user.login,
|
|
141
|
+
userName: authResult.user.name,
|
|
142
|
+
userEmail: authResult.user.email,
|
|
143
|
+
authenticatedAt: Date.now(),
|
|
144
|
+
};
|
|
145
|
+
saveAuth(storedAuth);
|
|
146
|
+
console.log("\n✓ Successfully logged in!");
|
|
147
|
+
console.log("\nNext steps:");
|
|
148
|
+
console.log(" • Use 'praxis cloud init' to set up cloud connection");
|
|
149
|
+
console.log(" • Use 'praxis whoami' to check your authentication");
|
|
150
|
+
console.log(" • Use 'praxis cloud status' to check subscription\n");
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Logout command
|
|
154
|
+
*/
|
|
155
|
+
export async function logoutCommand() {
|
|
156
|
+
const auth = loadAuth();
|
|
157
|
+
if (!auth) {
|
|
158
|
+
console.log("\n✗ Not currently logged in");
|
|
159
|
+
console.log(" Run 'praxis login' to authenticate\n");
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
console.log(`\nLogging out user: ${auth.userLogin}...`);
|
|
163
|
+
deleteAuth();
|
|
164
|
+
console.log("✓ Successfully logged out\n");
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Whoami command
|
|
168
|
+
*/
|
|
169
|
+
export async function whoamiCommand() {
|
|
170
|
+
const auth = loadAuth();
|
|
171
|
+
if (!auth) {
|
|
172
|
+
console.log("\n✗ Not currently logged in");
|
|
173
|
+
console.log(" Run 'praxis login' to authenticate\n");
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
console.log("\n╔═══════════════════════════════════════════════════╗");
|
|
177
|
+
console.log("║ Current Authentication ║");
|
|
178
|
+
console.log("╚═══════════════════════════════════════════════════╝\n");
|
|
179
|
+
console.log(`User: ${auth.userLogin}`);
|
|
180
|
+
if (auth.userName) {
|
|
181
|
+
console.log(`Name: ${auth.userName}`);
|
|
182
|
+
}
|
|
183
|
+
if (auth.userEmail) {
|
|
184
|
+
console.log(`Email: ${auth.userEmail}`);
|
|
185
|
+
}
|
|
186
|
+
console.log(`User ID: ${auth.userId}`);
|
|
187
|
+
console.log(`Authenticated: ${new Date(auth.authenticatedAt).toLocaleString()}`);
|
|
188
|
+
// Check token validity
|
|
189
|
+
console.log("\n🔍 Checking token validity...");
|
|
190
|
+
try {
|
|
191
|
+
const response = await fetch("https://api.github.com/user", {
|
|
192
|
+
headers: {
|
|
193
|
+
Authorization: `Bearer ${auth.token}`,
|
|
194
|
+
Accept: "application/vnd.github.v3+json",
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
if (response.ok) {
|
|
198
|
+
console.log("✓ Token is valid");
|
|
199
|
+
// Check subscription
|
|
200
|
+
console.log("\n🔍 Checking subscription...");
|
|
201
|
+
const sponsorsClient = createSponsorsClient(auth.token);
|
|
202
|
+
const subscription = await sponsorsClient.getSubscription(auth.userLogin);
|
|
203
|
+
console.log(`Tier: ${subscription.tier}`);
|
|
204
|
+
console.log(`Status: ${subscription.status}`);
|
|
205
|
+
console.log(`Provider: ${subscription.provider}`);
|
|
206
|
+
console.log("\nLimits:");
|
|
207
|
+
console.log(` Syncs/month: ${subscription.limits.maxSyncsPerMonth.toLocaleString()}`);
|
|
208
|
+
console.log(` Storage: ${(subscription.limits.maxStorageBytes / 1024 / 1024).toFixed(0)} MB`);
|
|
209
|
+
console.log(` Apps: ${subscription.limits.maxApps}`);
|
|
210
|
+
console.log(` Team members: ${subscription.limits.maxTeamMembers ?? "Unlimited"}`);
|
|
211
|
+
console.log(` Support: ${subscription.limits.supportLevel}`);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
console.log("✗ Token is invalid or expired");
|
|
215
|
+
console.log(" Run 'praxis login' to re-authenticate");
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
console.error("\n✗ Failed to check token validity");
|
|
220
|
+
console.error(` Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
221
|
+
}
|
|
222
|
+
console.log();
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Get stored authentication token
|
|
226
|
+
*
|
|
227
|
+
* Used by other commands that need authentication
|
|
228
|
+
*/
|
|
229
|
+
export function getAuthToken() {
|
|
230
|
+
const auth = loadAuth();
|
|
231
|
+
return auth?.token || null;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud CLI Commands
|
|
3
|
+
*
|
|
4
|
+
* CLI commands for Praxis Cloud connectivity.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Initialize cloud connection (wizard)
|
|
8
|
+
*/
|
|
9
|
+
export declare function cloudInit(options: {
|
|
10
|
+
endpoint?: string;
|
|
11
|
+
appId?: string;
|
|
12
|
+
autoSync?: boolean;
|
|
13
|
+
interval?: string;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Check cloud connection status
|
|
17
|
+
*/
|
|
18
|
+
export declare function cloudStatus(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Manually trigger cloud sync
|
|
21
|
+
*/
|
|
22
|
+
export declare function cloudSync(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* View cloud usage metrics
|
|
25
|
+
*/
|
|
26
|
+
export declare function cloudUsage(): Promise<void>;
|
|
27
|
+
//# sourceMappingURL=cloud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cloud.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiDH;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhB;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAyCjD;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAgC/C;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAsChD"}
|