terse-cli 0.2.2 → 0.2.4
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/api.d.ts +1 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/codegen.d.ts +0 -15
- package/dist/codegen.d.ts.map +1 -1
- package/dist/codegen.js +81 -466
- package/dist/codegen.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +16 -2
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/memory.d.ts +1 -0
- package/dist/commands/memory.d.ts.map +1 -1
- package/dist/commands/memory.js +1 -1
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/test.d.ts +2 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +3 -2
- package/dist/commands/test.js.map +1 -1
- package/dist/deploy.d.ts +1 -2
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +38 -61
- package/dist/deploy.js.map +1 -1
- package/dist/generate.d.ts +1 -2
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +69 -67
- package/dist/generate.js.map +1 -1
- package/dist/index.js +64 -2
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -2
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +96 -45
- package/dist/init.js.map +1 -1
- package/dist/integrate.d.ts +0 -1
- package/dist/integrate.d.ts.map +1 -1
- package/dist/integrate.js +11 -191
- package/dist/integrate.js.map +1 -1
- package/dist/jsonOutput.d.ts +19 -0
- package/dist/jsonOutput.d.ts.map +1 -0
- package/dist/jsonOutput.js +25 -0
- package/dist/jsonOutput.js.map +1 -0
- package/dist/nonInteractive.d.ts +2 -4
- package/dist/nonInteractive.d.ts.map +1 -1
- package/dist/nonInteractive.js +2 -5
- package/dist/nonInteractive.js.map +1 -1
- package/dist/providers/codegenTypes.d.ts +1 -0
- package/dist/providers/codegenTypes.d.ts.map +1 -1
- package/dist/providers/python/PythonProvider.js +0 -1
- package/dist/providers/python/PythonProvider.js.map +1 -1
- package/dist/providers/typescript/parkSignals.d.ts +7 -0
- package/dist/providers/typescript/parkSignals.d.ts.map +1 -0
- package/dist/providers/typescript/parkSignals.js +45 -0
- package/dist/providers/typescript/parkSignals.js.map +1 -0
- package/dist/providers/typescript/prepareCodegenData.d.ts +1 -0
- package/dist/providers/typescript/prepareCodegenData.d.ts.map +1 -1
- package/dist/providers/typescript/prepareCodegenData.js +8 -2
- package/dist/providers/typescript/prepareCodegenData.js.map +1 -1
- package/dist/replay.d.ts +3 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/replay.js +20 -0
- package/dist/replay.js.map +1 -0
- package/dist/run.d.ts +11 -2
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +153 -42
- package/dist/run.js.map +1 -1
- package/dist/runLocalTestJob.d.ts +1 -0
- package/dist/runLocalTestJob.d.ts.map +1 -1
- package/dist/runLocalTestJob.js +1 -1
- package/dist/runLocalTestJob.js.map +1 -1
- package/dist/sampleEventId.d.ts +4 -0
- package/dist/sampleEventId.d.ts.map +1 -1
- package/dist/sampleEventId.js +4 -0
- package/dist/sampleEventId.js.map +1 -1
- package/dist/shared/ApiRoutes.d.ts +0 -19
- package/dist/shared/ApiRoutes.d.ts.map +1 -1
- package/dist/shared/ApiRoutes.js +1 -17
- package/dist/shared/ApiRoutes.js.map +1 -1
- package/dist/shared/Configs.d.ts +2 -24
- package/dist/shared/Configs.d.ts.map +1 -1
- package/dist/shared/Configs.js +2 -32
- package/dist/shared/Configs.js.map +1 -1
- package/dist/shared/Integrations.d.ts +1 -18
- package/dist/shared/Integrations.d.ts.map +1 -1
- package/dist/shared/Integrations.js +1 -10
- package/dist/shared/Integrations.js.map +1 -1
- package/dist/shared/InvalidationKeys.d.ts +0 -1
- package/dist/shared/InvalidationKeys.d.ts.map +1 -1
- package/dist/shared/InvalidationKeys.js +0 -3
- package/dist/shared/InvalidationKeys.js.map +1 -1
- package/dist/shared/ModelEvents.d.ts +0 -9
- package/dist/shared/ModelEvents.d.ts.map +1 -1
- package/dist/shared/ModelEvents.js +0 -15
- package/dist/shared/ModelEvents.js.map +1 -1
- package/dist/shared/ToolDisplayUtils.d.ts.map +1 -1
- package/dist/shared/ToolDisplayUtils.js +11 -107
- package/dist/shared/ToolDisplayUtils.js.map +1 -1
- package/dist/shared/types.d.ts +108 -1013
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/test.d.ts +1 -2
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +23 -43
- package/dist/test.js.map +1 -1
- package/dist/urls.d.ts +3 -0
- package/dist/urls.d.ts.map +1 -0
- package/dist/urls.js +27 -0
- package/dist/urls.js.map +1 -0
- package/dist/util.d.ts +3 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +3 -3
- package/dist/util.js.map +1 -1
- package/package.json +3 -3
- package/templates/typescript/codegen/partials/posthog-section.hbs +12 -0
- package/dist/_tmp_create_project.d.ts +0 -2
- package/dist/_tmp_create_project.d.ts.map +0 -1
- package/dist/_tmp_create_project.js +0 -17
- package/dist/_tmp_create_project.js.map +0 -1
- package/dist/_tmp_delete_agent.d.ts +0 -2
- package/dist/_tmp_delete_agent.d.ts.map +0 -1
- package/dist/_tmp_delete_agent.js +0 -14
- package/dist/_tmp_delete_agent.js.map +0 -1
- package/dist/_tmp_manual_trigger.d.ts +0 -2
- package/dist/_tmp_manual_trigger.d.ts.map +0 -1
- package/dist/_tmp_manual_trigger.js +0 -17
- package/dist/_tmp_manual_trigger.js.map +0 -1
- package/dist/_tmp_patch_active.d.ts +0 -2
- package/dist/_tmp_patch_active.d.ts.map +0 -1
- package/dist/_tmp_patch_active.js +0 -21
- package/dist/_tmp_patch_active.js.map +0 -1
- package/dist/commands/deployTheme.d.ts +0 -28
- package/dist/commands/deployTheme.d.ts.map +0 -1
- package/dist/commands/deployTheme.js +0 -68
- package/dist/commands/deployTheme.js.map +0 -1
- package/dist/commands/dev.d.ts +0 -3
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js +0 -47
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/fsExec.d.ts +0 -8
- package/dist/commands/fsExec.d.ts.map +0 -1
- package/dist/commands/fsExec.js +0 -46
- package/dist/commands/fsExec.js.map +0 -1
- package/dist/commands/serve.d.ts +0 -1
- package/dist/commands/serve.d.ts.map +0 -1
- package/dist/commands/serve.js +0 -2
- package/dist/commands/serve.js.map +0 -1
- package/dist/commands/terseCliTheme.d.ts +0 -28
- package/dist/commands/terseCliTheme.d.ts.map +0 -1
- package/dist/commands/terseCliTheme.js +0 -68
- package/dist/commands/terseCliTheme.js.map +0 -1
- package/dist/commands/tool.d.ts +0 -6
- package/dist/commands/tool.d.ts.map +0 -1
- package/dist/commands/tool.js +0 -34
- package/dist/commands/tool.js.map +0 -1
- package/dist/data/standardSlackEmoji.d.ts +0 -2
- package/dist/data/standardSlackEmoji.d.ts.map +0 -1
- package/dist/data/standardSlackEmoji.js +0 -1978
- package/dist/data/standardSlackEmoji.js.map +0 -1
- package/dist/data/standardSlackEmoji.json +0 -1974
- package/dist/perf.d.ts +0 -9
- package/dist/perf.d.ts.map +0 -1
- package/dist/perf.js +0 -59
- package/dist/perf.js.map +0 -1
- package/dist/providers/codegen.test.d.ts +0 -2
- package/dist/providers/codegen.test.d.ts.map +0 -1
- package/dist/providers/codegen.test.js +0 -45
- package/dist/providers/codegen.test.js.map +0 -1
- package/dist/providers/python/PythonProvider.test.d.ts +0 -2
- package/dist/providers/python/PythonProvider.test.d.ts.map +0 -1
- package/dist/providers/python/PythonProvider.test.js +0 -169
- package/dist/providers/python/PythonProvider.test.js.map +0 -1
- package/dist/providers/typescript/prepareCodegenData.test.d.ts +0 -2
- package/dist/providers/typescript/prepareCodegenData.test.d.ts.map +0 -1
- package/dist/providers/typescript/prepareCodegenData.test.js +0 -54
- package/dist/providers/typescript/prepareCodegenData.test.js.map +0 -1
- package/dist/providers/typescript/projectedTypes.d.ts +0 -11
- package/dist/providers/typescript/projectedTypes.d.ts.map +0 -1
- package/dist/providers/typescript/projectedTypes.js +0 -53
- package/dist/providers/typescript/projectedTypes.js.map +0 -1
- package/dist/providers/typescript/triggerPayloads.d.ts +0 -7
- package/dist/providers/typescript/triggerPayloads.d.ts.map +0 -1
- package/dist/providers/typescript/triggerPayloads.js +0 -60
- package/dist/providers/typescript/triggerPayloads.js.map +0 -1
package/dist/deploy.js
CHANGED
|
@@ -1,45 +1,35 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
import { zipSync } from "fflate";
|
|
3
1
|
import fs from "node:fs";
|
|
4
2
|
import path from "node:path";
|
|
3
|
+
import chalk from "chalk";
|
|
5
4
|
import ora from "ora";
|
|
6
|
-
import {
|
|
7
|
-
import { fetchWithAuth,
|
|
5
|
+
import { zipSync } from "fflate";
|
|
6
|
+
import { fetchWithAuth, readApiKey } from "./api.js";
|
|
7
|
+
import { assertProjectRoot } from "./assertProjectRoot.js";
|
|
8
8
|
import { loadJobRegistry } from "./loadJob.js";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const remoteServerUrl = readEnvVar("TERSE_REMOTE_SERVER_URL") ?? readEnvVar("TERSE_JOB_URL");
|
|
20
|
-
const isUrlMode = !!remoteServerUrl;
|
|
21
|
-
let sourceZipBase64;
|
|
22
|
-
let fileCount = 0;
|
|
23
|
-
let zipSizeBytes = 0;
|
|
24
|
-
if (!isUrlMode) {
|
|
25
|
-
const zipPayload = buildZipPayload(provider);
|
|
26
|
-
sourceZipBase64 = zipPayload.sourceZipBase64;
|
|
27
|
-
fileCount = zipPayload.fileCount;
|
|
28
|
-
zipSizeBytes = zipPayload.zipSizeBytes;
|
|
9
|
+
import { ApiRoutes } from "./shared/ApiRoutes.js";
|
|
10
|
+
const EXCLUDED_DIRS = new Set(["node_modules", ".git", "dist", ".next", ".turbo"]);
|
|
11
|
+
const EXCLUDED_FILES = new Set([".env", ".DS_Store"]);
|
|
12
|
+
export async function deploy() {
|
|
13
|
+
assertProjectRoot();
|
|
14
|
+
const apiKey = readApiKey();
|
|
15
|
+
if (!apiKey) {
|
|
16
|
+
console.error(chalk.red("Error: No TERSE_API_KEY found in .env"));
|
|
17
|
+
console.error(chalk.dim("Run `terse init` to set up your project, or add TERSE_API_KEY to your .env file."));
|
|
18
|
+
process.exit(1);
|
|
29
19
|
}
|
|
20
|
+
const registry = await loadJobRegistry();
|
|
21
|
+
const jobs = [...registry.values()];
|
|
22
|
+
const { sourceZipBase64, fileCount, zipSizeBytes } = buildZipPayload();
|
|
30
23
|
const spinner = ora(`Deploying ${jobs.length} job${jobs.length === 1 ? "" : "s"}...`).start();
|
|
31
24
|
try {
|
|
32
|
-
const
|
|
25
|
+
const result = await fetchWithAuth(ApiRoutes.SDK.DEPLOY, apiKey, {
|
|
33
26
|
jobs: jobs.map(job => ({
|
|
34
27
|
jobName: job.name,
|
|
35
|
-
triggers: job.triggers,
|
|
36
|
-
|
|
37
|
-
toolApprovals: job.toolApprovals ?? []
|
|
28
|
+
triggers: job.triggers.map(serializeTrigger),
|
|
29
|
+
webhookURL: job.webhookURL
|
|
38
30
|
})),
|
|
39
|
-
remoteServerUrl: isUrlMode ? remoteServerUrl : undefined,
|
|
40
31
|
sourceZipBase64
|
|
41
|
-
});
|
|
42
|
-
const result = await fetchWithAuth(ApiRoutes.SDK.DEPLOY, apiKey, body, "POST");
|
|
32
|
+
}, "POST");
|
|
43
33
|
if (!result.success) {
|
|
44
34
|
spinner.fail(chalk.red(`Deploy failed: ${result.error}`));
|
|
45
35
|
if (result.details) {
|
|
@@ -51,31 +41,9 @@ export async function deploy(provider = resolveProvider(), entryFile) {
|
|
|
51
41
|
for (const r of result.results) {
|
|
52
42
|
const verb = r.isUpdate ? "Updated" : "Created";
|
|
53
43
|
console.log(chalk.dim(` ${verb} "${r.jobName}" (${r.automationId})`));
|
|
54
|
-
if (r.triggers) {
|
|
55
|
-
for (const t of r.triggers) {
|
|
56
|
-
if (t.metadata?.webhookUrl) {
|
|
57
|
-
console.log(chalk.cyan(` Webhook URL: ${t.metadata.webhookUrl}`));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (isUrlMode) {
|
|
63
|
-
console.log(chalk.dim(` Mode: user infrastructure`));
|
|
64
|
-
console.log(chalk.dim(` Server URL: ${remoteServerUrl}`));
|
|
65
|
-
const signingSecret = result.results.find(r => r.signingSecret)?.signingSecret;
|
|
66
|
-
if (signingSecret) {
|
|
67
|
-
const existingSecret = readEnvVar("TERSE_SIGNING_SECRET");
|
|
68
|
-
if (!existingSecret) {
|
|
69
|
-
console.log(`\n Add this to your ${chalk.bold(".env")} file:\n`);
|
|
70
|
-
console.log(`TERSE_SIGNING_SECRET=${signingSecret}`);
|
|
71
|
-
console.log("");
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
console.log(chalk.dim(` Files: ${fileCount}`));
|
|
77
|
-
console.log(chalk.dim(` Zip size: ${(zipSizeBytes / 1024).toFixed(1)} KB`));
|
|
78
44
|
}
|
|
45
|
+
console.log(chalk.dim(` Files: ${fileCount}`));
|
|
46
|
+
console.log(chalk.dim(` Zip size: ${(zipSizeBytes / 1024).toFixed(1)} KB`));
|
|
79
47
|
if (result.removed.length > 0) {
|
|
80
48
|
console.log(chalk.yellow(`\nRemoved ${result.removed.length} stale job${result.removed.length === 1 ? "" : "s"} no longer in project:`));
|
|
81
49
|
for (const r of result.removed) {
|
|
@@ -88,17 +56,17 @@ export async function deploy(provider = resolveProvider(), entryFile) {
|
|
|
88
56
|
process.exit(1);
|
|
89
57
|
}
|
|
90
58
|
}
|
|
91
|
-
function collectFiles(dir, baseDir
|
|
59
|
+
function collectFiles(dir, baseDir) {
|
|
92
60
|
const entries = {};
|
|
93
61
|
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
94
|
-
if (
|
|
62
|
+
if (EXCLUDED_DIRS.has(entry.name))
|
|
95
63
|
continue;
|
|
96
|
-
if (
|
|
64
|
+
if (EXCLUDED_FILES.has(entry.name))
|
|
97
65
|
continue;
|
|
98
66
|
const fullPath = path.join(dir, entry.name);
|
|
99
67
|
const relativePath = path.relative(baseDir, fullPath);
|
|
100
68
|
if (entry.isDirectory()) {
|
|
101
|
-
Object.assign(entries, collectFiles(fullPath, baseDir
|
|
69
|
+
Object.assign(entries, collectFiles(fullPath, baseDir));
|
|
102
70
|
}
|
|
103
71
|
else if (entry.isFile()) {
|
|
104
72
|
entries[relativePath] = new Uint8Array(fs.readFileSync(fullPath));
|
|
@@ -106,9 +74,18 @@ function collectFiles(dir, baseDir, provider) {
|
|
|
106
74
|
}
|
|
107
75
|
return entries;
|
|
108
76
|
}
|
|
109
|
-
function
|
|
77
|
+
function serializeTrigger(config) {
|
|
78
|
+
const { isComplete, formatForAgent, configType, integrationType, integrationId, ...rest } = config;
|
|
79
|
+
return {
|
|
80
|
+
configType,
|
|
81
|
+
integrationType,
|
|
82
|
+
integrationId,
|
|
83
|
+
config: rest
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function buildZipPayload() {
|
|
110
87
|
const cwd = process.cwd();
|
|
111
|
-
const files = collectFiles(cwd, cwd
|
|
88
|
+
const files = collectFiles(cwd, cwd);
|
|
112
89
|
const fileCount = Object.keys(files).length;
|
|
113
90
|
if (fileCount === 0) {
|
|
114
91
|
console.error(chalk.red("No files found to deploy"));
|
package/dist/deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/generate.d.ts
CHANGED
package/dist/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAwCA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAmQ9C"}
|
package/dist/generate.js
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
1
|
import fs from "node:fs";
|
|
3
2
|
import path from "node:path";
|
|
3
|
+
import chalk from "chalk";
|
|
4
4
|
import ora from "ora";
|
|
5
|
-
import { IntegrationType, isValidToolName } from "terse-types";
|
|
6
|
-
import { ApiRoutes, buildRoute } from "terse-types";
|
|
7
|
-
import { fetchWithAuth, readApiKeyOrBail } from "./api.js";
|
|
8
5
|
import { assertProjectRoot } from "./assertProjectRoot.js";
|
|
9
|
-
import {
|
|
6
|
+
import { generateCode, } from "./codegen.js";
|
|
7
|
+
import { IntegrationType } from "./shared/Integrations.js";
|
|
8
|
+
import { ApiRoutes } from "./shared/ApiRoutes.js";
|
|
9
|
+
import { fetchWithAuth, readApiKey } from "./api.js";
|
|
10
10
|
// ── Main ──────────────────────────────────────────────────────────────
|
|
11
|
-
export async function generate(
|
|
12
|
-
assertProjectRoot(
|
|
11
|
+
export async function generate() {
|
|
12
|
+
assertProjectRoot();
|
|
13
13
|
const totalStart = performance.now();
|
|
14
14
|
// 1. Read API key
|
|
15
|
-
const apiKey =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const apiKey = readApiKey();
|
|
16
|
+
if (!apiKey) {
|
|
17
|
+
console.error(chalk.red("\n Missing TERSE_API_KEY in .env\n") +
|
|
18
|
+
chalk.dim(" Create a project with `terse init` or add TERSE_API_KEY to your .env file.\n"));
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
19
21
|
// 2. Fetch active integrations
|
|
20
22
|
const spinner = ora("Fetching integrations...").start();
|
|
21
23
|
let activeTypes;
|
|
@@ -31,7 +33,8 @@ export async function generate(provider = resolveProvider()) {
|
|
|
31
33
|
message.toLowerCase().includes("unauthorized") ||
|
|
32
34
|
message.toLowerCase().includes("forbidden");
|
|
33
35
|
if (isAuthError) {
|
|
34
|
-
console.error(chalk.red("\n Authentication failed: your TERSE_API_KEY was rejected.\n") +
|
|
36
|
+
console.error(chalk.red("\n Authentication failed: your TERSE_API_KEY was rejected.\n") +
|
|
37
|
+
chalk.dim(" Update TERSE_API_KEY in .env and try again.\n"));
|
|
35
38
|
}
|
|
36
39
|
else {
|
|
37
40
|
console.error(chalk.red(`\n ${message}\n`));
|
|
@@ -46,11 +49,6 @@ export async function generate(provider = resolveProvider()) {
|
|
|
46
49
|
// Filter to only tools whose integration matches an active integration type
|
|
47
50
|
const activeSet = new Set(activeTypes);
|
|
48
51
|
toolDefs = resp.tools.filter(t => activeSet.has(t.integration));
|
|
49
|
-
const skippedToolNames = [...new Set(toolDefs.filter(t => !isValidToolName(t.name)).map(t => t.name))].sort();
|
|
50
|
-
toolDefs = toolDefs.filter(t => isValidToolName(t.name));
|
|
51
|
-
if (skippedToolNames.length > 0) {
|
|
52
|
-
console.warn(chalk.yellow(`\n Skipped ${skippedToolNames.length} tool(s) absent from terse-types ToolDefinitions: ${skippedToolNames.join(", ")}\n`));
|
|
53
|
-
}
|
|
54
52
|
}
|
|
55
53
|
catch {
|
|
56
54
|
// Non-fatal: proceed without tool definitions
|
|
@@ -58,18 +56,11 @@ export async function generate(provider = resolveProvider()) {
|
|
|
58
56
|
// 4. Fetch all integration instances + resources in parallel
|
|
59
57
|
spinner.text = "Fetching integration details...";
|
|
60
58
|
const input = {
|
|
61
|
-
github: [],
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
posthog: [],
|
|
67
|
-
datadog: [],
|
|
68
|
-
launchdarkly: [],
|
|
69
|
-
workos: [],
|
|
70
|
-
attio: [],
|
|
71
|
-
snowflake: [],
|
|
72
|
-
tools: toolDefs
|
|
59
|
+
github: [], slack: [], gmail: [], figma: [],
|
|
60
|
+
linear: [], atlassian: [], notion: [],
|
|
61
|
+
posthog: [], datadog: [], launchdarkly: [],
|
|
62
|
+
workos: [], attio: [],
|
|
63
|
+
tools: toolDefs,
|
|
73
64
|
};
|
|
74
65
|
const has = (t) => activeTypes.includes(t);
|
|
75
66
|
const promises = [];
|
|
@@ -100,18 +91,37 @@ export async function generate(provider = resolveProvider()) {
|
|
|
100
91
|
}));
|
|
101
92
|
}));
|
|
102
93
|
}
|
|
94
|
+
// ── Figma (no resources) ──
|
|
95
|
+
if (has(IntegrationType.FIGMA)) {
|
|
96
|
+
promises.push(safely(async () => {
|
|
97
|
+
const instances = await fetchWithAuth(ApiRoutes.FIGMA.INTEGRATIONS, apiKey);
|
|
98
|
+
input.figma = instances.map(inst => ({ id: inst.id, displayName: inst.handle || inst.id }));
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
103
101
|
// ── Linear (fetches teams per instance) ──
|
|
104
102
|
if (has(IntegrationType.LINEAR)) {
|
|
105
103
|
promises.push(safely(async () => {
|
|
106
104
|
const instances = await fetchWithAuth(ApiRoutes.LINEAR.INTEGRATIONS, apiKey);
|
|
107
105
|
input.linear = await Promise.all(instances.map(async (inst) => {
|
|
108
106
|
const teams = await fetchWithAuth(`${ApiRoutes.LINEAR.TEAMS}?integrationId=${encodeURIComponent(inst.id)}`, apiKey).catch(() => []);
|
|
109
|
-
|
|
107
|
+
return { id: inst.id, displayName: inst.workspaceName || inst.id, teams: Array.isArray(teams) ? teams : [] };
|
|
108
|
+
}));
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
// ── Atlassian — fetches Jira projects + Confluence pages per instance ──
|
|
112
|
+
if (has(IntegrationType.ATLASSIAN)) {
|
|
113
|
+
promises.push(safely(async () => {
|
|
114
|
+
const instances = await fetchWithAuth(ApiRoutes.ATLASSIAN.INTEGRATIONS, apiKey);
|
|
115
|
+
input.atlassian = await Promise.all(instances.map(async (inst) => {
|
|
116
|
+
const [jiraResp, confResp] = await Promise.all([
|
|
117
|
+
fetchWithAuth(`${ApiRoutes.JIRA.RESOURCES}?integrationId=${encodeURIComponent(inst.id)}`, apiKey).catch(() => null),
|
|
118
|
+
fetchWithAuth(`${ApiRoutes.CONFLUENCE.RESOURCES}?integrationId=${encodeURIComponent(inst.id)}`, apiKey).catch(() => null),
|
|
119
|
+
]);
|
|
110
120
|
return {
|
|
111
121
|
id: inst.id,
|
|
112
|
-
displayName: inst.
|
|
113
|
-
|
|
114
|
-
|
|
122
|
+
displayName: inst.siteName || inst.email || inst.id,
|
|
123
|
+
jiraProjects: jiraResp?.resources?.projects || [],
|
|
124
|
+
confluencePages: confResp?.resources || [],
|
|
115
125
|
};
|
|
116
126
|
}));
|
|
117
127
|
}));
|
|
@@ -127,7 +137,7 @@ export async function generate(provider = resolveProvider()) {
|
|
|
127
137
|
id: inst.id,
|
|
128
138
|
displayName: inst.workspaceName || inst.id,
|
|
129
139
|
databases: resources.filter(r => r.type === "database"),
|
|
130
|
-
pages: resources.filter(r => r.type === "page")
|
|
140
|
+
pages: resources.filter(r => r.type === "page"),
|
|
131
141
|
};
|
|
132
142
|
}));
|
|
133
143
|
}));
|
|
@@ -147,9 +157,7 @@ export async function generate(provider = resolveProvider()) {
|
|
|
147
157
|
promises.push(safely(async () => {
|
|
148
158
|
const instances = await fetchWithAuth(ApiRoutes.DATADOG.INTEGRATIONS, apiKey);
|
|
149
159
|
input.datadog = await Promise.all(instances.map(async (inst) => {
|
|
150
|
-
const resp = await fetchWithAuth(`${ApiRoutes.DATADOG.INDEXES}?integrationId=${encodeURIComponent(inst.id)}`, apiKey).catch(() => ({
|
|
151
|
-
indexes: []
|
|
152
|
-
}));
|
|
160
|
+
const resp = await fetchWithAuth(`${ApiRoutes.DATADOG.INDEXES}?integrationId=${encodeURIComponent(inst.id)}`, apiKey).catch(() => ({ indexes: [] }));
|
|
153
161
|
return { id: inst.id, displayName: inst.region || inst.id, indexes: resp.indexes || [] };
|
|
154
162
|
}));
|
|
155
163
|
}));
|
|
@@ -159,7 +167,7 @@ export async function generate(provider = resolveProvider()) {
|
|
|
159
167
|
promises.push(safely(async () => {
|
|
160
168
|
const instances = await fetchWithAuth(ApiRoutes.LAUNCHDARKLY.INTEGRATIONS, apiKey);
|
|
161
169
|
input.launchdarkly = await Promise.all(instances.map(async (inst) => {
|
|
162
|
-
const resp = await fetchWithAuth(
|
|
170
|
+
const resp = await fetchWithAuth(ApiRoutes.LAUNCHDARKLY.PROJECTS_BY_INTEGRATION_ID.build(inst.id), apiKey).catch(() => ({ projects: [] }));
|
|
163
171
|
return { id: inst.id, displayName: inst.tokenName || inst.email || inst.id, projects: resp.projects || [] };
|
|
164
172
|
}));
|
|
165
173
|
}));
|
|
@@ -176,35 +184,23 @@ export async function generate(provider = resolveProvider()) {
|
|
|
176
184
|
promises.push(safely(async () => {
|
|
177
185
|
const instances = await fetchWithAuth(ApiRoutes.ATTIO.INTEGRATIONS, apiKey);
|
|
178
186
|
input.attio = await Promise.all(instances.map(async (inst) => {
|
|
179
|
-
const objects = await fetchWithAuth(
|
|
187
|
+
const objects = await fetchWithAuth(ApiRoutes.ATTIO.OBJECTS.build(inst.id), apiKey).catch(() => []);
|
|
180
188
|
return { id: inst.id, displayName: inst.workspaceName || inst.id, objects: Array.isArray(objects) ? objects : [] };
|
|
181
189
|
}));
|
|
182
190
|
}));
|
|
183
191
|
}
|
|
184
|
-
if (has(IntegrationType.SNOWFLAKE)) {
|
|
185
|
-
promises.push(safely(async () => {
|
|
186
|
-
const instances = await fetchWithAuth(ApiRoutes.SNOWFLAKE.INTEGRATIONS, apiKey);
|
|
187
|
-
input.snowflake = instances.map(inst => ({ id: inst.id, name: inst.accountIdentifier }));
|
|
188
|
-
}));
|
|
189
|
-
}
|
|
190
192
|
await Promise.all(promises);
|
|
191
|
-
const integrationCount = input.github.length +
|
|
192
|
-
input.
|
|
193
|
-
input.
|
|
194
|
-
input.
|
|
195
|
-
input.notion.length +
|
|
196
|
-
input.posthog.length +
|
|
197
|
-
input.datadog.length +
|
|
198
|
-
input.launchdarkly.length +
|
|
199
|
-
input.workos.length +
|
|
200
|
-
input.attio.length;
|
|
193
|
+
const integrationCount = input.github.length + input.slack.length + input.gmail.length + input.figma.length +
|
|
194
|
+
input.linear.length + input.atlassian.length + input.notion.length +
|
|
195
|
+
input.posthog.length + input.datadog.length + input.launchdarkly.length +
|
|
196
|
+
input.workos.length + input.attio.length;
|
|
201
197
|
spinner.succeed(`Fetched ${integrationCount} integration(s)`);
|
|
202
198
|
// 5. Generate code
|
|
203
199
|
const codegenStart = performance.now();
|
|
204
|
-
const code =
|
|
200
|
+
const code = generateCode(input);
|
|
205
201
|
const codegenMs = performance.now() - codegenStart;
|
|
206
202
|
// 6. Write output
|
|
207
|
-
writeOutput(code
|
|
203
|
+
writeOutput(code);
|
|
208
204
|
// 7. Summary
|
|
209
205
|
const totalMs = performance.now() - totalStart;
|
|
210
206
|
console.log("");
|
|
@@ -215,7 +211,7 @@ export async function generate(provider = resolveProvider()) {
|
|
|
215
211
|
console.log(` ${chalk.green("+")} Schedule trigger`);
|
|
216
212
|
console.log(` ${chalk.green("+")} Terse skills (web search)`);
|
|
217
213
|
console.log("");
|
|
218
|
-
console.log(` ${chalk.green.bold("Generated")}
|
|
214
|
+
console.log(` ${chalk.green.bold("Generated")} src/terse.generated.ts`);
|
|
219
215
|
console.log(` ${chalk.dim(`Codegen: ${codegenMs.toFixed(0)}ms | Total: ${totalMs.toFixed(0)}ms`)}`);
|
|
220
216
|
console.log("");
|
|
221
217
|
}
|
|
@@ -224,17 +220,14 @@ async function safely(fn) {
|
|
|
224
220
|
try {
|
|
225
221
|
await fn();
|
|
226
222
|
}
|
|
227
|
-
catch {
|
|
228
|
-
/* skip failed integrations */
|
|
229
|
-
}
|
|
223
|
+
catch { /* skip failed integrations */ }
|
|
230
224
|
}
|
|
231
|
-
function writeOutput(code
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
fs.mkdirSync(outputDir, { recursive: true });
|
|
225
|
+
function writeOutput(code) {
|
|
226
|
+
const srcDir = path.resolve(process.cwd(), "src");
|
|
227
|
+
if (!fs.existsSync(srcDir)) {
|
|
228
|
+
fs.mkdirSync(srcDir, { recursive: true });
|
|
236
229
|
}
|
|
237
|
-
fs.writeFileSync(
|
|
230
|
+
fs.writeFileSync(path.join(srcDir, "terse.generated.ts"), code);
|
|
238
231
|
}
|
|
239
232
|
function printSummary(input) {
|
|
240
233
|
const g = chalk.green("+");
|
|
@@ -250,10 +243,19 @@ function printSummary(input) {
|
|
|
250
243
|
const n = inst.channels.length;
|
|
251
244
|
console.log(` ${g} Slack (${inst.displayName}) — ${n} ${n === 1 ? "channel" : "channels"}`);
|
|
252
245
|
}
|
|
246
|
+
for (const inst of input.figma) {
|
|
247
|
+
console.log(` ${g} Figma (${inst.displayName})`);
|
|
248
|
+
}
|
|
253
249
|
for (const inst of input.linear) {
|
|
254
250
|
const n = inst.teams.length;
|
|
255
251
|
console.log(` ${g} Linear (${inst.displayName}) — ${n} ${n === 1 ? "team" : "teams"}`);
|
|
256
252
|
}
|
|
253
|
+
for (const inst of input.atlassian) {
|
|
254
|
+
const jp = inst.jiraProjects.length;
|
|
255
|
+
const cp = inst.confluencePages.length;
|
|
256
|
+
console.log(` ${g} Jira (${inst.displayName}) — ${jp} ${jp === 1 ? "project" : "projects"}`);
|
|
257
|
+
console.log(` ${g} Confluence (${inst.displayName}) — ${cp} ${cp === 1 ? "page" : "pages"}`);
|
|
258
|
+
}
|
|
257
259
|
for (const inst of input.notion) {
|
|
258
260
|
const d = inst.databases.length;
|
|
259
261
|
const p = inst.pages.length;
|
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ import { replay } from "./commands/replay.js";
|
|
|
24
24
|
import { resume } from "./commands/resume.js";
|
|
25
25
|
import { run } from "./commands/run.js";
|
|
26
26
|
import { secretsAdd, secretsImport, secretsList, secretsRemove } from "./commands/secrets.js";
|
|
27
|
+
import { stateGet, stateList, stateRemove, stateReset } from "./commands/state.js";
|
|
27
28
|
import { targetClear, targetStatus, targetUse } from "./commands/target.js";
|
|
28
29
|
import { test, testList, testRun, testShow } from "./commands/test.js";
|
|
29
30
|
import { isCliRunCommandEnabled } from "./env.js";
|
|
@@ -88,11 +89,13 @@ const testCommand = program
|
|
|
88
89
|
.argument("[job-name]", "Name of the job to test (auto-selects if only one exists)")
|
|
89
90
|
.option("-v, --verbose", "Show job stream output", true)
|
|
90
91
|
.option("--no-verbose", "Hide job stream output")
|
|
92
|
+
.option("--fresh-state", "Reset the job's test state before running")
|
|
91
93
|
.option(...ENTRY_FILE_OPTION)
|
|
92
94
|
.addHelpText("after", `
|
|
93
95
|
Examples:
|
|
94
96
|
$ terse test # interactive picker
|
|
95
97
|
$ terse test my-job # test a specific job
|
|
98
|
+
$ terse test my-job --fresh-state # reset test state first (e.g. to re-test dedupe)
|
|
96
99
|
|
|
97
100
|
Non-interactive subcommands (for AI agents and CI):
|
|
98
101
|
$ terse test list --json # enumerate sample events with ids
|
|
@@ -101,7 +104,7 @@ Non-interactive subcommands (for AI agents and CI):
|
|
|
101
104
|
$ terse test run --event-file sample.json # run a sample event from disk
|
|
102
105
|
`)
|
|
103
106
|
.action(async (jobName, opts) => {
|
|
104
|
-
await test(jobName, opts?.verbose, resolveProvider(), opts?.entryFile);
|
|
107
|
+
await test(jobName, opts?.verbose, resolveProvider(), opts?.entryFile, opts?.freshState);
|
|
105
108
|
});
|
|
106
109
|
testCommand
|
|
107
110
|
.command("list")
|
|
@@ -131,11 +134,13 @@ testCommand
|
|
|
131
134
|
.option("--event-file <path>", "Path to a JSON file containing the trigger event fixture")
|
|
132
135
|
.option("-v, --verbose", "Show job stream output", true)
|
|
133
136
|
.option("--no-verbose", "Hide job stream output")
|
|
137
|
+
.option("--fresh-state", "Reset the job's test state before running")
|
|
134
138
|
.option(...ENTRY_FILE_OPTION)
|
|
135
139
|
.addHelpText("after", `
|
|
136
140
|
Examples:
|
|
137
141
|
$ terse test list --json | jq -r '.events[0].id' | xargs -I{} terse test run --id {}
|
|
138
142
|
$ terse test run --event-file fixture.json
|
|
143
|
+
$ terse test run --id <id> --fresh-state
|
|
139
144
|
`)
|
|
140
145
|
.action(async (jobName, opts) => {
|
|
141
146
|
await testRun({
|
|
@@ -144,7 +149,8 @@ Examples:
|
|
|
144
149
|
eventJson: opts?.event,
|
|
145
150
|
eventFile: opts?.eventFile,
|
|
146
151
|
verbose: opts?.verbose,
|
|
147
|
-
entryFile: opts?.entryFile
|
|
152
|
+
entryFile: opts?.entryFile,
|
|
153
|
+
freshState: opts?.freshState
|
|
148
154
|
});
|
|
149
155
|
});
|
|
150
156
|
program
|
|
@@ -389,6 +395,62 @@ memoryCommand
|
|
|
389
395
|
.action(async (path, opts) => {
|
|
390
396
|
await memoryRemove(path, { job: opts.job, test: opts.test, yes: opts.yes, entryFile: opts.entryFile });
|
|
391
397
|
});
|
|
398
|
+
const stateCommand = program
|
|
399
|
+
.command("state")
|
|
400
|
+
.description("Inspect and manage a job's typed persistent state")
|
|
401
|
+
.addHelpText("after", `
|
|
402
|
+
State is written by \`state.set(...)\` in a job's filter/onTrigger handlers. Deployed runs and
|
|
403
|
+
\`terse test\` runs use separate state: commands default to the deployed state (read-only) and
|
|
404
|
+
target the test state with --test.
|
|
405
|
+
|
|
406
|
+
Examples:
|
|
407
|
+
$ terse state list --job my-job
|
|
408
|
+
$ terse state list --job my-job --test
|
|
409
|
+
$ terse state get lastProcessedId --job my-job
|
|
410
|
+
$ terse state rm lastProcessedId --job my-job --test --yes
|
|
411
|
+
$ terse state reset --job my-job --test --yes
|
|
412
|
+
`);
|
|
413
|
+
stateCommand
|
|
414
|
+
.command("list")
|
|
415
|
+
.description("List state keys for a job")
|
|
416
|
+
.option("--job <name>", "Job name (auto-selects if only one exists)")
|
|
417
|
+
.option("--test", "Target the isolated `terse test` state instead of deployed state")
|
|
418
|
+
.option("--json", "Emit JSON")
|
|
419
|
+
.option(...ENTRY_FILE_OPTION)
|
|
420
|
+
.action(async (opts) => {
|
|
421
|
+
await stateList({ job: opts.job, test: opts.test, json: opts.json, entryFile: opts.entryFile });
|
|
422
|
+
});
|
|
423
|
+
stateCommand
|
|
424
|
+
.command("get")
|
|
425
|
+
.description("Print a state value as JSON")
|
|
426
|
+
.argument("<key>", "State key (as declared in the job's `states`)")
|
|
427
|
+
.option("--job <name>", "Job name (auto-selects if only one exists)")
|
|
428
|
+
.option("--test", "Target the isolated `terse test` state instead of deployed state")
|
|
429
|
+
.option(...ENTRY_FILE_OPTION)
|
|
430
|
+
.action(async (key, opts) => {
|
|
431
|
+
await stateGet(key, { job: opts.job, test: opts.test, entryFile: opts.entryFile });
|
|
432
|
+
});
|
|
433
|
+
stateCommand
|
|
434
|
+
.command("rm")
|
|
435
|
+
.description("Delete one test state key (deployed state is read-only)")
|
|
436
|
+
.argument("<key>", "State key (as declared in the job's `states`)")
|
|
437
|
+
.option("--job <name>", "Job name (auto-selects if only one exists)")
|
|
438
|
+
.option("--test", "Target the isolated `terse test` state (required)")
|
|
439
|
+
.option("--yes", "Confirm deletion")
|
|
440
|
+
.option(...ENTRY_FILE_OPTION)
|
|
441
|
+
.action(async (key, opts) => {
|
|
442
|
+
await stateRemove(key, { job: opts.job, test: opts.test, yes: opts.yes, entryFile: opts.entryFile });
|
|
443
|
+
});
|
|
444
|
+
stateCommand
|
|
445
|
+
.command("reset")
|
|
446
|
+
.description("Delete all test state for a job (deployed state is read-only)")
|
|
447
|
+
.option("--job <name>", "Job name (auto-selects if only one exists)")
|
|
448
|
+
.option("--test", "Target the isolated `terse test` state (required)")
|
|
449
|
+
.option("--yes", "Confirm deletion")
|
|
450
|
+
.option(...ENTRY_FILE_OPTION)
|
|
451
|
+
.action(async (opts) => {
|
|
452
|
+
await stateReset({ job: opts.job, test: opts.test, yes: opts.yes, entryFile: opts.entryFile });
|
|
453
|
+
});
|
|
392
454
|
program
|
|
393
455
|
.command("generate")
|
|
394
456
|
.description("Autogenerate context from your connected workspaces")
|