@h-ear/openclaw 1.0.17 → 1.1.5-dev.202604290216
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/SKILL.md +26 -10
- package/dist/cli.d.ts +10 -12
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +245 -110
- package/dist/cli.js.map +1 -1
- package/dist/commands/classify-batch.d.ts +2 -0
- package/dist/commands/classify-batch.d.ts.map +1 -1
- package/dist/commands/classify-batch.js +4 -0
- package/dist/commands/classify-batch.js.map +1 -1
- package/dist/commands/classify.d.ts +17 -5
- package/dist/commands/classify.d.ts.map +1 -1
- package/dist/commands/classify.js +93 -3
- package/dist/commands/classify.js.map +1 -1
- package/dist/commands/job-events.d.ts +6 -0
- package/dist/commands/job-events.d.ts.map +1 -1
- package/dist/commands/job-events.js +6 -0
- package/dist/commands/job-events.js.map +1 -1
- package/dist/commands/job-report.d.ts +3 -0
- package/dist/commands/job-report.d.ts.map +1 -0
- package/dist/commands/job-report.js +6 -0
- package/dist/commands/job-report.js.map +1 -0
- package/dist/commands/sounds.d.ts +1 -0
- package/dist/commands/sounds.d.ts.map +1 -1
- package/dist/commands/sounds.js +1 -0
- package/dist/commands/sounds.js.map +1 -1
- package/dist/commands/webhooks.d.ts +3 -1
- package/dist/commands/webhooks.d.ts.map +1 -1
- package/dist/commands/webhooks.js +9 -1
- package/dist/commands/webhooks.js.map +1 -1
- package/dist/formatter.d.ts +4 -1
- package/dist/formatter.d.ts.map +1 -1
- package/dist/formatter.js +35 -11
- package/dist/formatter.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +67 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +331 -0
- package/dist/manifest.js.map +1 -0
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -1,29 +1,45 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: h-ear
|
|
3
3
|
description: "H-ear.world transforms sound into an actionable, meaningful translation layer of the world around you. Describe, share and act upon environmental audio as a machine sensor that empowers you, your business and your AI flow."
|
|
4
|
-
version:
|
|
4
|
+
version: 1.1.5
|
|
5
5
|
author: H-ear World
|
|
6
6
|
homepage: https://h-ear.world
|
|
7
7
|
metadata: {"openclaw": {"requires": {"env": ["HEAR_API_KEY", "HEAR_ENV"], "bins": []}, "primaryEnv": "HEAR_API_KEY"}}
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
<!-- Version: keep in sync with package.json. Runtime code reads from package.json
|
|
11
|
+
via createRequire — this header is the static manifest the OpenClaw gateway
|
|
12
|
+
parses at install/registration time. Bump both together. -->
|
|
13
|
+
|
|
10
14
|
# H-ear — Sound Intelligence for AI Agents
|
|
11
15
|
|
|
12
16
|
H-ear.world transforms sound into an actionable, meaningful translation layer of the world around you. Describe, share and act upon environmental audio as a machine sensor that empowers you, your business and your AI flow.
|
|
13
17
|
|
|
14
18
|
## Commands
|
|
15
19
|
|
|
20
|
+
<!-- @doc-sync-ref gen:#openclaw-commands -->
|
|
16
21
|
| Command | Description |
|
|
17
22
|
|---------|-------------|
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `sounds
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `job <
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
23
|
+
| `h-ear health` | Check H-ear API health and liveness (no auth required). |
|
|
24
|
+
| `h-ear usage` | Show API usage statistics (minutes, calls, quota). |
|
|
25
|
+
| `h-ear sounds <search>` | List supported sound classes (521+ across 3 taxonomies). |
|
|
26
|
+
| `h-ear jobs` | List recent classification jobs (paginated). |
|
|
27
|
+
| `h-ear job <jobId>` | Get detail for one job: status, fileName, eventCount, timestamps. |
|
|
28
|
+
| `h-ear job events <jobId>` | Get noise events for a completed job (timeline order, filterable). |
|
|
29
|
+
| `h-ear job audio <jobId>` | Get a 1-hour SAS URL to stream the source audio of a job. |
|
|
30
|
+
| `h-ear job waveform <jobId>` | Get pre-computed peaks.js waveform + audio URL. |
|
|
31
|
+
| `h-ear job report <jobId>` | Get a 7-day SAS URL to download the Excel analysis report. |
|
|
32
|
+
| `h-ear classify <fileOrUrl>` | Classify audio (URL or local file). Polls until complete. |
|
|
33
|
+
| `h-ear webhook list` | List enterprise webhook registrations. |
|
|
34
|
+
| `h-ear webhook get <webhookId>` | Show one webhook (URL, events, filter config, delivery stats). |
|
|
35
|
+
| `h-ear webhook create <url>` | Create an enterprise webhook (returns signing secret ONCE). |
|
|
36
|
+
| `h-ear webhook update <webhookId>` | Update webhook URL, status (active/paused), or filters. |
|
|
37
|
+
| `h-ear webhook delete <webhookId>` | Permanently delete a webhook (cannot be undone). |
|
|
38
|
+
| `h-ear webhook ping <webhookId>` | Send a test ping to a webhook (verify connectivity + signing). |
|
|
39
|
+
| `h-ear webhook deliveries <webhookId>` | Audit trail: recent delivery attempts for a webhook. |
|
|
40
|
+
<!-- @end-doc-ref -->
|
|
41
|
+
|
|
42
|
+
For per-command help with all flags and examples, run `h-ear <command> --help`. For machine-readable schemas (LLM-friendly introspection): `h-ear --list-tools --json`.
|
|
27
43
|
|
|
28
44
|
## Setup
|
|
29
45
|
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* h-ear CLI —
|
|
3
|
+
* h-ear CLI — manifest-driven dispatcher for the H-ear OpenClaw skill.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
5
|
+
* The command surface (commands, flags, positionals, descriptions, examples)
|
|
6
|
+
* is declared exactly once in [manifest.ts]. This file only:
|
|
7
|
+
* 1. Parses argv into { positionals, flags, bools }
|
|
8
|
+
* 2. Resolves the manifest entry for the user's path
|
|
9
|
+
* 3. Calls its handler, prints the formatted result
|
|
10
|
+
* 4. Emits help (top-level, per-subcommand) and `--list-tools --json` from
|
|
11
|
+
* the same manifest
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* HEAR_ENV Environment: dev, staging, prod (default: prod)
|
|
16
|
-
* LISTEN_RTSP_URL RTSP source URL (for capture command)
|
|
13
|
+
* If a flag is missing or wrong, the LLM (or human) sees a "did you mean"
|
|
14
|
+
* pointer at the next-likely subcommand instead of a stack trace.
|
|
17
15
|
*/
|
|
18
16
|
export {};
|
|
19
17
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
|
package/dist/cli.js
CHANGED
|
@@ -1,42 +1,158 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* h-ear CLI —
|
|
3
|
+
* h-ear CLI — manifest-driven dispatcher for the H-ear OpenClaw skill.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
5
|
+
* The command surface (commands, flags, positionals, descriptions, examples)
|
|
6
|
+
* is declared exactly once in [manifest.ts]. This file only:
|
|
7
|
+
* 1. Parses argv into { positionals, flags, bools }
|
|
8
|
+
* 2. Resolves the manifest entry for the user's path
|
|
9
|
+
* 3. Calls its handler, prints the formatted result
|
|
10
|
+
* 4. Emits help (top-level, per-subcommand) and `--list-tools --json` from
|
|
11
|
+
* the same manifest
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* HEAR_ENV Environment: dev, staging, prod (default: prod)
|
|
16
|
-
* LISTEN_RTSP_URL RTSP source URL (for capture command)
|
|
13
|
+
* If a flag is missing or wrong, the LLM (or human) sees a "did you mean"
|
|
14
|
+
* pointer at the next-likely subcommand instead of a stack trace.
|
|
17
15
|
*/
|
|
18
|
-
import { readFileSync, unlinkSync, existsSync, mkdirSync } from 'fs';
|
|
16
|
+
import { readFileSync, unlinkSync, existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
19
17
|
import { spawnSync } from 'child_process';
|
|
20
18
|
import { join } from 'path';
|
|
21
19
|
import { tmpdir } from 'os';
|
|
20
|
+
import { toolDescriptions, toolShapes } from '@h-ear/core';
|
|
22
21
|
import { createSkill } from './index.js';
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
22
|
+
import { COMMANDS, findCommand, listToolsJson } from './manifest.js';
|
|
23
|
+
import { classifyFileCommand } from './commands/classify.js';
|
|
24
|
+
/** Split argv into path tokens + flag/positional buckets. */
|
|
25
|
+
function parseArgv(argv, spec) {
|
|
26
|
+
const flags = {};
|
|
27
|
+
const bools = {};
|
|
28
|
+
const positionalValues = [];
|
|
29
|
+
let wantsHelp = false;
|
|
30
|
+
// First, pull out the path tokens for the matched spec — they are NOT positionals.
|
|
31
|
+
const pathLen = spec?.cliPath.length ?? 0;
|
|
32
|
+
const rest = argv.slice(pathLen);
|
|
33
|
+
for (let i = 0; i < rest.length; i++) {
|
|
34
|
+
const tok = rest[i];
|
|
35
|
+
if (tok === '--help' || tok === '-h') {
|
|
36
|
+
wantsHelp = true;
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (tok.startsWith('--')) {
|
|
40
|
+
const name = tok.slice(2);
|
|
41
|
+
const next = rest[i + 1];
|
|
42
|
+
if (next !== undefined && !next.startsWith('-')) {
|
|
43
|
+
flags[name] = next;
|
|
44
|
+
i++;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
bools[name] = true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
positionalValues.push(tok);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Bind positional values to their declared names in spec order.
|
|
55
|
+
const positionals = {};
|
|
56
|
+
if (spec?.positionals) {
|
|
57
|
+
spec.positionals.forEach((p, idx) => {
|
|
58
|
+
positionals[p.name] = positionalValues[idx];
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
pathTokens: argv.slice(0, pathLen),
|
|
63
|
+
parsed: { positionals, flags, bools },
|
|
64
|
+
wantsHelp,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// ─── Help renderers ──────────────────────────────────────────────────────────
|
|
68
|
+
const HEADER = `h-ear — Sound Intelligence CLI for the H-ear API
|
|
69
|
+
Documentation: https://h-ear.world · Skill: @h-ear/openclaw
|
|
70
|
+
|
|
71
|
+
Usage:
|
|
72
|
+
h-ear <command> [args] [flags]
|
|
73
|
+
h-ear <command> --help Show flags + examples for one command
|
|
74
|
+
h-ear --list-tools --json Emit MCP-style schemas for all commands
|
|
75
|
+
h-ear --version Print the skill version`;
|
|
76
|
+
const ENV_DOCS = `Environment variables:
|
|
77
|
+
HEAR_API_KEY H-ear Enterprise API key (required for most commands)
|
|
78
|
+
HEAR_BEARER_TOKEN OAuth bearer (alternative to HEAR_API_KEY)
|
|
79
|
+
HEAR_ENV dev | staging | prod (default: prod)
|
|
80
|
+
HEAR_BASE_URL Override base URL (advanced)
|
|
81
|
+
LISTEN_RTSP_URL RTSP source (only for h-ear capture)`;
|
|
82
|
+
function pad(s, n) { return s.length >= n ? s : s + ' '.repeat(n - s.length); }
|
|
83
|
+
function renderTopLevelHelp() {
|
|
84
|
+
const lines = [HEADER, '', 'Commands:'];
|
|
85
|
+
// Group by first path token so multi-level commands cluster nicely.
|
|
86
|
+
const groups = new Map();
|
|
87
|
+
for (const spec of COMMANDS) {
|
|
88
|
+
const head = spec.cliPath[0];
|
|
89
|
+
const existing = groups.get(head);
|
|
90
|
+
if (existing)
|
|
91
|
+
existing.push(spec);
|
|
92
|
+
else
|
|
93
|
+
groups.set(head, [spec]);
|
|
94
|
+
}
|
|
95
|
+
// Stable group order: alphabetical.
|
|
96
|
+
const groupNames = [...groups.keys()].sort();
|
|
97
|
+
for (const name of groupNames) {
|
|
98
|
+
const specs = groups.get(name) ?? [];
|
|
99
|
+
for (const spec of specs) {
|
|
100
|
+
const path = spec.cliPath.join(' ');
|
|
101
|
+
const positionalStr = spec.positionals?.map(p => `<${p.name}>`).join(' ') ?? '';
|
|
102
|
+
const sig = `${path}${positionalStr ? ' ' + positionalStr : ''}`;
|
|
103
|
+
lines.push(` ${pad(sig, 32)}${spec.summary}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
lines.push('', ENV_DOCS);
|
|
107
|
+
return lines.join('\n');
|
|
35
108
|
}
|
|
36
|
-
function
|
|
37
|
-
|
|
109
|
+
function renderCommandHelp(spec) {
|
|
110
|
+
const path = spec.cliPath.join(' ');
|
|
111
|
+
const positionalStr = spec.positionals?.map(p => `<${p.name}>`).join(' ') ?? '';
|
|
112
|
+
const lines = [
|
|
113
|
+
`h-ear ${path}${positionalStr ? ' ' + positionalStr : ''}`,
|
|
114
|
+
'',
|
|
115
|
+
spec.summary,
|
|
116
|
+
'',
|
|
117
|
+
toolDescriptions[spec.schemaName] ?? '',
|
|
118
|
+
'',
|
|
119
|
+
];
|
|
120
|
+
if (spec.positionals?.length) {
|
|
121
|
+
lines.push('Positional arguments:');
|
|
122
|
+
for (const p of spec.positionals) {
|
|
123
|
+
const shape = toolShapes[spec.schemaName];
|
|
124
|
+
const zod = shape?.[p.schemaKey];
|
|
125
|
+
const desc = zod?._def?.description ?? '';
|
|
126
|
+
lines.push(` ${pad(`<${p.name}>`, 24)}${desc}`);
|
|
127
|
+
}
|
|
128
|
+
lines.push('');
|
|
129
|
+
}
|
|
130
|
+
if (spec.flags?.length) {
|
|
131
|
+
lines.push('Flags:');
|
|
132
|
+
for (const f of spec.flags) {
|
|
133
|
+
const shape = toolShapes[spec.schemaName];
|
|
134
|
+
const zod = shape?.[f.schemaKey];
|
|
135
|
+
const desc = zod?._def?.description ?? '';
|
|
136
|
+
lines.push(` ${pad(`--${f.name}`, 24)}${desc}`);
|
|
137
|
+
}
|
|
138
|
+
lines.push('');
|
|
139
|
+
}
|
|
140
|
+
lines.push('Examples:');
|
|
141
|
+
for (const ex of spec.examples)
|
|
142
|
+
lines.push(` ${ex}`);
|
|
143
|
+
return lines.join('\n');
|
|
38
144
|
}
|
|
39
|
-
|
|
145
|
+
/**
|
|
146
|
+
* Find the most plausible commands given an unrecognised CLI path.
|
|
147
|
+
* Used to suggest "did you mean..." instead of failing opaquely.
|
|
148
|
+
*/
|
|
149
|
+
function suggestNear(tokens) {
|
|
150
|
+
if (tokens.length === 0)
|
|
151
|
+
return [];
|
|
152
|
+
const head = tokens[0];
|
|
153
|
+
return COMMANDS.filter(c => c.cliPath[0] === head).slice(0, 5);
|
|
154
|
+
}
|
|
155
|
+
// ─── Capture (RTSP audio) — lives in CLI; not in manifest because it does I/O ──
|
|
40
156
|
function captureAudio(sourceUrl, durationSec) {
|
|
41
157
|
const tmpDir = join(tmpdir(), 'h-ear-listen');
|
|
42
158
|
if (!existsSync(tmpDir))
|
|
@@ -65,101 +181,120 @@ function captureAudio(sourceUrl, durationSec) {
|
|
|
65
181
|
}
|
|
66
182
|
return { buffer: Buffer.from(buffer), fileName: `capture_${timestamp}_${durationSec}s.wav` };
|
|
67
183
|
}
|
|
68
|
-
//
|
|
184
|
+
// ─── Main ────────────────────────────────────────────────────────────────────
|
|
69
185
|
async function main() {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
h-ear health Check API status
|
|
75
|
-
h-ear sounds [search] List sound classes (521+)
|
|
76
|
-
h-ear usage Show API usage stats
|
|
77
|
-
h-ear classify <file-or-url> Classify audio (waits for results)
|
|
78
|
-
h-ear capture [--duration 15] Capture from RTSP camera and classify
|
|
79
|
-
h-ear jobs [--limit 5] List recent jobs
|
|
80
|
-
|
|
81
|
-
Environment:
|
|
82
|
-
HEAR_API_KEY H-ear API key (required)
|
|
83
|
-
HEAR_ENV dev | staging | prod (default: prod)
|
|
84
|
-
LISTEN_RTSP_URL RTSP camera URL (for capture command)`);
|
|
186
|
+
const argv = process.argv.slice(2);
|
|
187
|
+
// Top-level switches that don't need a skill instance:
|
|
188
|
+
if (argv.length === 0 || argv[0] === 'help' || argv[0] === '--help' || argv[0] === '-h') {
|
|
189
|
+
console.log(renderTopLevelHelp());
|
|
85
190
|
return;
|
|
86
191
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
192
|
+
if (argv[0] === '--version' || argv[0] === '-v') {
|
|
193
|
+
const { version } = createSkillSafe();
|
|
194
|
+
console.log(version);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (argv[0] === '--list-tools') {
|
|
198
|
+
if (argv.includes('--json')) {
|
|
199
|
+
console.log(JSON.stringify(listToolsJson(), null, 2));
|
|
92
200
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
201
|
+
else {
|
|
202
|
+
// Human-readable enumeration for terminal users.
|
|
203
|
+
for (const spec of COMMANDS) {
|
|
204
|
+
console.log(`${spec.cliPath.join(' ').padEnd(28)}${spec.summary}`);
|
|
205
|
+
}
|
|
98
206
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
// Manifest-driven commands first.
|
|
210
|
+
const matched = findCommand(argv);
|
|
211
|
+
if (matched) {
|
|
212
|
+
const { spec } = matched;
|
|
213
|
+
const parsed = parseArgv(argv, spec);
|
|
214
|
+
if (parsed.wantsHelp) {
|
|
215
|
+
console.log(renderCommandHelp(spec));
|
|
216
|
+
return;
|
|
102
217
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
break;
|
|
218
|
+
const { client } = createSkill();
|
|
219
|
+
const out = await spec.handler(client, parsed.parsed);
|
|
220
|
+
console.log(out);
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
// Special-case: capture stays imperative (does ffmpeg I/O before classifying).
|
|
224
|
+
if (argv[0] === 'listen' || argv[0] === 'capture') {
|
|
225
|
+
const parsed = parseArgv(argv, null);
|
|
226
|
+
if (parsed.wantsHelp) {
|
|
227
|
+
console.log([
|
|
228
|
+
'h-ear capture [--rtsp <url>] [--duration 15] [--no-classify]',
|
|
229
|
+
'',
|
|
230
|
+
'Capture audio from an RTSP camera and (by default) classify it.',
|
|
231
|
+
'',
|
|
232
|
+
'Flags:',
|
|
233
|
+
` ${pad('--rtsp <url>', 24)}RTSP source URL (or set LISTEN_RTSP_URL).`,
|
|
234
|
+
` ${pad('--duration <sec>', 24)}Capture length in seconds (default 15).`,
|
|
235
|
+
` ${pad('--no-classify', 24)}Capture only, do not submit for classification.`,
|
|
236
|
+
'',
|
|
237
|
+
'Examples:',
|
|
238
|
+
' h-ear capture --duration 30',
|
|
239
|
+
' LISTEN_RTSP_URL=rtsp://cam:554/stream h-ear capture',
|
|
240
|
+
].join('\n'));
|
|
241
|
+
return;
|
|
128
242
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
console.
|
|
145
|
-
const result = await client.pollJob(accepted.requestId, (msg) => console.error(` ${msg}`));
|
|
146
|
-
console.log(formatClassifyResult(result));
|
|
243
|
+
const rtspUrl = parsed.parsed.flags.rtsp ?? process.env.LISTEN_RTSP_URL;
|
|
244
|
+
if (!rtspUrl) {
|
|
245
|
+
console.error('Error: RTSP URL required. Pass --rtsp <url> or set LISTEN_RTSP_URL');
|
|
246
|
+
process.exit(1);
|
|
247
|
+
}
|
|
248
|
+
const duration = parseInt(parsed.parsed.flags.duration ?? '15', 10);
|
|
249
|
+
const classifyAfter = !parsed.parsed.bools['no-classify'];
|
|
250
|
+
console.error(` Capturing ${duration}s audio from ${rtspUrl}...`);
|
|
251
|
+
const { buffer, fileName } = captureAudio(rtspUrl, duration);
|
|
252
|
+
console.error(` Captured ${(buffer.length / 1024).toFixed(0)} KB`);
|
|
253
|
+
if (classifyAfter) {
|
|
254
|
+
const { client } = createSkill();
|
|
255
|
+
const tmpFile = join(tmpdir(), 'h-ear-listen', fileName);
|
|
256
|
+
writeFileSync(tmpFile, buffer);
|
|
257
|
+
try {
|
|
258
|
+
console.log(await classifyFileCommand(client, tmpFile, { threshold: 0.3, waitForResult: true }, (msg) => console.error(` ${msg}`)));
|
|
147
259
|
}
|
|
148
|
-
|
|
149
|
-
|
|
260
|
+
finally {
|
|
261
|
+
try {
|
|
262
|
+
unlinkSync(tmpFile);
|
|
263
|
+
}
|
|
264
|
+
catch { /* best effort */ }
|
|
150
265
|
}
|
|
151
|
-
break;
|
|
152
266
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
console.log(await jobsCommand(client, { limit }));
|
|
156
|
-
break;
|
|
267
|
+
else {
|
|
268
|
+
console.log(`Captured: ${fileName} (${(buffer.length / 1024).toFixed(0)} KB)`);
|
|
157
269
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
// Unknown — give the LLM (or human) a useful pointer instead of a stack trace.
|
|
273
|
+
const suggestions = suggestNear(argv);
|
|
274
|
+
console.error(`Unknown command: ${argv.join(' ')}`);
|
|
275
|
+
if (suggestions.length > 0) {
|
|
276
|
+
console.error('');
|
|
277
|
+
console.error('Did you mean:');
|
|
278
|
+
for (const s of suggestions) {
|
|
279
|
+
console.error(` h-ear ${s.cliPath.join(' ')} ${s.summary}`);
|
|
161
280
|
}
|
|
162
281
|
}
|
|
282
|
+
else {
|
|
283
|
+
console.error('');
|
|
284
|
+
console.error("Run 'h-ear help' or 'h-ear --list-tools' to see all commands.");
|
|
285
|
+
}
|
|
286
|
+
process.exit(1);
|
|
287
|
+
}
|
|
288
|
+
/** Like createSkill, but tolerant of missing API key (we may just want --version). */
|
|
289
|
+
function createSkillSafe() {
|
|
290
|
+
try {
|
|
291
|
+
return createSkill();
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// Resolve version directly from package.json without instantiating the client.
|
|
295
|
+
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));
|
|
296
|
+
return { version: pkg.version };
|
|
297
|
+
}
|
|
163
298
|
}
|
|
164
299
|
main().catch((err) => {
|
|
165
300
|
console.error(`Error: ${err.message}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,gFAAgF;AAEhF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAElC,SAAS,OAAO,CAAC,IAAY;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,gFAAgF;AAEhF,SAAS,YAAY,CAAC,SAAiB,EAAE,WAAmB;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,SAAS,IAAI,WAAW,OAAO,CAAC,CAAC;IAEzE,MAAM,UAAU,GAAa,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC/E,UAAU,CAAC,IAAI,CACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EACzD,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAClD,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,IAAI;KACrC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,MAAM,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC;QAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iDAAiD,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;IAAC,CAAC;IAC5H,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,SAAS,IAAI,WAAW,OAAO,EAAE,CAAC;AACjG,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,IAAI;IACf,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;0DAasC,CAAC,CAAC;QACpD,OAAO;IACX,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEjC,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM;QACV,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,MAAM;QACV,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YACxC,MAAM;QACV,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YAEvF,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChE,uCAAuC;gBACvC,OAAO,CAAC,GAAG,CAAC,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1G,CAAC;iBAAM,CAAC;gBACJ,8BAA8B;gBAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAChG,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,WAAW,CAAC;gBAC5D,OAAO,CAAC,KAAK,CAAC,eAAe,QAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBACtF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvF,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,SAAS,qBAAqB,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5F,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM;QACV,CAAC;QACD,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;gBACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAEhD,OAAO,CAAC,KAAK,CAAC,eAAe,QAAQ,gBAAgB,OAAO,KAAK,CAAC,CAAC;YACnE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAEpE,IAAI,aAAa,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,eAAe,QAAQ,KAAK,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvF,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,SAAS,qBAAqB,CAAC,CAAC;gBAChE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5F,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACnF,CAAC;YACD,MAAM;QACV,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM;QACV,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,+BAA+B,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAqC,MAAM,eAAe,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAU7D,6DAA6D;AAC7D,SAAS,SAAS,CAAC,IAAc,EAAE,IAAwB;IACvD,MAAM,KAAK,GAAuC,EAAE,CAAC;IACrD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,mFAAmF;IACnF,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAAC,SAAS,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QACrE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACnB,CAAC,EAAE,CAAC;YACR,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACvB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,MAAM,WAAW,GAAuC,EAAE,CAAC;IAC3D,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAChC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QAClC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE;QACrC,SAAS;KACZ,CAAC;AACN,CAAC;AAED,gFAAgF;AAEhF,MAAM,MAAM,GAAG;;;;;;;4DAO6C,CAAC;AAE7D,MAAM,QAAQ,GAAG;;;;;yDAKwC,CAAC;AAE1D,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,IAAY,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEvG,SAAS,kBAAkB;IACvB,MAAM,KAAK,GAAa,CAAC,MAAM,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IAElD,oEAAoE;IACpE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,oCAAoC;IACpC,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChF,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAiB;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAChF,MAAM,KAAK,GAAa;QACpB,SAAS,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1D,EAAE;QACF,IAAI,CAAC,OAAO;QACZ,EAAE;QACF,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QACvC,EAAE;KACL,CAAC;IAEF,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACjC,MAAM,IAAI,GAAI,GAAuD,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;YAC/F,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACjC,MAAM,IAAI,GAAI,GAAuD,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;YAC/F,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,MAAgB;IACjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,kFAAkF;AAElF,SAAS,YAAY,CAAC,SAAiB,EAAE,WAAmB;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,SAAS,IAAI,WAAW,OAAO,CAAC,CAAC;IAEzE,MAAM,UAAU,GAAa,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC/E,UAAU,CAAC,IAAI,CACX,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EACzD,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAClD,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE;QAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,IAAI;KACrC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,MAAM,MAAM,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC;QAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iDAAiD,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;IAAC,CAAC;IAC5H,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,SAAS,IAAI,WAAW,OAAO,EAAE,CAAC;AACjG,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,uDAAuD;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAClC,OAAO;IACX,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,iDAAiD;YACjD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QACD,OAAO;IACX,CAAC;IAED,kCAAkC;IAClC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,OAAO;QACX,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO;IACX,CAAC;IAED,+EAA+E;IAC/E,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC;gBACR,8DAA8D;gBAC9D,EAAE;gBACF,iEAAiE;gBACjE,EAAE;gBACF,QAAQ;gBACR,KAAK,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,2CAA2C;gBACvE,KAAK,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,yCAAyC;gBACzE,KAAK,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,iDAAiD;gBAC9E,EAAE;gBACF,WAAW;gBACX,+BAA+B;gBAC/B,uDAAuD;aAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACd,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE1D,OAAO,CAAC,KAAK,CAAC,eAAe,QAAQ,gBAAgB,OAAO,KAAK,CAAC,CAAC;QACnE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEpE,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;YACzD,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,MAAM,mBAAmB,CACjC,MAAM,EACN,OAAO,EACP,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,EACvC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CACrC,CAAC,CAAC;YACP,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC;oBAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACnF,CAAC;QACD,OAAO;IACX,CAAC;IAED,+EAA+E;IAC/E,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,sFAAsF;AACtF,SAAS,eAAe;IACpB,IAAI,CAAC;QACD,OAAO,WAAW,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACL,+EAA+E;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3F,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -2,5 +2,7 @@ import type { HearApiClient } from '@h-ear/core';
|
|
|
2
2
|
export declare function classifyBatchCommand(client: HearApiClient, urls: string[], options?: {
|
|
3
3
|
threshold?: number;
|
|
4
4
|
callbackUrl?: string;
|
|
5
|
+
callbackSecret?: string;
|
|
6
|
+
filterMinDurationSeconds?: number;
|
|
5
7
|
}): Promise<string>;
|
|
6
8
|
//# sourceMappingURL=classify-batch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-batch.d.ts","sourceRoot":"","sources":["../../src/commands/classify-batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"classify-batch.d.ts","sourceRoot":"","sources":["../../src/commands/classify-batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACrC,GACF,OAAO,CAAC,MAAM,CAAC,CAmBjB"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export async function classifyBatchCommand(client, urls, options) {
|
|
2
|
+
// Note: BatchRequest does not currently accept GPS — apply per-file via classifyFileCommand
|
|
3
|
+
// if you need to tag local recordings with location.
|
|
2
4
|
const files = urls.map((url, i) => ({ url, id: `file-${i + 1}` }));
|
|
3
5
|
const result = await client.classifyBatch({
|
|
4
6
|
files,
|
|
5
7
|
callbackUrl: options?.callbackUrl ?? '',
|
|
8
|
+
callbackSecret: options?.callbackSecret,
|
|
6
9
|
threshold: options?.threshold ?? 0.3,
|
|
10
|
+
filterMinDurationSeconds: options?.filterMinDurationSeconds,
|
|
7
11
|
});
|
|
8
12
|
return [
|
|
9
13
|
`**Batch Submitted**`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-batch.js","sourceRoot":"","sources":["../../src/commands/classify-batch.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,MAAqB,EACrB,IAAc,EACd,
|
|
1
|
+
{"version":3,"file":"classify-batch.js","sourceRoot":"","sources":["../../src/commands/classify-batch.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,MAAqB,EACrB,IAAc,EACd,OAKC;IAED,4FAA4F;IAC5F,qDAAqD;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;QACtC,KAAK;QACL,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;QACvC,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,GAAG;QACpC,wBAAwB,EAAE,OAAO,EAAE,wBAAwB;KAC9D,CAAC,CAAC;IAEH,OAAO;QACH,qBAAqB;QACrB,aAAa,MAAM,CAAC,OAAO,EAAE;QAC7B,UAAU,MAAM,CAAC,SAAS,EAAE;QAC5B,eAAe,MAAM,CAAC,0BAA0B,MAAM;QACtD,WAAW,MAAM,CAAC,MAAM,EAAE;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC"}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import type { HearApiClient } from '@h-ear/core';
|
|
2
|
-
|
|
3
|
-
export declare function classifyCommand(client: HearApiClient, url: string, options?: {
|
|
2
|
+
interface ClassifyOpts {
|
|
4
3
|
threshold?: number;
|
|
5
4
|
callbackUrl?: string;
|
|
6
|
-
|
|
5
|
+
callbackSecret?: string;
|
|
6
|
+
filterMinDurationSeconds?: number;
|
|
7
|
+
latitude?: number;
|
|
8
|
+
longitude?: number;
|
|
9
|
+
fileName?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Async submit — returns immediately with job ID. callbackUrl is optional. */
|
|
12
|
+
export declare function classifyCommand(client: HearApiClient, url: string, options?: ClassifyOpts): Promise<string>;
|
|
7
13
|
/** Sync classify — submits, polls until complete, returns formatted result. */
|
|
8
|
-
export declare function classifySyncCommand(client: HearApiClient, url: string, options?:
|
|
9
|
-
|
|
14
|
+
export declare function classifySyncCommand(client: HearApiClient, url: string, options?: ClassifyOpts, onProgress?: (msg: string) => void): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Local-file classify — reads file from disk, picks small-file or chunked-upload
|
|
17
|
+
* path based on size + duration, optionally polls. Mirrors mcp-server's classifyAudio.
|
|
18
|
+
*/
|
|
19
|
+
export declare function classifyFileCommand(client: HearApiClient, filePath: string, options?: ClassifyOpts & {
|
|
20
|
+
waitForResult?: boolean;
|
|
10
21
|
}, onProgress?: (msg: string) => void): Promise<string>;
|
|
22
|
+
export {};
|
|
11
23
|
//# sourceMappingURL=classify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/commands/classify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/commands/classify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAgC,MAAM,aAAa,CAAC;AAI/E,UAAU,YAAY;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAqBD,+EAA+E;AAC/E,wBAAsB,eAAe,CACjC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,+EAA+E;AAC/E,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GAAG;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,EACpD,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,MAAM,CAAC,CAiDjB"}
|