@equt/clis 0.1.22 → 0.1.24
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/dist/asr/client.d.ts +3 -0
- package/dist/asr/client.d.ts.map +1 -0
- package/dist/asr/client.js +39 -0
- package/dist/asr/client.js.map +1 -0
- package/dist/asr/index.d.ts +3 -0
- package/dist/asr/index.d.ts.map +1 -0
- package/dist/asr/index.js +24 -0
- package/dist/asr/index.js.map +1 -0
- package/dist/asr/io.d.ts +3 -0
- package/dist/asr/io.d.ts.map +1 -0
- package/dist/asr/io.js +13 -0
- package/dist/asr/io.js.map +1 -0
- package/dist/relations/commands/list.d.ts.map +1 -1
- package/dist/relations/commands/list.js +9 -6
- package/dist/relations/commands/list.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/asr/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAqBzC,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B9D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
const RECOGNIZE_URL = 'https://openspeech.bytedance.com/api/v3/auc/bigmodel/recognize/flash';
|
|
4
|
+
function getEnv(name) {
|
|
5
|
+
const value = process.env[name];
|
|
6
|
+
if (!value) {
|
|
7
|
+
console.error(`${name} environment variable is not set`);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
export async function recognize(audio) {
|
|
13
|
+
const appKey = getEnv('ASR_APP_KEY');
|
|
14
|
+
const accessKey = getEnv('ASR_ACCESS_KEY');
|
|
15
|
+
const res = await fetch(RECOGNIZE_URL, {
|
|
16
|
+
method: 'POST',
|
|
17
|
+
headers: {
|
|
18
|
+
'X-Api-App-Key': appKey,
|
|
19
|
+
'X-Api-Access-Key': accessKey,
|
|
20
|
+
'X-Api-Resource-Id': 'volc.bigasr.auc_turbo',
|
|
21
|
+
'X-Api-Request-Id': crypto.randomUUID(),
|
|
22
|
+
'X-Api-Sequence': '-1',
|
|
23
|
+
'Content-Type': 'application/json',
|
|
24
|
+
},
|
|
25
|
+
body: JSON.stringify({
|
|
26
|
+
user: { uid: appKey },
|
|
27
|
+
audio: { data: audio.toString('base64') },
|
|
28
|
+
request: { model_name: 'bigmodel' },
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
31
|
+
const statusCode = res.headers.get('X-Api-Status-Code');
|
|
32
|
+
const message = res.headers.get('X-Api-Message');
|
|
33
|
+
if (statusCode !== '20000000') {
|
|
34
|
+
throw new Error(`ASR API error ${statusCode}: ${message}`);
|
|
35
|
+
}
|
|
36
|
+
const body = await res.json();
|
|
37
|
+
return body.result.text;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/asr/client.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,aAAa,GAAG,sEAAsE,CAAA;AAQ5F,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE1C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;QACrC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,MAAM;YACvB,kBAAkB,EAAE,SAAS;YAC7B,mBAAmB,EAAE,uBAAuB;YAC5C,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE;YACvC,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;YACrB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACzC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;SACpC,CAAC;KACH,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAEhD,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,KAAK,OAAO,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAuB,CAAA;IAClD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/asr/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { program } from 'commander';
|
|
4
|
+
import { recognize } from './client.js';
|
|
5
|
+
import { readInput } from './io.js';
|
|
6
|
+
program
|
|
7
|
+
.name('asr')
|
|
8
|
+
.description('Transcribe audio to text via Volcengine ASR')
|
|
9
|
+
.argument('<input>', 'audio file path, or - for stdin')
|
|
10
|
+
.action(async (input) => {
|
|
11
|
+
const audio = await readInput(input);
|
|
12
|
+
const text = await recognize(audio);
|
|
13
|
+
process.stdout.write(text);
|
|
14
|
+
});
|
|
15
|
+
program.parseAsync(process.argv).catch((err) => {
|
|
16
|
+
if (err instanceof Error) {
|
|
17
|
+
console.error(err.message);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
console.error(String(err));
|
|
21
|
+
}
|
|
22
|
+
process.exit(1);
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/asr/index.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,6CAA6C,CAAC;KAC1D,QAAQ,CAAC,SAAS,EAAE,iCAAiC,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;IAC9B,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAA;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;SACI,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
package/dist/asr/io.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/asr/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ9D"}
|
package/dist/asr/io.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import process from 'node:process';
|
|
4
|
+
export async function readInput(input) {
|
|
5
|
+
if (input === '-') {
|
|
6
|
+
const chunks = [];
|
|
7
|
+
for await (const chunk of process.stdin)
|
|
8
|
+
chunks.push(chunk);
|
|
9
|
+
return Buffer.concat(chunks);
|
|
10
|
+
}
|
|
11
|
+
return readFile(input);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/asr/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa;IAC3C,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAClB,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;YACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/relations/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/relations/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoCnD"}
|
|
@@ -5,17 +5,20 @@ export function registerList(program) {
|
|
|
5
5
|
program
|
|
6
6
|
.command('list', { isDefault: true })
|
|
7
7
|
.description('List relations filtered by tag')
|
|
8
|
-
.
|
|
8
|
+
.option('-t, --tag <tag>', 'Tag to filter by')
|
|
9
|
+
.option('-l, --limit <n>', 'Max results to return', '20')
|
|
9
10
|
.action(async (opts) => {
|
|
10
11
|
const yaml = program.opts().yaml;
|
|
11
12
|
const client = createClient();
|
|
12
13
|
const pages = await queryAll(client, {
|
|
13
14
|
data_source_id: DB.Relations,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
...(opts.tag && {
|
|
16
|
+
filter: {
|
|
17
|
+
property: 'Tag',
|
|
18
|
+
multi_select: { contains: opts.tag },
|
|
19
|
+
},
|
|
20
|
+
}),
|
|
21
|
+
}, Number.parseInt(opts.limit));
|
|
19
22
|
const items = pages.map(page => ({
|
|
20
23
|
id: page.id,
|
|
21
24
|
name: extractTitle(page.properties.Name),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/relations/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE9D,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACpC,WAAW,CAAC,gCAAgC,CAAC;SAC7C,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/relations/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE9D,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACpC,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SAC7C,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,IAAI,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,IAAqC,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAqB,CAAC,IAAI,CAAA;QACnD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;QAE7B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;YACnC,cAAc,EAAE,EAAE,CAAC,SAAS;YAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;gBACd,MAAM,EAAE;oBACN,QAAQ,EAAE,KAAK;oBACf,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;iBACrC;aACF,CAAC;SACH,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAE/B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACxC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;SAC7C,CAAC,CAAC,CAAA;QAEH,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;aACI,CAAC;YACJ,WAAW,CACT,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EACrB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACjD,CAAA;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@equt/clis",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.24",
|
|
5
5
|
"packageManager": "bun@1.3.10",
|
|
6
6
|
"bin": {
|
|
7
7
|
"bookkeeping": "./dist/bookkeeping/index.js",
|
|
8
8
|
"komari": "./dist/komari/index.js",
|
|
9
9
|
"recurring": "./dist/recurring/index.js",
|
|
10
|
+
"asr": "./dist/asr/index.js",
|
|
10
11
|
"relations": "./dist/relations/index.js"
|
|
11
12
|
},
|
|
12
13
|
"publishConfig": {
|