@the-agenticflow/openflows 0.1.6 → 0.1.8-dev.236.2151055
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/bin/openflows-dashboard.js +1 -1
- package/bin/openflows-setup.js +1 -1
- package/bin/openflows.js +4 -286
- package/package.json +3 -21
- package/scripts/install.js +59 -209
- package/.env.example +0 -60
- package/README.md +0 -217
- package/bin/LICENSE +0 -21
- package/bin/README.md +0 -535
- package/bin/agentflow-bin +0 -0
- package/bin/agentflow-dashboard-bin +0 -0
- package/bin/agentflow-doctor-bin +0 -0
- package/bin/agentflow-setup-bin +0 -0
- package/bin/orchestration/agent/agents/forge.agent.md +0 -110
- package/bin/orchestration/agent/agents/lore.agent.md +0 -27
- package/bin/orchestration/agent/agents/nexus.agent.md +0 -201
- package/bin/orchestration/agent/agents/sentinel.agent.md +0 -96
- package/bin/orchestration/agent/agents/vessel.agent.md +0 -38
- package/bin/orchestration/agent/registry.json +0 -10
- package/bin/orchestration/agent/standards/CODING.md +0 -22
- package/bin/orchestration/agent/standards/REVIEW.md +0 -15
- package/bin/orchestration/agent/standards/SECURITY.md +0 -72
- package/bin/orchestration/plugin/commands/assign.md +0 -45
- package/bin/orchestration/plugin/commands/check-ci.md +0 -26
- package/bin/orchestration/plugin/commands/document-pr.md +0 -32
- package/bin/orchestration/plugin/commands/gate-approve.md +0 -39
- package/bin/orchestration/plugin/commands/handoff.md +0 -75
- package/bin/orchestration/plugin/commands/merge.md +0 -47
- package/bin/orchestration/plugin/commands/plan.md +0 -66
- package/bin/orchestration/plugin/commands/segment-done.md +0 -50
- package/bin/orchestration/plugin/commands/status-check.md +0 -28
- package/bin/orchestration/plugin/commands/status.md +0 -94
- package/bin/orchestration/plugin/commands/update-changelog.md +0 -37
- package/bin/orchestration/plugin/hooks/forge/post_write_lint.sh +0 -76
- package/bin/orchestration/plugin/hooks/forge/pre_bash_guard.sh +0 -81
- package/bin/orchestration/plugin/hooks/forge/pre_compact_handoff.sh +0 -28
- package/bin/orchestration/plugin/hooks/forge/pre_write_check.sh +0 -77
- package/bin/orchestration/plugin/hooks/forge/session_start.sh +0 -59
- package/bin/orchestration/plugin/hooks/forge/stop_require_artifact.sh +0 -75
- package/bin/orchestration/plugin/hooks/lore/session-start.sh +0 -13
- package/bin/orchestration/plugin/hooks/nexus/init-session.sh +0 -23
- package/bin/orchestration/plugin/hooks/nexus/log-decision.sh +0 -10
- package/bin/orchestration/plugin/hooks/sentinel/post_write_validate.sh +0 -59
- package/bin/orchestration/plugin/hooks/sentinel/pre_bash_readonly_guard.sh +0 -107
- package/bin/orchestration/plugin/hooks/sentinel/session_start.sh +0 -74
- package/bin/orchestration/plugin/hooks/sentinel/stop_require_eval.sh +0 -57
- package/bin/orchestration/plugin/hooks/vessel/log-merge-status.sh +0 -7
- package/bin/orchestration/plugin/hooks/vessel/session-start.sh +0 -14
- package/bin/orchestration/plugin/mcp/mcp.json.template +0 -26
- package/bin/orchestration/plugin/plugin.json +0 -66
- package/bin/orchestration/plugin/skills/forge-algorithmic-art.md +0 -24
- package/bin/orchestration/plugin/skills/forge-canvas-design.md +0 -25
- package/bin/orchestration/plugin/skills/forge-coding.md +0 -161
- package/bin/orchestration/plugin/skills/forge-frontend-design.md +0 -30
- package/bin/orchestration/plugin/skills/forge-mcp-builder.md +0 -37
- package/bin/orchestration/plugin/skills/forge-planning.md +0 -102
- package/bin/orchestration/plugin/skills/forge-skill-creator.md +0 -25
- package/bin/orchestration/plugin/skills/forge-web-artifacts-builder.md +0 -29
- package/bin/orchestration/plugin/skills/lore-brand-guidelines.md +0 -33
- package/bin/orchestration/plugin/skills/lore-changelog.md +0 -69
- package/bin/orchestration/plugin/skills/lore-doc-coauthoring.md +0 -33
- package/bin/orchestration/plugin/skills/lore-documentation.md +0 -57
- package/bin/orchestration/plugin/skills/lore-docx.md +0 -20
- package/bin/orchestration/plugin/skills/lore-pdf.md +0 -20
- package/bin/orchestration/plugin/skills/lore-pptx.md +0 -23
- package/bin/orchestration/plugin/skills/lore-theme-factory.md +0 -20
- package/bin/orchestration/plugin/skills/lore-xlsx.md +0 -20
- package/bin/orchestration/plugin/skills/nexus-doc-coauthoring.md +0 -21
- package/bin/orchestration/plugin/skills/nexus-internal-comms.md +0 -28
- package/bin/orchestration/plugin/skills/nexus-orchestration.md +0 -63
- package/bin/orchestration/plugin/skills/nexus-skill-creator.md +0 -15
- package/bin/orchestration/plugin/skills/nexus-slack-gif-creator.md +0 -21
- package/bin/orchestration/plugin/skills/nexus-triage.md +0 -56
- package/bin/orchestration/plugin/skills/nexus-xlsx.md +0 -20
- package/bin/orchestration/plugin/skills/sentinel-algorithmic-art.md +0 -20
- package/bin/orchestration/plugin/skills/sentinel-criteria.md +0 -115
- package/bin/orchestration/plugin/skills/sentinel-frontend-design.md +0 -20
- package/bin/orchestration/plugin/skills/sentinel-review.md +0 -124
- package/bin/orchestration/plugin/skills/sentinel-web-artifacts-builder.md +0 -20
- package/bin/orchestration/plugin/skills/sentinel-webapp-testing.md +0 -34
- package/bin/orchestration/plugin/skills/shared-claude-api.md +0 -25
- package/bin/orchestration/plugin/skills/vessel-ci-gate.md +0 -68
- package/bin/orchestration/plugin/skills/vessel-internal-comms.md +0 -20
- package/bin/orchestration/plugin/skills/vessel-mcp-builder.md +0 -21
- package/bin/orchestration/plugin/skills/vessel-merge-protocol.md +0 -113
- package/bin/orchestration/plugin/skills/vessel-pdf.md +0 -20
- package/bin/orchestration/plugin/skills/vessel-webapp-testing.md +0 -34
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
const { spawn } = require('child_process');
|
|
3
3
|
const path = require('path');
|
|
4
|
-
const binaryPath = path.join(__dirname, '..', 'bin', '
|
|
4
|
+
const binaryPath = path.join(__dirname, '..', 'bin', 'openflows-dashboard-bin');
|
|
5
5
|
const proc = spawn(binaryPath, process.argv.slice(2), { stdio: 'inherit' });
|
|
6
6
|
proc.on('exit', (code) => process.exit(code));
|
package/bin/openflows-setup.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
const { spawn } = require('child_process');
|
|
3
3
|
const path = require('path');
|
|
4
|
-
const binaryPath = path.join(__dirname, '..', 'bin', '
|
|
4
|
+
const binaryPath = path.join(__dirname, '..', 'bin', 'openflows-setup-bin');
|
|
5
5
|
const proc = spawn(binaryPath, process.argv.slice(2), { stdio: 'inherit' });
|
|
6
6
|
proc.on('exit', (code) => process.exit(code));
|
package/bin/openflows.js
CHANGED
|
@@ -1,288 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
* OpenFlows - Autonomous AI Development Team
|
|
4
|
-
*
|
|
5
|
-
* This wrapper handles:
|
|
6
|
-
* 1. Automatic proxy management (for LLM API translation if needed)
|
|
7
|
-
* 2. Environment configuration
|
|
8
|
-
* 3. Graceful startup and shutdown
|
|
9
|
-
*
|
|
10
|
-
* Users don't need to know about proxies - everything is handled automatically.
|
|
11
|
-
*/
|
|
12
|
-
const { spawn, execSync, fork } = require('child_process');
|
|
2
|
+
const { spawn } = require('child_process');
|
|
13
3
|
const path = require('path');
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const binaryPath = path.join(__dirname, '..', 'bin', 'agentflow-bin');
|
|
19
|
-
const PROXY_PORT = process.env.PROXY_PORT || 8765;
|
|
20
|
-
const PROXY_STARTUP_TIMEOUT = 5000;
|
|
21
|
-
|
|
22
|
-
// Check if a port is in use
|
|
23
|
-
function isPortInUse(port) {
|
|
24
|
-
return new Promise((resolve) => {
|
|
25
|
-
const req = http.request({
|
|
26
|
-
method: 'GET',
|
|
27
|
-
hostname: 'localhost',
|
|
28
|
-
port: port,
|
|
29
|
-
path: '/health',
|
|
30
|
-
timeout: 500
|
|
31
|
-
}, (res) => {
|
|
32
|
-
resolve(res.statusCode === 200);
|
|
33
|
-
});
|
|
34
|
-
req.on('error', () => resolve(false));
|
|
35
|
-
req.on('timeout', () => {
|
|
36
|
-
req.destroy();
|
|
37
|
-
resolve(false);
|
|
38
|
-
});
|
|
39
|
-
req.end();
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Check if user needs proxy (no direct API keys, but has gateway config)
|
|
44
|
-
function needsProxy() {
|
|
45
|
-
// If user explicitly set PROXY_URL, respect it
|
|
46
|
-
if (process.env.PROXY_URL) {
|
|
47
|
-
return { needed: false, reason: 'PROXY_URL already set' };
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// If user has Fireworks API key, they can use it directly
|
|
51
|
-
if (process.env.FIREWORKS_API_KEY) {
|
|
52
|
-
return { needed: false, reason: 'Fireworks direct mode' };
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// If user has Anthropic API key, they can use it directly
|
|
56
|
-
if (process.env.ANTHROPIC_API_KEY) {
|
|
57
|
-
return { needed: false, reason: 'Anthropic direct mode' };
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// If user has Gateway config but no direct keys, they need proxy
|
|
61
|
-
if (process.env.GATEWAY_URL || process.env.GATEWAY_API_KEY) {
|
|
62
|
-
return { needed: true, reason: 'Gateway configured, no direct keys' };
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// No API config at all - let the binary handle the error
|
|
66
|
-
return { needed: false, reason: 'No API config - will error in binary' };
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Start the built-in proxy (anthropic-proxy binary)
|
|
70
|
-
async function startProxy() {
|
|
71
|
-
console.log('[openflows] Starting built-in API proxy...');
|
|
72
|
-
|
|
73
|
-
const proxyBinary = path.join(__dirname, '..', 'bin', 'anthropic-proxy-bin');
|
|
74
|
-
|
|
75
|
-
// Check if proxy binary exists
|
|
76
|
-
if (!fs.existsSync(proxyBinary)) {
|
|
77
|
-
// Try alternative location
|
|
78
|
-
const altProxy = path.join(__dirname, '..', 'bin', 'anthropic-proxy');
|
|
79
|
-
if (!fs.existsSync(altProxy)) {
|
|
80
|
-
console.log('[openflows] No built-in proxy found, skipping proxy startup');
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
const proxy = spawn(proxyBinary, [], {
|
|
86
|
-
env: {
|
|
87
|
-
...process.env,
|
|
88
|
-
PORT: PROXY_PORT.toString(),
|
|
89
|
-
RUST_LOG: process.env.RUST_LOG || 'info'
|
|
90
|
-
},
|
|
91
|
-
stdio: ['ignore', 'pipe', 'pipe']
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
let proxyReady = false;
|
|
95
|
-
|
|
96
|
-
return new Promise((resolve, reject) => {
|
|
97
|
-
const timeout = setTimeout(() => {
|
|
98
|
-
if (!proxyReady) {
|
|
99
|
-
console.warn('[openflows] Proxy startup timeout, continuing without proxy');
|
|
100
|
-
resolve(null);
|
|
101
|
-
}
|
|
102
|
-
}, PROXY_STARTUP_TIMEOUT);
|
|
103
|
-
|
|
104
|
-
proxy.stdout.on('data', (data) => {
|
|
105
|
-
const line = data.toString();
|
|
106
|
-
if (line.includes('listening') || line.includes('Proxy') || line.includes('started')) {
|
|
107
|
-
proxyReady = true;
|
|
108
|
-
clearTimeout(timeout);
|
|
109
|
-
console.log(`[openflows] ✓ Proxy started on port ${PROXY_PORT}`);
|
|
110
|
-
resolve(proxy);
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
proxy.stderr.on('data', (data) => {
|
|
115
|
-
const line = data.toString();
|
|
116
|
-
// Log proxy errors but don't fail
|
|
117
|
-
if (line.includes('ERROR') || line.includes('error')) {
|
|
118
|
-
console.error('[openflows proxy]', line.trim());
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
proxy.on('error', (err) => {
|
|
123
|
-
clearTimeout(timeout);
|
|
124
|
-
console.warn(`[openflows] Proxy failed to start: ${err.message}`);
|
|
125
|
-
resolve(null);
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
proxy.on('exit', (code) => {
|
|
129
|
-
if (!proxyReady) {
|
|
130
|
-
clearTimeout(timeout);
|
|
131
|
-
resolve(null);
|
|
132
|
-
} else {
|
|
133
|
-
console.log(`[openflows] Proxy exited with code ${code}`);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Clean up function
|
|
140
|
-
let cleanupCalled = false;
|
|
141
|
-
function cleanup(proxy, signal = 'SIGTERM') {
|
|
142
|
-
if (cleanupCalled) return;
|
|
143
|
-
cleanupCalled = true;
|
|
144
|
-
|
|
145
|
-
if (proxy) {
|
|
146
|
-
console.log('[openflows] Stopping proxy...');
|
|
147
|
-
try {
|
|
148
|
-
proxy.kill(signal);
|
|
149
|
-
} catch (err) {
|
|
150
|
-
// Ignore cleanup errors
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// Main entry point
|
|
156
|
-
async function main() {
|
|
157
|
-
const args = process.argv.slice(2);
|
|
158
|
-
|
|
159
|
-
// Handle special commands
|
|
160
|
-
if (args[0] === '--help' || args[0] === '-h') {
|
|
161
|
-
console.log(`
|
|
162
|
-
OpenFlows - Autonomous AI Development Team
|
|
163
|
-
|
|
164
|
-
Usage:
|
|
165
|
-
openflows [options]
|
|
166
|
-
|
|
167
|
-
Options:
|
|
168
|
-
--help, -h Show this help
|
|
169
|
-
--version, -v Show version
|
|
170
|
-
--no-proxy Disable automatic proxy startup
|
|
171
|
-
--proxy-only Start only the proxy (for testing)
|
|
172
|
-
|
|
173
|
-
Commands:
|
|
174
|
-
openflows-setup Guided setup wizard
|
|
175
|
-
openflows-dashboard Live monitoring TUI
|
|
176
|
-
openflows-doctor Diagnostic checks
|
|
177
|
-
|
|
178
|
-
Environment Variables:
|
|
179
|
-
FIREWORKS_API_KEY Use Fireworks AI directly (recommended)
|
|
180
|
-
ANTHROPIC_API_KEY Use Anthropic directly
|
|
181
|
-
GATEWAY_URL Custom gateway URL (requires proxy)
|
|
182
|
-
GATEWAY_API_KEY Custom gateway API key
|
|
183
|
-
PROXY_PORT Port for built-in proxy (default: 8765)
|
|
184
|
-
|
|
185
|
-
Examples:
|
|
186
|
-
# Quick start with Fireworks (no proxy needed)
|
|
187
|
-
FIREWORKS_API_KEY=your-key openflows
|
|
188
|
-
|
|
189
|
-
# Use custom gateway (proxy auto-starts)
|
|
190
|
-
GATEWAY_URL=https://your-gateway.com/v1 \\
|
|
191
|
-
GATEWAY_API_KEY=your-key openflows
|
|
192
|
-
|
|
193
|
-
Documentation: https://openflows.dev
|
|
194
|
-
`);
|
|
195
|
-
process.exit(0);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
if (args[0] === '--version' || args[0] === '-v') {
|
|
199
|
-
try {
|
|
200
|
-
const pkg = require('../package.json');
|
|
201
|
-
console.log(`openflows v${pkg.version}`);
|
|
202
|
-
} catch {
|
|
203
|
-
console.log('openflows (version unknown)');
|
|
204
|
-
}
|
|
205
|
-
process.exit(0);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
// Skip proxy if --no-proxy flag
|
|
209
|
-
const skipProxy = args.includes('--no-proxy');
|
|
210
|
-
|
|
211
|
-
// Start proxy only mode
|
|
212
|
-
if (args[0] === '--proxy-only') {
|
|
213
|
-
const proxy = await startProxy();
|
|
214
|
-
if (proxy) {
|
|
215
|
-
console.log(`[openflows] Proxy running on http://localhost:${PROXY_PORT}`);
|
|
216
|
-
console.log('[openflows] Press Ctrl+C to stop');
|
|
217
|
-
|
|
218
|
-
// Keep running until killed
|
|
219
|
-
process.on('SIGINT', () => cleanup(proxy, 'SIGINT'));
|
|
220
|
-
process.on('SIGTERM', () => cleanup(proxy, 'SIGTERM'));
|
|
221
|
-
} else {
|
|
222
|
-
console.error('[openflows] Failed to start proxy');
|
|
223
|
-
process.exit(1);
|
|
224
|
-
}
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// Check if we need to start proxy
|
|
229
|
-
let proxy = null;
|
|
230
|
-
let env = { ...process.env };
|
|
231
|
-
|
|
232
|
-
if (!skipProxy) {
|
|
233
|
-
const { needed, reason } = needsProxy();
|
|
234
|
-
|
|
235
|
-
if (needed) {
|
|
236
|
-
console.log(`[openflows] ${reason} - starting proxy...`);
|
|
237
|
-
|
|
238
|
-
// Check if proxy is already running
|
|
239
|
-
const proxyRunning = await isPortInUse(PROXY_PORT);
|
|
240
|
-
|
|
241
|
-
if (proxyRunning) {
|
|
242
|
-
console.log(`[openflows] ✓ Proxy already running on port ${PROXY_PORT}`);
|
|
243
|
-
} else {
|
|
244
|
-
proxy = await startProxy();
|
|
245
|
-
if (proxy) {
|
|
246
|
-
// Set PROXY_URL for the main binary
|
|
247
|
-
env.PROXY_URL = `http://localhost:${PROXY_PORT}/v1`;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
} else {
|
|
251
|
-
console.log(`[openflows] Mode: ${reason}`);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// Spawn the main binary
|
|
256
|
-
const proc = spawn(binaryPath, args, {
|
|
257
|
-
env,
|
|
258
|
-
stdio: 'inherit'
|
|
259
|
-
});
|
|
260
|
-
|
|
261
|
-
// Handle signals
|
|
262
|
-
process.on('SIGINT', () => {
|
|
263
|
-
cleanup(proxy, 'SIGINT');
|
|
264
|
-
proc.kill('SIGINT');
|
|
265
|
-
});
|
|
266
|
-
|
|
267
|
-
process.on('SIGTERM', () => {
|
|
268
|
-
cleanup(proxy, 'SIGTERM');
|
|
269
|
-
proc.kill('SIGTERM');
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
// Handle exit
|
|
273
|
-
proc.on('exit', (code) => {
|
|
274
|
-
cleanup(proxy);
|
|
275
|
-
process.exit(code || 0);
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
proc.on('error', (err) => {
|
|
279
|
-
console.error('[openflows] Failed to start:', err.message);
|
|
280
|
-
cleanup(proxy);
|
|
281
|
-
process.exit(1);
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
main().catch(err => {
|
|
286
|
-
console.error('[openflows] Error:', err.message);
|
|
287
|
-
process.exit(1);
|
|
288
|
-
});
|
|
4
|
+
const binaryPath = path.join(__dirname, '..', 'bin', 'openflows-bin');
|
|
5
|
+
const proc = spawn(binaryPath, process.argv.slice(2), { stdio: 'inherit' });
|
|
6
|
+
proc.on('exit', (code) => process.exit(code));
|
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@the-agenticflow/openflows",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8-dev.236.2151055",
|
|
4
4
|
"description": "Autonomous AI development team — turns GitHub issues into working PRs",
|
|
5
|
-
"main": "index.js",
|
|
6
5
|
"bin": {
|
|
7
6
|
"openflows": "./bin/openflows.js",
|
|
8
7
|
"openflows-setup": "./bin/openflows-setup.js",
|
|
@@ -21,10 +20,7 @@
|
|
|
21
20
|
"autonomous",
|
|
22
21
|
"development",
|
|
23
22
|
"agents",
|
|
24
|
-
"github"
|
|
25
|
-
"claude",
|
|
26
|
-
"fireworks",
|
|
27
|
-
"anthropic"
|
|
23
|
+
"github"
|
|
28
24
|
],
|
|
29
25
|
"author": "The AgenticFlow Team",
|
|
30
26
|
"license": "MIT",
|
|
@@ -32,12 +28,6 @@
|
|
|
32
28
|
"url": "https://github.com/The-AgenticFlow/AgentFlow/issues"
|
|
33
29
|
},
|
|
34
30
|
"homepage": "https://openflows.dev",
|
|
35
|
-
"files": [
|
|
36
|
-
"bin/",
|
|
37
|
-
"scripts/",
|
|
38
|
-
"README.md",
|
|
39
|
-
".env.example"
|
|
40
|
-
],
|
|
41
31
|
"engines": {
|
|
42
32
|
"node": ">=18.0.0"
|
|
43
33
|
},
|
|
@@ -48,13 +38,5 @@
|
|
|
48
38
|
"cpu": [
|
|
49
39
|
"x64",
|
|
50
40
|
"arm64"
|
|
51
|
-
]
|
|
52
|
-
"dependencies": {},
|
|
53
|
-
"optionalDependencies": {
|
|
54
|
-
"@openflows/linux-x64-gnu": "0.1.0",
|
|
55
|
-
"@openflows/linux-x64-musl": "0.1.0",
|
|
56
|
-
"@openflows/linux-arm64-gnu": "0.1.0",
|
|
57
|
-
"@openflows/darwin-x64": "0.1.0",
|
|
58
|
-
"@openflows/darwin-arm64": "0.1.0"
|
|
59
|
-
}
|
|
41
|
+
]
|
|
60
42
|
}
|