@clubnet/seedclub 0.2.34 → 0.2.35
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clubnet/seedclub",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.35",
|
|
4
4
|
"description": "A branded command-line agent wrapper around pi, with integrated Seed Club commands, tools, and app actions",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -27,6 +27,9 @@
|
|
|
27
27
|
"bin/",
|
|
28
28
|
"assets/",
|
|
29
29
|
"postinstall.js",
|
|
30
|
+
"!assets/**/*.test.js",
|
|
31
|
+
"!assets/**/*.test.ts",
|
|
32
|
+
"!assets/**/__tests__/**",
|
|
30
33
|
"!assets/**/node_modules",
|
|
31
34
|
"!assets/**/node_modules/**",
|
|
32
35
|
"!assets/**/.cache",
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import test from "node:test";
|
|
3
|
-
import {
|
|
4
|
-
exactNormalizedTextMatch,
|
|
5
|
-
normalizePersonQuery,
|
|
6
|
-
parseDateHint,
|
|
7
|
-
parseIntent,
|
|
8
|
-
parseTimeFilter,
|
|
9
|
-
textToSyntheticVtt,
|
|
10
|
-
} from "./transcript-export-helpers.js";
|
|
11
|
-
|
|
12
|
-
test("normalizePersonQuery strips transcript artifact words", () => {
|
|
13
|
-
assert.equal(normalizePersonQuery("Vibhu transcripts"), "Vibhu");
|
|
14
|
-
assert.equal(normalizePersonQuery("recent captions"), undefined);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
test("parseDateHint handles explicit calendar dates", () => {
|
|
18
|
-
assert.equal(parseDateHint("captions for Vibhu on March 2, 2026"), "2026-03-02");
|
|
19
|
-
assert.equal(parseDateHint("2026-04-24 transcripts"), "2026-04-24");
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
test("parseIntent captures person, date, explicit time, and output path", () => {
|
|
23
|
-
const intent = parseIntent("download Vibhu transcripts on March 2, 2026 at 14:00 to ~/Downloads/custom");
|
|
24
|
-
assert.deepEqual(intent, {
|
|
25
|
-
person: "Vibhu",
|
|
26
|
-
people: ["Vibhu"],
|
|
27
|
-
date: "2026-03-02",
|
|
28
|
-
time: "14:00",
|
|
29
|
-
outDir: "~/Downloads/custom",
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
test("parseIntent does not treat bare 11am program mention as a time filter", () => {
|
|
34
|
-
const intent = parseIntent("download Vibhu transcripts from 11am");
|
|
35
|
-
assert.equal(intent.person, "Vibhu");
|
|
36
|
-
assert.equal(intent.time, undefined);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test("parseTimeFilter supports 24 hour and 12 hour formats", () => {
|
|
40
|
-
assert.deepEqual(parseTimeFilter("14:00"), { hour: 14, minute: 0 });
|
|
41
|
-
assert.deepEqual(parseTimeFilter("2pm"), { hour: 14, minute: undefined });
|
|
42
|
-
assert.equal(parseTimeFilter("25:00"), null);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
test("exactNormalizedTextMatch avoids partial-name false positives", () => {
|
|
46
|
-
assert.equal(exactNormalizedTextMatch("dan", "Jordan Walker on 11am"), false);
|
|
47
|
-
assert.equal(exactNormalizedTextMatch("rob", "Robert Leshner on 11am"), false);
|
|
48
|
-
assert.equal(exactNormalizedTextMatch("vibhu", "Vibhu Norby on 11am"), true);
|
|
49
|
-
assert.equal(exactNormalizedTextMatch("vibhu norby", "Vibhu Norby on 11am"), true);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
test("textToSyntheticVtt generates a valid VTT envelope from transcript text", () => {
|
|
53
|
-
const vtt = textToSyntheticVtt("Host: Welcome back.\n\nGuest: Thanks for having me.");
|
|
54
|
-
assert.ok(vtt);
|
|
55
|
-
assert.match(vtt, /^WEBVTT\b/);
|
|
56
|
-
assert.match(vtt, /-->/);
|
|
57
|
-
assert.match(vtt, /Host: Welcome back\./);
|
|
58
|
-
assert.match(vtt, /Guest: Thanks for having me\./);
|
|
59
|
-
});
|