@aiaiai-pt/frankctl 0.4.0 → 0.4.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/CHANGELOG.md +4 -0
- package/README.md +2 -2
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to `@aiaiai-pt/frankctl` are documented here. This project
|
|
4
4
|
adheres to [Semantic Versioning](https://semver.org/).
|
|
5
5
|
|
|
6
|
+
## 0.4.1
|
|
7
|
+
|
|
8
|
+
- Point homepage/docs links at https://franksdocs.nomadriver.co (custom domain).
|
|
9
|
+
|
|
6
10
|
## 0.4.0
|
|
7
11
|
|
|
8
12
|
- First public release to npm as `@aiaiai-pt/frankctl` (binary `frankctl`).
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frankctl
|
|
2
2
|
|
|
3
|
-
Terminal-first CLI for the [Frank Low-Code Pipeline](https://
|
|
3
|
+
Terminal-first CLI for the [Frank Low-Code Pipeline](https://franksdocs.nomadriver.co) platform — scriptable access to sources, streams, transforms, pipelines, backing datasets, and AI assistance.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ frankctl --api-url https://frank.example.com sources list
|
|
|
19
19
|
frankctl pipelines apply -f pipeline.yaml
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Full command reference: the [Frank docs](https://
|
|
22
|
+
Full command reference: the [Frank docs](https://franksdocs.nomadriver.co) and `frankctl <command> --help`.
|
|
23
23
|
|
|
24
24
|
## Develop from source
|
|
25
25
|
|
package/dist/index.js
CHANGED
|
@@ -341,7 +341,7 @@ rationale: ${l.rationale||"(none)"}
|
|
|
341
341
|
`),S(l),process.exit(5));let u=dP(l);process.stdout.write(u);return}S(l)}),n.command("pattern-params").description("Suggest pattern parameters from intent").requiredOption("-f, --file <path>","spec file with {pattern_id, intent}").action(async(i,r)=>{let o=r.optsWithGlobals(),s=tt(o),a=await ce(async()=>H(i.file,Wb)),c=xt(await ce(()=>s.post("/api/v1/ai/suggest-pattern-params",a)));S(c)}),e.command("publish-transform").description("Open a PR against frank-transforms with generated files").requiredOption("-f, --file <path>","spec file with {pattern_id, files}").action(async(i,r)=>{let o=r.optsWithGlobals(),s=tt(o),a=await ce(async()=>H(i.file,Yb)),c=xt(await ce(()=>s.post("/api/v1/ai/publish-transform",a)));S(c)})}function pP(t){let e=G({profile:t.profile,apiUrl:t.apiUrl}),n={enabled:process.env.FRANK_DEV_MODE==="true",tenantId:process.env.FRANKCTL_TENANT_ID};return new re({profile:e,getToken:()=>te({profile:t.profile,apiUrl:t.apiUrl}),devMode:n})}async function l$(t){try{return await t()}catch(e){throw(e instanceof R||e instanceof U)&&(process.stderr.write(`${e.message}
|
|
342
342
|
`),process.exit(e.exitCode)),e}}function u$(t){t.command("admin").description("Operational maintenance").command("reconcile-runs").description("Sync stuck transform runs with their backend and heal zombie last_run_outcome=RUNNING markers (transforms that can never be triggered because their cache says a run is in flight when none is)").option("--force","reconcile all active runs, not just stale ones",!1).option("--dry-run","list zombie transforms that would be healed; change nothing",!1).action(async(n,i)=>{let r=i.optsWithGlobals(),o=pP(r);if(n.dryRun){let a=await l$(()=>o.get("/api/v1/admin/zombie-transforms"));if(r.json)return S(a);if(!a.length){process.stderr.write(`no zombie transforms
|
|
343
343
|
`);return}J(a,[{key:"id",header:"ID"},{key:"current_outcome",header:"CURRENT"},{key:"would_heal_to",header:"WOULD_HEAL_TO"}]);return}let s=await l$(()=>o.post(`/api/v1/admin/reconcile-runs?force_all=${n.force?"true":"false"}`));if(r.json)return S(s);process.stderr.write(`${s.message}
|
|
344
|
-
`)})}var mP="0.4.
|
|
344
|
+
`)})}var mP="0.4.1";function gP(){let t=new Im;return t.name("frankctl").description("Frank CLI \u2014 scriptable access to the Frank API").version(mP).option("-p, --profile <name>","config profile to use").option("--json","emit machine-readable JSON output").option("-v, --verbose","verbose logging").option("-q, --quiet","suppress non-error output").option("--no-color","disable ANSI colors").option("--api-url <url>","override the API base URL").showHelpAfterError(),$b(t),Sb(t),xb(t),Cb(t),Db(t),e$(t),r$(t),n$(t),i$(t),o$(t),s$(t),c$(t),u$(t),t}function nD(t){return t.optsWithGlobals()}function iD(t){return new Br({verbose:t.verbose??!1,quiet:t.quiet??!1,color:t.color!==!1})}async function hP(t){let e=gP();e.exitOverride();try{return await e.parseAsync(t),0}catch(n){if(n instanceof U)return process.stderr.write(`error: ${n.message}
|
|
345
345
|
`),n.exitCode;let i=n;return i.code==="commander.helpDisplayed"||i.code==="commander.version"?0:i.code?.startsWith("commander.")?(i.message&&process.stderr.write(`${i.message}
|
|
346
346
|
`),2):(process.stderr.write(`error: ${i.message??String(n)}
|
|
347
347
|
`),1)}}function vP(){try{let t=fP(process.argv[1]??""),e=new URL(import.meta.url).pathname;return t===e}catch{return!1}}vP()&&hP(process.argv).then(t=>process.exit(t));export{gP as buildProgram,hP as main,iD as makeLogger,nD as resolveGlobalOptions};
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiaiai-pt/frankctl",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Terminal-first client for the Frank Low-Code Pipeline platform",
|
|
5
|
-
"homepage": "https://
|
|
5
|
+
"homepage": "https://franksdocs.nomadriver.co",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/westeuropeco/frank-low-code.git",
|