@skillrecordings/cli 0.7.0 → 0.8.0
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/index.js +54 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -8937,14 +8937,14 @@ var require_diagnostics = __commonJS({
|
|
|
8937
8937
|
"undici:client:beforeConnect",
|
|
8938
8938
|
(evt) => {
|
|
8939
8939
|
const {
|
|
8940
|
-
connectParams: { version, protocol, port, host }
|
|
8940
|
+
connectParams: { version: version2, protocol, port, host }
|
|
8941
8941
|
} = evt;
|
|
8942
8942
|
debugLog(
|
|
8943
8943
|
"connecting to %s%s using %s%s",
|
|
8944
8944
|
host,
|
|
8945
8945
|
port ? `:${port}` : "",
|
|
8946
8946
|
protocol,
|
|
8947
|
-
|
|
8947
|
+
version2
|
|
8948
8948
|
);
|
|
8949
8949
|
}
|
|
8950
8950
|
);
|
|
@@ -8952,14 +8952,14 @@ var require_diagnostics = __commonJS({
|
|
|
8952
8952
|
"undici:client:connected",
|
|
8953
8953
|
(evt) => {
|
|
8954
8954
|
const {
|
|
8955
|
-
connectParams: { version, protocol, port, host }
|
|
8955
|
+
connectParams: { version: version2, protocol, port, host }
|
|
8956
8956
|
} = evt;
|
|
8957
8957
|
debugLog(
|
|
8958
8958
|
"connected to %s%s using %s%s",
|
|
8959
8959
|
host,
|
|
8960
8960
|
port ? `:${port}` : "",
|
|
8961
8961
|
protocol,
|
|
8962
|
-
|
|
8962
|
+
version2
|
|
8963
8963
|
);
|
|
8964
8964
|
}
|
|
8965
8965
|
);
|
|
@@ -8967,7 +8967,7 @@ var require_diagnostics = __commonJS({
|
|
|
8967
8967
|
"undici:client:connectError",
|
|
8968
8968
|
(evt) => {
|
|
8969
8969
|
const {
|
|
8970
|
-
connectParams: { version, protocol, port, host },
|
|
8970
|
+
connectParams: { version: version2, protocol, port, host },
|
|
8971
8971
|
error
|
|
8972
8972
|
} = evt;
|
|
8973
8973
|
debugLog(
|
|
@@ -8975,7 +8975,7 @@ var require_diagnostics = __commonJS({
|
|
|
8975
8975
|
host,
|
|
8976
8976
|
port ? `:${port}` : "",
|
|
8977
8977
|
protocol,
|
|
8978
|
-
|
|
8978
|
+
version2,
|
|
8979
8979
|
error.message
|
|
8980
8980
|
);
|
|
8981
8981
|
}
|
|
@@ -46146,10 +46146,10 @@ var require_supports_color = __commonJS({
|
|
|
46146
46146
|
return 3;
|
|
46147
46147
|
}
|
|
46148
46148
|
if ("TERM_PROGRAM" in env) {
|
|
46149
|
-
const
|
|
46149
|
+
const version2 = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
|
|
46150
46150
|
switch (env.TERM_PROGRAM) {
|
|
46151
46151
|
case "iTerm.app":
|
|
46152
|
-
return
|
|
46152
|
+
return version2 >= 3 ? 3 : 2;
|
|
46153
46153
|
case "Apple_Terminal":
|
|
46154
46154
|
return 2;
|
|
46155
46155
|
}
|
|
@@ -63356,8 +63356,8 @@ var require_trace_mapping_umd = __commonJS({
|
|
|
63356
63356
|
const isString = typeof map2 === "string";
|
|
63357
63357
|
if (!isString && map2._decodedMemo) return map2;
|
|
63358
63358
|
const parsed = parse7(map2);
|
|
63359
|
-
const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;
|
|
63360
|
-
this.version =
|
|
63359
|
+
const { version: version2, file, names, sourceRoot, sources, sourcesContent } = parsed;
|
|
63360
|
+
this.version = version2;
|
|
63361
63361
|
this.file = file;
|
|
63362
63362
|
this.names = names || [];
|
|
63363
63363
|
this.sourceRoot = sourceRoot;
|
|
@@ -74519,6 +74519,7 @@ var require_lib10 = __commonJS({
|
|
|
74519
74519
|
|
|
74520
74520
|
// src/index.ts
|
|
74521
74521
|
init_esm_shims();
|
|
74522
|
+
import { createRequire } from "module";
|
|
74522
74523
|
import { Command as Command4 } from "commander";
|
|
74523
74524
|
|
|
74524
74525
|
// src/commands/auth/index.ts
|
|
@@ -80786,7 +80787,7 @@ function getPriorityTier(label) {
|
|
|
80786
80787
|
return void 0;
|
|
80787
80788
|
}
|
|
80788
80789
|
async function generateProductionClustering(options) {
|
|
80789
|
-
const { phase0Path, outputPath, version = "v1" } = options;
|
|
80790
|
+
const { phase0Path, outputPath, version: version2 = "v1" } = options;
|
|
80790
80791
|
console.log("\u{1F4CA} Reading Phase 0 artifacts...");
|
|
80791
80792
|
const assignments = readPhase0Assignments(phase0Path);
|
|
80792
80793
|
const labels = readPhase0Labels(phase0Path);
|
|
@@ -80850,7 +80851,7 @@ async function generateProductionClustering(options) {
|
|
|
80850
80851
|
}
|
|
80851
80852
|
const totalConversations = Object.keys(assignments).length;
|
|
80852
80853
|
const result = {
|
|
80853
|
-
version,
|
|
80854
|
+
version: version2,
|
|
80854
80855
|
generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
80855
80856
|
config: {
|
|
80856
80857
|
algorithm: metrics.algorithm,
|
|
@@ -80999,12 +81000,12 @@ Run Phase 0 clustering first or specify correct --phase0-path`
|
|
|
80999
81000
|
async function faqCluster(options) {
|
|
81000
81001
|
const phase0Path = options.phase0Path ?? DEFAULT_PHASE0_PATH;
|
|
81001
81002
|
const outputPath = options.outputPath ?? DEFAULT_OUTPUT_PATH2;
|
|
81002
|
-
const
|
|
81003
|
+
const version2 = options.version ?? "v1";
|
|
81003
81004
|
console.log("\u{1F52C} Production Clustering Pipeline");
|
|
81004
81005
|
console.log("=".repeat(60));
|
|
81005
81006
|
console.log(` Phase 0 artifacts: ${phase0Path}`);
|
|
81006
81007
|
console.log(` Output path: ${outputPath}`);
|
|
81007
|
-
console.log(` Version: ${
|
|
81008
|
+
console.log(` Version: ${version2}`);
|
|
81008
81009
|
console.log(` Dry run: ${options.dryRun ?? false}`);
|
|
81009
81010
|
console.log("");
|
|
81010
81011
|
try {
|
|
@@ -81014,14 +81015,14 @@ async function faqCluster(options) {
|
|
|
81014
81015
|
const result = await generateProductionClustering({
|
|
81015
81016
|
phase0Path,
|
|
81016
81017
|
outputPath,
|
|
81017
|
-
version
|
|
81018
|
+
version: version2
|
|
81018
81019
|
});
|
|
81019
81020
|
displayClusteringSummary(result);
|
|
81020
81021
|
if (!options.dryRun) {
|
|
81021
81022
|
console.log("\n\u{1F4DD} Writing artifacts...");
|
|
81022
81023
|
writeProductionArtifacts(result, outputPath);
|
|
81023
81024
|
console.log("\n\u2705 Production clustering complete!");
|
|
81024
|
-
console.log(` Artifacts written to: ${join8(outputPath,
|
|
81025
|
+
console.log(` Artifacts written to: ${join8(outputPath, version2)}`);
|
|
81025
81026
|
} else {
|
|
81026
81027
|
console.log("\n\u{1F9EA} Dry run - no artifacts written");
|
|
81027
81028
|
}
|
|
@@ -82083,7 +82084,7 @@ async function extractFaqCandidates(options) {
|
|
|
82083
82084
|
goldenPath,
|
|
82084
82085
|
source,
|
|
82085
82086
|
outputPath,
|
|
82086
|
-
version = "v1",
|
|
82087
|
+
version: version2 = "v1",
|
|
82087
82088
|
minClusterSize = 3,
|
|
82088
82089
|
topN = 5,
|
|
82089
82090
|
dedupThreshold = 0.85,
|
|
@@ -82180,7 +82181,7 @@ async function extractFaqCandidates(options) {
|
|
|
82180
82181
|
const result = {
|
|
82181
82182
|
candidates: deduplicated,
|
|
82182
82183
|
stats: stats4,
|
|
82183
|
-
version,
|
|
82184
|
+
version: version2,
|
|
82184
82185
|
extractedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
82185
82186
|
};
|
|
82186
82187
|
if (!dryRun) {
|
|
@@ -82334,7 +82335,7 @@ async function faqExtract(options) {
|
|
|
82334
82335
|
const goldenPath = options.goldenPath ?? DEFAULT_GOLDEN_PATH;
|
|
82335
82336
|
const outputPath = options.outputPath ?? DEFAULT_OUTPUT_PATH3;
|
|
82336
82337
|
const cachePath = options.cachePath ?? DEFAULT_CACHE_PATH;
|
|
82337
|
-
const
|
|
82338
|
+
const version2 = options.outputVersion ?? "v1";
|
|
82338
82339
|
const applyFilters = options.filters ?? true;
|
|
82339
82340
|
console.log("\u{1F52C} FAQ Extraction Pipeline");
|
|
82340
82341
|
console.log("=".repeat(60));
|
|
@@ -82342,7 +82343,7 @@ async function faqExtract(options) {
|
|
|
82342
82343
|
console.log(` Golden: ${goldenPath}`);
|
|
82343
82344
|
console.log(` Output: ${outputPath}`);
|
|
82344
82345
|
console.log(` DuckDB cache: ${cachePath}`);
|
|
82345
|
-
console.log(` Version: ${
|
|
82346
|
+
console.log(` Version: ${version2}`);
|
|
82346
82347
|
console.log(` Apply filters: ${applyFilters}`);
|
|
82347
82348
|
console.log(` Push to Redis: ${options.pushRedis ?? false}`);
|
|
82348
82349
|
console.log(` Dry run: ${options.dryRun ?? false}`);
|
|
@@ -82369,7 +82370,7 @@ Run \`bun src/index.ts front-cache sync\` first to populate cache.`
|
|
|
82369
82370
|
goldenPath: existsSync9(goldenPath) ? goldenPath : void 0,
|
|
82370
82371
|
source,
|
|
82371
82372
|
outputPath,
|
|
82372
|
-
version,
|
|
82373
|
+
version: version2,
|
|
82373
82374
|
minClusterSize: options.minClusterSize ?? 3,
|
|
82374
82375
|
topN: options.topN ?? 5,
|
|
82375
82376
|
dedupThreshold: options.dedupThreshold ?? 0.85,
|
|
@@ -82407,7 +82408,7 @@ Run \`bun src/index.ts front-cache sync\` first to populate cache.`
|
|
|
82407
82408
|
if (!options.dryRun) {
|
|
82408
82409
|
console.log(`
|
|
82409
82410
|
\u2705 Extraction complete!`);
|
|
82410
|
-
console.log(` Artifacts written to: ${join10(outputPath,
|
|
82411
|
+
console.log(` Artifacts written to: ${join10(outputPath, version2)}`);
|
|
82411
82412
|
if (options.pushRedis && options.app) {
|
|
82412
82413
|
console.log(
|
|
82413
82414
|
` Candidates pushed to Redis queue: faq:pending:${options.app}`
|
|
@@ -93304,7 +93305,34 @@ function registerSearchCommand(frontCommand) {
|
|
|
93304
93305
|
).option("--inbox <id>", "Filter by inbox ID (inb_xxx)").option("--tag <id>", "Filter by tag ID (tag_xxx)").option("--assignee <id>", "Filter by assignee (tea_xxx)").option(
|
|
93305
93306
|
"--status <status>",
|
|
93306
93307
|
"Filter by status (open, archived, assigned, unassigned, unreplied, snoozed, resolved)"
|
|
93307
|
-
).option("--from <email>", "Filter by sender email").option("--after <timestamp>", "Filter after Unix timestamp").option("--before <timestamp>", "Filter before Unix timestamp").option("--limit <n>", "Max results (default 25)", "25").option("--json", "Output as JSON").
|
|
93308
|
+
).option("--from <email>", "Filter by sender email").option("--after <timestamp>", "Filter after Unix timestamp").option("--before <timestamp>", "Filter before Unix timestamp").option("--limit <n>", "Max results (default 25)", "25").option("--json", "Output as JSON").addHelpText(
|
|
93309
|
+
"after",
|
|
93310
|
+
`
|
|
93311
|
+
Front Search Query Syntax:
|
|
93312
|
+
Text search: "exact phrase" or word1 word2 (AND logic)
|
|
93313
|
+
inbox:inb_xxx Filter by inbox
|
|
93314
|
+
tag:tag_xxx Filter by tag
|
|
93315
|
+
from:email Filter by sender
|
|
93316
|
+
to:email Filter by recipient
|
|
93317
|
+
recipient:email Filter by email/handle
|
|
93318
|
+
assignee:tea_x Filter by assigned teammate
|
|
93319
|
+
participant:t Filter by participating teammate
|
|
93320
|
+
is:open Status: open, archived, assigned, unassigned,
|
|
93321
|
+
unreplied, snoozed, resolved, waiting
|
|
93322
|
+
before:<ts> Before Unix timestamp
|
|
93323
|
+
after:<ts> After Unix timestamp
|
|
93324
|
+
during:<ts> During day of Unix timestamp
|
|
93325
|
+
custom_field:"Name=value"
|
|
93326
|
+
|
|
93327
|
+
Multiple filters = AND. Multiple from/to/cc/bcc = OR. Max 15 filters.
|
|
93328
|
+
|
|
93329
|
+
Examples:
|
|
93330
|
+
skill front search "payment failed" --inbox inb_4bj7r
|
|
93331
|
+
skill front search "upgrade" --status unassigned --from user@example.com
|
|
93332
|
+
skill front search "from:dale@a.com tag:tag_14nmdp" --limit 50
|
|
93333
|
+
skill front search "is:unreplied" --inbox inb_4bj7r --after 1706745600
|
|
93334
|
+
`
|
|
93335
|
+
).action(searchConversations);
|
|
93308
93336
|
}
|
|
93309
93337
|
|
|
93310
93338
|
// src/commands/front/tags.ts
|
|
@@ -113491,8 +113519,10 @@ async function wizard(options = {}) {
|
|
|
113491
113519
|
}
|
|
113492
113520
|
|
|
113493
113521
|
// src/index.ts
|
|
113522
|
+
var require2 = createRequire(import.meta.url);
|
|
113523
|
+
var { version } = require2("../package.json");
|
|
113494
113524
|
var program2 = new Command4();
|
|
113495
|
-
program2.name("skill").description("CLI tool for managing app integrations").version(
|
|
113525
|
+
program2.name("skill").description("CLI tool for managing app integrations").version(version);
|
|
113496
113526
|
program2.command("init").description("Initialize a new app integration (quick mode)").argument(
|
|
113497
113527
|
"[name]",
|
|
113498
113528
|
"Name of the integration (required in non-interactive mode)"
|