@t4h.framework/cli 0.0.0-experimental-20261006120135 → 0.0.0-experimental-20261006121555
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/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
# @t4h.framework/cli
|
|
2
2
|
|
|
3
|
-
## 0.0.0-experimental-
|
|
3
|
+
## 0.0.0-experimental-20261006121555
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#208](https://github.com/tech4humans-brasil/framework/pull/208) [`c312bfb`](https://github.com/tech4humans-brasil/framework/commit/c312bfb0f1b1ddbc40d8ac0ede113c5614aa9df8) Thanks [@tony-tsx](https://github.com/tony-tsx)! - `framework workflows` lists, describes and runs the workflows of the app from
|
|
8
|
+
the terminal, without the dev server: `framework workflows <workflow> run
|
|
9
|
+
--input '<json>'` builds the project, runs the workflow, waits for it
|
|
10
|
+
(`--timeout`) and prints the run as JSON — with the activities, logs and child
|
|
11
|
+
runs under `--trace`. It exits with `0` when the run fulfills, `1` when it is
|
|
12
|
+
rejected or the command fails, and `2` on timeout, so scripts and AI agents can
|
|
13
|
+
test workflows headlessly.
|
|
14
|
+
|
|
15
|
+
`@t4h.framework/dev` exports `HeadlessApp`, the API behind it, and the app
|
|
16
|
+
process resolves its bundle root from `file:` URLs.
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
6
19
|
|
|
7
|
-
- Updated dependencies [[`92db468`](https://github.com/tech4humans-brasil/framework/commit/92db468f819d3c7d01884526598acd5fbef9b4ef)]:
|
|
8
|
-
- @t4h.framework/dev@0.0.0-experimental-
|
|
20
|
+
- Updated dependencies [[`c312bfb`](https://github.com/tech4humans-brasil/framework/commit/c312bfb0f1b1ddbc40d8ac0ede113c5614aa9df8), [`92db468`](https://github.com/tech4humans-brasil/framework/commit/92db468f819d3c7d01884526598acd5fbef9b4ef)]:
|
|
21
|
+
- @t4h.framework/dev@0.0.0-experimental-20261006121555
|
|
9
22
|
|
|
10
23
|
## 0.16.15
|
|
11
24
|
|
package/dist/bin/bin.js
CHANGED
|
@@ -5,11 +5,13 @@ import { buildCommand } from '../commands/build/build.js';
|
|
|
5
5
|
import { devCommand } from '../commands/dev/dev.js';
|
|
6
6
|
import { harnessCommand } from '../commands/harness/harness.js';
|
|
7
7
|
import { publishCommand } from '../commands/publish/publish.js';
|
|
8
|
+
import { workflowsCommand } from '../commands/workflows/workflows.js';
|
|
8
9
|
program.addCommand(devCommand);
|
|
9
10
|
program.addCommand(publishCommand);
|
|
10
11
|
program.addCommand(buildCommand);
|
|
11
12
|
program.addCommand(AIBootstrapCommand);
|
|
12
13
|
program.addCommand(harnessCommand);
|
|
14
|
+
program.addCommand(workflowsCommand);
|
|
13
15
|
await program.parseAsync(process.argv);
|
|
14
16
|
process.on('uncaughtException', error => {
|
|
15
17
|
const isExitPromptError = error instanceof Error && error.name === 'ExitPromptError';
|
package/dist/bin/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAC9B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAChC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;AACtC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAEpC,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEtC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE;IACtC,MAAM,iBAAiB,GACrB,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAA;IAE5D,IAAI,iBAAiB;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE7C,MAAM,KAAK,CAAA;AACb,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { parseEnv } from 'node:util';
|
|
4
|
+
import { DEFAULT_HEADLESS_RUN_TIMEOUT_IN_MS, HeadlessApp, HeadlessAppError, } from '@t4h.framework/dev';
|
|
5
|
+
import { Argument, Command, Option } from 'commander';
|
|
6
|
+
/** Exit codes of `framework workflows`, for scripts and agents. */
|
|
7
|
+
export const WORKFLOWS_EXIT_CODE = {
|
|
8
|
+
ok: 0,
|
|
9
|
+
rejected: 1,
|
|
10
|
+
error: 1,
|
|
11
|
+
timedOut: 2,
|
|
12
|
+
};
|
|
13
|
+
export function toWorkflowRunExitCode(result) {
|
|
14
|
+
if (result.timedOut)
|
|
15
|
+
return WORKFLOWS_EXIT_CODE.timedOut;
|
|
16
|
+
return result.run.status === 'fulfilled'
|
|
17
|
+
? WORKFLOWS_EXIT_CODE.ok
|
|
18
|
+
: WORKFLOWS_EXIT_CODE.rejected;
|
|
19
|
+
}
|
|
20
|
+
export function readWorkflowInput({ input, inputFile, }) {
|
|
21
|
+
if (input !== undefined && inputFile !== undefined)
|
|
22
|
+
throw new Error('Pass either --input or --input-file, not both');
|
|
23
|
+
const text = inputFile !== undefined ? fs.readFileSync(inputFile, 'utf8') : input;
|
|
24
|
+
if (text === undefined)
|
|
25
|
+
return undefined;
|
|
26
|
+
try {
|
|
27
|
+
return JSON.parse(text);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
throw new Error(`The workflow input is not valid JSON: ${error.message}`, { cause: error });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function toErrorOutput(error) {
|
|
34
|
+
if (error instanceof HeadlessAppError)
|
|
35
|
+
return {
|
|
36
|
+
error: {
|
|
37
|
+
message: error.message,
|
|
38
|
+
status: error.status ?? null,
|
|
39
|
+
details: error.details ?? null,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
error: { message: error instanceof Error ? error.message : String(error) },
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const print = (value) => process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
|
|
47
|
+
async function execute(app, workflowId, action, options) {
|
|
48
|
+
if (workflowId === undefined) {
|
|
49
|
+
print({ workflows: app.workflows });
|
|
50
|
+
return WORKFLOWS_EXIT_CODE.ok;
|
|
51
|
+
}
|
|
52
|
+
const workflow = app.workflows.find(({ id }) => id === workflowId);
|
|
53
|
+
if (!workflow)
|
|
54
|
+
throw new HeadlessAppError(`Workflow not found: ${workflowId}`, 404, {
|
|
55
|
+
workflows: app.workflows.map(({ id }) => id),
|
|
56
|
+
});
|
|
57
|
+
if (action !== 'run') {
|
|
58
|
+
print({ workflow });
|
|
59
|
+
return WORKFLOWS_EXIT_CODE.ok;
|
|
60
|
+
}
|
|
61
|
+
const result = await app.run(workflowId, readWorkflowInput(options), {
|
|
62
|
+
timeoutInMs: options.timeout,
|
|
63
|
+
trace: options.trace,
|
|
64
|
+
});
|
|
65
|
+
print(result);
|
|
66
|
+
return toWorkflowRunExitCode(result);
|
|
67
|
+
}
|
|
68
|
+
export const workflowsCommand = new Command('workflows')
|
|
69
|
+
.description('List, describe or run the workflows of the app without the dev server; prints JSON')
|
|
70
|
+
.addArgument(new Argument('[workflow]', 'Workflow id; omit it to list the workflows'))
|
|
71
|
+
.addArgument(new Argument('[action]', 'What to do with the workflow')
|
|
72
|
+
.choices(['describe', 'run'])
|
|
73
|
+
.default('describe'))
|
|
74
|
+
.option('--entrypoint <entrypoint path>', 'The entrypoint package json path', './package.json')
|
|
75
|
+
.addOption(new Option('-e, --env <envs..>', 'The env secrets (NAME=value)')
|
|
76
|
+
.argParser((value, previous) => {
|
|
77
|
+
const index = value.indexOf('=');
|
|
78
|
+
if (index < 1)
|
|
79
|
+
throw new Error('Invalid secret format');
|
|
80
|
+
return { ...previous, [value.slice(0, index)]: value.slice(index + 1) };
|
|
81
|
+
})
|
|
82
|
+
.default({}))
|
|
83
|
+
.addOption(new Option('--env-file-if-exists <file-path>', 'Load variables from a .env file if it exists').argParser(value => path.resolve(process.cwd(), value)))
|
|
84
|
+
.option('-i, --input <json>', 'Workflow input as JSON (run)')
|
|
85
|
+
.addOption(new Option('--input-file <file-path>', 'Read the workflow input JSON from a file (run)').argParser(value => path.resolve(process.cwd(), value)))
|
|
86
|
+
.addOption(new Option('-t, --timeout <ms>', 'Stop waiting for the run after this many milliseconds (run)')
|
|
87
|
+
.default(DEFAULT_HEADLESS_RUN_TIMEOUT_IN_MS)
|
|
88
|
+
.argParser(value => {
|
|
89
|
+
const timeout = Number.parseInt(value, 10);
|
|
90
|
+
if (!Number.isInteger(timeout) || timeout < 0)
|
|
91
|
+
throw new Error('Invalid timeout');
|
|
92
|
+
return timeout;
|
|
93
|
+
}))
|
|
94
|
+
.option('--trace', 'Include the activities, logs and child runs in the output (run)', false)
|
|
95
|
+
.action(async (workflowId, action, options) => {
|
|
96
|
+
if (options.envFileIfExists && fs.existsSync(options.envFileIfExists))
|
|
97
|
+
Object.assign(options.env, parseEnv(fs.readFileSync(options.envFileIfExists, 'utf8')));
|
|
98
|
+
let app = null;
|
|
99
|
+
let exitCode = WORKFLOWS_EXIT_CODE.error;
|
|
100
|
+
const shutdown = async (code) => {
|
|
101
|
+
await app?.down().catch(() => { });
|
|
102
|
+
process.exit(code);
|
|
103
|
+
};
|
|
104
|
+
process.once('SIGINT', () => void shutdown(130));
|
|
105
|
+
process.once('SIGTERM', () => void shutdown(143));
|
|
106
|
+
try {
|
|
107
|
+
if (action === 'run')
|
|
108
|
+
readWorkflowInput(options);
|
|
109
|
+
app = await HeadlessApp.up({
|
|
110
|
+
entrypoint: options.entrypoint,
|
|
111
|
+
env: options.env,
|
|
112
|
+
});
|
|
113
|
+
exitCode = await execute(app, workflowId, action, options);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
print(toErrorOutput(error));
|
|
117
|
+
}
|
|
118
|
+
await shutdown(exitCode);
|
|
119
|
+
});
|
|
120
|
+
//# sourceMappingURL=workflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/commands/workflows/workflows.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t4h.framework/cli",
|
|
3
|
-
"version": "0.0.0-experimental-
|
|
3
|
+
"version": "0.0.0-experimental-20261006121555",
|
|
4
4
|
"description": "CLI tools for the T4H Framework",
|
|
5
5
|
"homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/cli",
|
|
6
6
|
"bugs": "https://github.com/tech4humans-brasil/framework/issues",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@inquirer/prompts": "^8.3.0",
|
|
32
|
-
"@t4h.framework/dev": "^0.0.0-experimental-
|
|
32
|
+
"@t4h.framework/dev": "^0.0.0-experimental-20261006121555",
|
|
33
33
|
"@t4h.framework/harness": "^0.3.2",
|
|
34
34
|
"commander": "^14.0.3",
|
|
35
35
|
"form-data": "^4.0.5",
|