flowproof 0.0.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,10 +1,21 @@
1
1
  # flowproof
2
2
 
3
- AI-native E2E testing for the apps Selenium can't reach.
3
+ Run your AI agent once, keep the recording, and assert against it from then
4
+ on. flowproof captures the run at the model boundary - every request and
5
+ every tool-call decision - and serves it back on later runs, so replay makes
6
+ **zero LLM calls**. You assert which tools were called, with which arguments,
7
+ in which order, and which were not. The same engine drives web, desktop and
8
+ Citrix.
4
9
 
5
- FlowProof is an open-source, AI-native end-to-end testing framework for
6
- enterprise Windows apps (SAP GUI, Oracle, Citrix, legacy desktop). AI authors
7
- and heals tests; a deterministic engine replays them in CI.
10
+ This package ships the `flowproof` CLI as platform-native binaries
11
+ (linux-x64, darwin-x64/arm64, win32-x64) — no Python required:
8
12
 
9
- **This is a placeholder release** reserving the package name. Follow
10
- development at [github.com/automators-com/flowproof](https://github.com/automators-com/flowproof).
13
+ ```bash
14
+ npx flowproof --version
15
+ npx flowproof record my.flow.yaml
16
+ npx flowproof run specs/
17
+ ```
18
+
19
+ The Python SDK (`pip install flowproof`) remains the primary SDK and
20
+ adds the programmatic API and MCP server. Docs and source:
21
+ [github.com/automators-com/flowproof](https://github.com/automators-com/flowproof)
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ // Thin launcher: the real `flowproof` CLI is a platform-native Rust binary
3
+ // shipped in a per-platform optional dependency; this resolves the right
4
+ // one and passes everything through untouched.
5
+ "use strict";
6
+
7
+ const { spawnSync } = require("node:child_process");
8
+ const path = require("node:path");
9
+
10
+ // Scoped names: the unscoped ones tripped npm's spam heuristic for new
11
+ // packages and could not be published at all. Keep these in step with
12
+ // package.json's optionalDependencies - test/launcher.test.js fails if they
13
+ // drift, because a mismatch here is an "unsupported platform" error for a
14
+ // platform that is actually supported.
15
+ const PLATFORM_PACKAGES = {
16
+ "linux-x64": "@automators/flowproof-cli-linux-x64",
17
+ "darwin-x64": "@automators/flowproof-cli-darwin-x64",
18
+ "darwin-arm64": "@automators/flowproof-cli-darwin-arm64",
19
+ "win32-x64": "@automators/flowproof-cli-win32-x64",
20
+ };
21
+
22
+ function binaryPath() {
23
+ const key = `${process.platform}-${process.arch}`;
24
+ const pkg = PLATFORM_PACKAGES[key];
25
+ if (!pkg) {
26
+ console.error(
27
+ `flowproof: no prebuilt binary for ${key}.\n` +
28
+ `Supported: ${Object.keys(PLATFORM_PACKAGES).join(", ")}.\n` +
29
+ `On other platforms, install via pip instead: pip install flowproof`
30
+ );
31
+ process.exit(2);
32
+ }
33
+ const file = process.platform === "win32" ? "flowproof.exe" : "flowproof";
34
+ try {
35
+ return path.join(path.dirname(require.resolve(`${pkg}/package.json`)), file);
36
+ } catch {
37
+ console.error(
38
+ `flowproof: platform package ${pkg} is not installed.\n` +
39
+ `Your package manager may have skipped optional dependencies — ` +
40
+ `reinstall without --no-optional (or use: pip install flowproof).`
41
+ );
42
+ process.exit(2);
43
+ }
44
+ }
45
+
46
+ const result = spawnSync(binaryPath(), process.argv.slice(2), {
47
+ stdio: "inherit",
48
+ });
49
+ if (result.error) {
50
+ console.error(`flowproof: failed to start the native binary: ${result.error.message}`);
51
+ process.exit(2);
52
+ }
53
+ process.exit(result.status === null ? 2 : result.status);
package/index.js CHANGED
@@ -1,13 +1,6 @@
1
- /**
2
- * FlowProof — AI-native E2E testing for the apps Selenium can't reach.
3
- *
4
- * Open-source AI-native E2E testing framework for enterprise Windows apps
5
- * (SAP GUI, Oracle, Citrix, legacy desktop). AI authors and heals tests;
6
- * a deterministic engine replays them in CI.
7
- *
8
- * This is a placeholder release. See https://github.com/automators-com/flowproof
9
- */
10
-
11
- module.exports = {
12
- version: "0.0.1",
13
- };
1
+ // CLI-only distribution: the `flowproof` command (bin/flowproof.js) runs a
2
+ // platform-native binary from the optional dependencies. For a
3
+ // programmatic API use the Python SDK — `pip install flowproof` — which is
4
+ // the primary SDK.
5
+ "use strict";
6
+ module.exports = {};
package/package.json CHANGED
@@ -1,23 +1,37 @@
1
1
  {
2
2
  "name": "flowproof",
3
- "version": "0.0.1",
4
- "description": "AI-native E2E testing for the apps Selenium can't reach. Placeholder release — see github.com/automators-com/flowproof",
5
- "main": "index.js",
3
+ "version": "0.6.1",
4
+ "description": "Deterministic tests for AI agents: record a run once, replay it with zero LLM calls. Assert which tools an agent called, with which arguments, in which order.",
5
+ "bin": {
6
+ "flowproof": "bin/flowproof.js"
7
+ },
6
8
  "files": [
9
+ "bin/flowproof.js",
7
10
  "index.js"
8
11
  ],
12
+ "main": "index.js",
13
+ "engines": {
14
+ "node": ">=18"
15
+ },
16
+ "optionalDependencies": {
17
+ "@automators/flowproof-cli-linux-x64": "0.6.1",
18
+ "@automators/flowproof-cli-darwin-x64": "0.6.1",
19
+ "@automators/flowproof-cli-darwin-arm64": "0.6.1",
20
+ "@automators/flowproof-cli-win32-x64": "0.6.1"
21
+ },
9
22
  "repository": {
10
23
  "type": "git",
11
24
  "url": "git+https://github.com/automators-com/flowproof.git"
12
25
  },
13
26
  "homepage": "https://github.com/automators-com/flowproof",
14
27
  "keywords": [
15
- "e2e",
28
+ "test-automation",
16
29
  "testing",
30
+ "automation",
31
+ "ai-agents",
17
32
  "sap-gui",
18
33
  "citrix",
19
- "windows",
20
- "automation"
34
+ "windows"
21
35
  ],
22
36
  "author": "Automators <hello@automators.com>",
23
37
  "license": "Apache-2.0"