@loxtep/sdk 0.11.1 → 0.13.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/CHANGELOG.md +13 -0
- package/dist/cli/commands/attach-cmd.d.ts +1 -1
- package/dist/cli/commands/attach-cmd.js +1 -1
- package/dist/cli/commands/delivery-cmd.d.ts +1 -0
- package/dist/cli/commands/delivery-cmd.d.ts.map +1 -1
- package/dist/cli/commands/delivery-cmd.js +60 -44
- package/dist/cli/commands/delivery-cmd.js.map +1 -1
- package/dist/cli/commands/ingest-cmd.d.ts +1 -0
- package/dist/cli/commands/ingest-cmd.d.ts.map +1 -1
- package/dist/cli/commands/ingest-cmd.js +37 -24
- package/dist/cli/commands/ingest-cmd.js.map +1 -1
- package/dist/cli/commands/start-cmd.d.ts +25 -0
- package/dist/cli/commands/start-cmd.d.ts.map +1 -0
- package/dist/cli/commands/start-cmd.js +145 -0
- package/dist/cli/commands/start-cmd.js.map +1 -0
- package/dist/cli/commands/transform-cmd.d.ts +1 -0
- package/dist/cli/commands/transform-cmd.d.ts.map +1 -1
- package/dist/cli/commands/transform-cmd.js +36 -23
- package/dist/cli/commands/transform-cmd.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +9 -3
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +576 -515
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup-prompt.d.ts +2 -0
- package/dist/cli/setup-prompt.d.ts.map +1 -0
- package/dist/cli/setup-prompt.js +3 -0
- package/dist/cli/setup-prompt.js.map +1 -0
- package/dist/client/data-products.d.ts +10 -8
- package/dist/client/data-products.d.ts.map +1 -1
- package/dist/client/data-products.js +142 -93
- package/dist/client/data-products.js.map +1 -1
- package/dist/client/flow-types.d.ts +16 -6
- package/dist/client/flow-types.d.ts.map +1 -1
- package/dist/client/flow-types.js +6 -1
- package/dist/client/flow-types.js.map +1 -1
- package/dist/client/index.d.ts +89 -88
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +13 -12
- package/dist/client/index.js.map +1 -1
- package/dist/client/projects-types.d.ts +1 -1
- package/dist/client/queues.d.ts +5 -3
- package/dist/client/queues.d.ts.map +1 -1
- package/dist/client/queues.js +26 -21
- package/dist/client/queues.js.map +1 -1
- package/dist/client/workflows.d.ts +7 -7
- package/dist/client/workflows.d.ts.map +1 -1
- package/dist/client/workflows.js +71 -63
- package/dist/client/workflows.js.map +1 -1
- package/dist/lib/sdk-ingest-bundle.d.ts +5 -1
- package/dist/lib/sdk-ingest-bundle.d.ts.map +1 -1
- package/dist/lib/sdk-ingest-bundle.js +38 -29
- package/dist/lib/sdk-ingest-bundle.js.map +1 -1
- package/dist/rstreams/event-bridge.d.ts +4 -4
- package/dist/rstreams/event-bridge.d.ts.map +1 -1
- package/dist/rstreams/event-bridge.js +23 -16
- package/dist/rstreams/event-bridge.js.map +1 -1
- package/docs/event-writer-transport-modes.md +47 -0
- package/docs/getting-started.md +19 -0
- package/docs/sdk-first-ingest.md +14 -12
- package/docs/sdk-mcp-mapping.md +8 -3
- package/package.json +1 -1
- package/schemas/entity-json-schemas/SCHEMA_SYNC.md +1 -1
- package/schemas/entity-json-schemas/SOURCE.json +5 -4
- package/schemas/entity-json-schemas/connection.json +35 -0
- package/schemas/entity-json-schemas/data-product.json +16 -0
- package/schemas/entity-json-schemas/grant.json +146 -0
- package/schemas/entity-json-schemas/transformation.json +19 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/** Agent-led hosted MCP onboarding. Does not log in to the SDK or create credentials. */
|
|
2
|
+
import { spawnSync } from 'node:child_process';
|
|
3
|
+
import { existsSync, readFileSync, mkdirSync, writeFileSync, renameSync } from 'node:fs';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
5
|
+
import { dirname, join, delimiter } from 'node:path';
|
|
6
|
+
import { SETUP_PROMPT } from '../setup-prompt.js';
|
|
7
|
+
const MCP_URL = 'https://mcp.loxtep.io/ai/mcp/stream';
|
|
8
|
+
const CLIENTS = { claude: 'claude', codex: 'codex', opencode: 'opencode', cursor: 'cursor-agent' };
|
|
9
|
+
const SKILLS = ['loxtep-mcp-session', 'loxtep-auth', 'connect-external-system', 'data-workflows'];
|
|
10
|
+
export function supportedNode(version) {
|
|
11
|
+
const [major, minor] = version.replace(/^v/, '').split('.').map(Number);
|
|
12
|
+
return major > 22 || (major === 22 && minor >= 20);
|
|
13
|
+
}
|
|
14
|
+
export function detectClient(cwd, env, available, explicit) {
|
|
15
|
+
if (explicit) {
|
|
16
|
+
if (!(explicit in CLIENTS))
|
|
17
|
+
throw new Error('Supported clients: claude, codex, opencode, cursor.');
|
|
18
|
+
if (!available(CLIENTS[explicit]))
|
|
19
|
+
throw new Error(`Install ${CLIENTS[explicit]} first.`);
|
|
20
|
+
return explicit;
|
|
21
|
+
}
|
|
22
|
+
const active = env.CLAUDECODE ? 'claude' : env.CODEX_THREAD_ID ? 'codex' : env.CURSOR_TRACE_ID ? 'cursor' : undefined;
|
|
23
|
+
if (active && available(CLIENTS[active]))
|
|
24
|
+
return active;
|
|
25
|
+
const installed = Object.keys(CLIENTS).filter(c => available(CLIENTS[c]));
|
|
26
|
+
const hinted = installed.filter(c => existsSync(join(cwd, c === 'opencode' ? 'opencode.json' : `.${c}`)));
|
|
27
|
+
if (hinted.length === 1)
|
|
28
|
+
return hinted[0];
|
|
29
|
+
if (installed.length === 1)
|
|
30
|
+
return installed[0];
|
|
31
|
+
throw new Error(installed.length ? 'Multiple agents detected. Run loxtep start --client claude|codex|opencode|cursor.' : 'Install a supported coding agent, then run loxtep start again.');
|
|
32
|
+
}
|
|
33
|
+
/** Refuse conflicting entries rather than silently replacing credentials or local servers. */
|
|
34
|
+
export function mergeMcpConfig(text, client) {
|
|
35
|
+
const config = JSON.parse(text);
|
|
36
|
+
if (!config || typeof config !== 'object' || Array.isArray(config))
|
|
37
|
+
throw new Error('MCP configuration must be a JSON object.');
|
|
38
|
+
const key = client === 'opencode' ? 'mcp' : 'mcpServers';
|
|
39
|
+
if (config[key] && (typeof config[key] !== 'object' || Array.isArray(config[key])))
|
|
40
|
+
throw new Error(`Invalid ${key} configuration.`);
|
|
41
|
+
const servers = config[key] ?? {};
|
|
42
|
+
const current = servers.loxtep;
|
|
43
|
+
if (current) {
|
|
44
|
+
if (current.url !== MCP_URL || current.command || current.enabled === false || (client === 'opencode' && current.type !== 'remote') || (client === 'claude' && current.type !== 'http')) {
|
|
45
|
+
throw new Error('An incompatible Loxtep MCP entry already exists. Review it before running start again.');
|
|
46
|
+
}
|
|
47
|
+
return text;
|
|
48
|
+
}
|
|
49
|
+
config[key] = { ...servers, loxtep: client === 'opencode' ? { type: 'remote', url: MCP_URL, enabled: true } : client === 'claude' ? { type: 'http', url: MCP_URL } : { url: MCP_URL } };
|
|
50
|
+
return `${JSON.stringify(config, null, 2)}\n`;
|
|
51
|
+
}
|
|
52
|
+
export function runStart(options = {}) {
|
|
53
|
+
if (!supportedNode(options.nodeVersion ?? process.versions.node))
|
|
54
|
+
throw new Error('Loxtep start requires Node.js 22.20 or newer. Select a supported Node version and retry.');
|
|
55
|
+
const cwd = options.cwd ?? process.cwd();
|
|
56
|
+
const home = options.home ?? homedir();
|
|
57
|
+
const env = options.env ?? process.env;
|
|
58
|
+
const log = options.log ?? console.log;
|
|
59
|
+
const available = options.available ?? ((command) => (env.PATH ?? '').split(delimiter).some(p => existsSync(join(p, process.platform === 'win32' ? `${command}.cmd` : command))));
|
|
60
|
+
const run = options.run ?? ((command, args) => {
|
|
61
|
+
const result = spawnSync(command, args, { cwd, env, stdio: 'inherit', shell: false });
|
|
62
|
+
if (result.error)
|
|
63
|
+
throw result.error;
|
|
64
|
+
if (result.status !== 0)
|
|
65
|
+
throw new Error(`${command} did not finish successfully. Retry loxtep start after resolving the error.`);
|
|
66
|
+
});
|
|
67
|
+
const client = detectClient(cwd, env, available, options.client);
|
|
68
|
+
log(`Configuring ${client} for Loxtep hosted MCP. Browser sign-in is required; no token copy/paste.`);
|
|
69
|
+
const skillsPresent = SKILLS.every(skill => [
|
|
70
|
+
join(cwd, '.agents/skills', skill, 'SKILL.md'),
|
|
71
|
+
join(home, '.agents/skills', skill, 'SKILL.md'),
|
|
72
|
+
join(cwd, `.${client}/skills`, skill, 'SKILL.md'),
|
|
73
|
+
].some(existsSync));
|
|
74
|
+
const claudeHome = env.CLAUDE_CONFIG_DIR ?? join(home, '.claude');
|
|
75
|
+
const settingsPath = join(claudeHome, 'settings.json');
|
|
76
|
+
const settings = client === 'claude' && existsSync(settingsPath) ? JSON.parse(readFileSync(settingsPath, 'utf8')) : {};
|
|
77
|
+
const nativeClaudeEnabled = settings.enabledPlugins?.['loxtep-claude@loxtep'] === true;
|
|
78
|
+
const useClaudePlugin = client === 'claude' && (nativeClaudeEnabled || !skillsPresent);
|
|
79
|
+
// Validate configuration before installing anything.
|
|
80
|
+
let path;
|
|
81
|
+
let previous;
|
|
82
|
+
let updated;
|
|
83
|
+
let codexConfigured = false;
|
|
84
|
+
if (client === 'cursor' || client === 'opencode' || (client === 'claude' && !useClaudePlugin)) {
|
|
85
|
+
path = join(cwd, client === 'cursor' ? '.cursor/mcp.json' : client === 'claude' ? '.mcp.json' : 'opencode.json');
|
|
86
|
+
if (client === 'opencode' && existsSync(join(cwd, 'opencode.jsonc')))
|
|
87
|
+
throw new Error('This project uses opencode.jsonc. Follow setup.md to merge the hosted entry without losing comments.');
|
|
88
|
+
previous = existsSync(path) ? readFileSync(path, 'utf8') : undefined;
|
|
89
|
+
updated = mergeMcpConfig(previous ?? '{}', client);
|
|
90
|
+
}
|
|
91
|
+
else if (client === 'codex') {
|
|
92
|
+
const configPath = join(env.CODEX_HOME ?? join(home, '.codex'), 'config.toml');
|
|
93
|
+
const config = existsSync(configPath) ? readFileSync(configPath, 'utf8') : '';
|
|
94
|
+
const section = config.match(/^\[mcp_servers\.loxtep\]\s*\n([\s\S]*?)(?=^\[|$(?![\s\S]))/m);
|
|
95
|
+
if (section) {
|
|
96
|
+
codexConfigured = /^url\s*=\s*["']https:\/\/mcp\.loxtep\.io\/ai\/mcp\/stream["']\s*$/m.test(section[1]) && !/^command\s*=/m.test(section[1]) && !/^enabled\s*=\s*false/m.test(section[1]);
|
|
97
|
+
if (!codexConfigured)
|
|
98
|
+
throw new Error('An incompatible Loxtep MCP entry exists in Codex config. Review it before running start again.');
|
|
99
|
+
}
|
|
100
|
+
else if (/mcp_servers[^\n]*loxtep/.test(config)) {
|
|
101
|
+
throw new Error('Loxtep uses a nonstandard TOML entry. Follow setup.md to review it before running start again.');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (useClaudePlugin) {
|
|
105
|
+
log('Installing the native Loxtep Claude plugin (skills and MCP together) in Claude settings.');
|
|
106
|
+
// Marketplace add is not idempotent, so check the persisted marketplace first.
|
|
107
|
+
const marketplaces = join(claudeHome, 'plugins/known_marketplaces.json');
|
|
108
|
+
const known = existsSync(marketplaces) ? JSON.parse(readFileSync(marketplaces, 'utf8')) : {};
|
|
109
|
+
if (!known.loxtep)
|
|
110
|
+
run('claude', ['plugin', 'marketplace', 'add', 'LoxtepInc/loxtep-plugins-skills']);
|
|
111
|
+
if (settings.enabledPlugins?.['loxtep-claude@loxtep'] !== true)
|
|
112
|
+
run('claude', ['plugin', 'install', 'loxtep-claude@loxtep']);
|
|
113
|
+
else
|
|
114
|
+
log('Reusing the enabled Loxtep Claude plugin.');
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
if (skillsPresent)
|
|
118
|
+
log('Reusing installed Loxtep skills.');
|
|
119
|
+
else {
|
|
120
|
+
log('Installing Loxtep skills into this project; the hosted MCP configuration is installed separately.');
|
|
121
|
+
run('npx', ['--yes', 'skills', 'add', 'LoxtepInc/loxtep-plugins-skills', ...SKILLS.flatMap(s => ['--skill', s]), '-a', client === 'claude' ? 'claude-code' : client, '-y']);
|
|
122
|
+
}
|
|
123
|
+
if (client === 'codex' && !codexConfigured) {
|
|
124
|
+
log('Adding Loxtep hosted MCP to Codex user configuration.');
|
|
125
|
+
run('codex', ['mcp', 'add', 'loxtep', '--url', MCP_URL]);
|
|
126
|
+
}
|
|
127
|
+
if (path && updated !== previous) {
|
|
128
|
+
log(`Updating ${path} to add hosted Loxtep MCP while preserving other servers.`);
|
|
129
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
130
|
+
if (previous !== undefined)
|
|
131
|
+
writeFileSync(`${path}.loxtep-backup-${Date.now()}`, previous, { mode: 0o600, flag: 'wx' });
|
|
132
|
+
const temporary = `${path}.loxtep-${process.pid}.tmp`;
|
|
133
|
+
writeFileSync(temporary, updated, { mode: 0o600, flag: 'wx' });
|
|
134
|
+
renameSync(temporary, path);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (options.noLaunch) {
|
|
138
|
+
log('Configuration complete. Restart your agent if already open, then paste this exact setup prompt:');
|
|
139
|
+
log(SETUP_PROMPT);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
log(`Launching ${client}. Complete its hosted MCP sign-in when prompted. If interrupted, rerun loxtep start --client ${client}.`);
|
|
143
|
+
run(CLIENTS[client], client === 'opencode' ? ['--prompt', SETUP_PROMPT] : [SETUP_PROMPT]);
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=start-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/start-cmd.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,GAAG,qCAAqC,CAAC;AACtD,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAW,CAAC;AAE5G,MAAM,MAAM,GAAG,CAAC,oBAAoB,EAAE,aAAa,EAAE,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;AAClG,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxE,OAAO,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC;AACD,MAAM,UAAU,YAAY,CAC1B,GAAW,EAAE,GAAsB,EAAE,SAAuC,EAC5E,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACnG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAuB,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,QAAuB,CAAC,SAAS,CAAC,CAAC;QACxH,OAAO,QAAuB,CAAC;IACjC,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACtH,IAAI,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACxD,MAAM,SAAS,GAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC;AAC7L,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAwC;IACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC;IACvD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChI,MAAM,GAAG,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IACzD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,iBAAiB,CAAC,CAAC;IACrI,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;YACxL,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;IACxL,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAaD,MAAM,UAAU,QAAQ,CAAC,UAAwB,EAAE;IACjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;IAC9K,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1L,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAe,EAAE,IAAc,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,6EAA6E,CAAC,CAAC;IACpI,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,GAAG,CAAC,eAAe,MAAM,2EAA2E,CAAC,CAAC;IACtG,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC;KAClD,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpB,MAAM,UAAU,GAAG,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvH,MAAM,mBAAmB,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC,sBAAsB,CAAC,KAAK,IAAI,CAAC;IACvF,MAAM,eAAe,GAAG,MAAM,KAAK,QAAQ,IAAI,CAAC,mBAAmB,IAAI,CAAC,aAAa,CAAC,CAAC;IACvF,qDAAqD;IACrD,IAAI,IAAwB,CAAC;IAC7B,IAAI,QAA4B,CAAC;IACjC,IAAI,OAA2B,CAAC;IAChC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9F,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACjH,IAAI,MAAM,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAC;QAC9L,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,OAAO,GAAG,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC5F,IAAI,OAAO,EAAE,CAAC;YACZ,eAAe,GAAG,oEAAoE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1L,IAAI,CAAC,eAAe;gBAAE,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;QAC1I,CAAC;aAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;QACpH,CAAC;IACH,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,GAAG,CAAC,0FAA0F,CAAC,CAAC;QAChG,+EAA+E;QAC/E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,iCAAiC,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,iCAAiC,CAAC,CAAC,CAAC;QACtG,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC,sBAAsB,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;;YACxH,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,IAAI,aAAa;YAAE,GAAG,CAAC,kCAAkC,CAAC,CAAC;aACtD,CAAC;YACJ,GAAG,CAAC,mGAAmG,CAAC,CAAC;YACzG,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,iCAAiC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9K,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,GAAG,CAAC,uDAAuD,CAAC,CAAC;YAC7D,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjC,GAAG,CAAC,YAAY,IAAI,2DAA2D,CAAC,CAAC;YACjF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,QAAQ,KAAK,SAAS;gBAAE,aAAa,CAAC,GAAG,IAAI,kBAAkB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxH,MAAM,SAAS,GAAG,GAAG,IAAI,WAAW,OAAO,CAAC,GAAG,MAAM,CAAC;YACtD,aAAa,CAAC,SAAS,EAAE,OAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,GAAG,CAAC,iGAAiG,CAAC,CAAC;QACvG,GAAG,CAAC,YAAY,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IACD,GAAG,CAAC,aAAa,MAAM,gGAAgG,MAAM,GAAG,CAAC,CAAC;IAClI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/transform-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"transform-cmd.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/transform-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAkBD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IACN,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,EACD,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CA+Jf"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CLI: loxtep transform create — enrichment workflow stub (upstream DP → consumer DP).
|
|
3
3
|
*/
|
|
4
|
-
import { mkdirSync, writeFileSync } from
|
|
5
|
-
import { dirname, join } from
|
|
6
|
-
import { randomUUID } from
|
|
7
|
-
import { findProjectDir } from
|
|
8
|
-
import { requireCliClient } from
|
|
9
|
-
import { formatLintResult, runLintCheck } from
|
|
10
|
-
|
|
4
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
5
|
+
import { dirname, join } from "node:path";
|
|
6
|
+
import { randomUUID } from "node:crypto";
|
|
7
|
+
import { findProjectDir } from "../project-context.js";
|
|
8
|
+
import { requireCliClient } from "../create-cli-client.js";
|
|
9
|
+
import { formatLintResult, runLintCheck } from "./lint-cmd.js";
|
|
10
|
+
import { parseEventWriterTransportMode, } from "../../client/flow-types.js";
|
|
11
|
+
const ENRICHMENT_TEMPLATE_ID = "00000000-0000-4000-8000-0000000000a2";
|
|
11
12
|
function writePackageFiles(projectDir, files) {
|
|
12
13
|
const written = [];
|
|
13
14
|
for (const [relPath, entity] of Object.entries(files)) {
|
|
@@ -26,21 +27,30 @@ export async function runTransformCreate(params, options = {}) {
|
|
|
26
27
|
const cwd = options.cwd ?? process.cwd();
|
|
27
28
|
const projectDir = findProjectDir(cwd) ?? cwd;
|
|
28
29
|
const { client, config } = await requireCliClient(options);
|
|
30
|
+
let transportMode;
|
|
31
|
+
try {
|
|
32
|
+
transportMode = parseEventWriterTransportMode(params.transport_mode);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
36
|
+
process.exitCode = 1;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
29
39
|
const projectId = params.project_id ?? config.project_id;
|
|
30
40
|
if (!projectId) {
|
|
31
|
-
console.error(
|
|
41
|
+
console.error("Missing project_id. Run `loxtep init` and attach a project first.");
|
|
32
42
|
process.exitCode = 1;
|
|
33
43
|
return;
|
|
34
44
|
}
|
|
35
45
|
if (!params.from?.trim()) {
|
|
36
|
-
console.error(
|
|
46
|
+
console.error("Usage: loxtep transform create --from <upstream-dp-name> [--name cleaned-…]");
|
|
37
47
|
process.exitCode = 1;
|
|
38
48
|
return;
|
|
39
49
|
}
|
|
40
50
|
const user = await client.session.get_current_user();
|
|
41
51
|
const organizationId = user.organization_id ?? client.organization_id;
|
|
42
52
|
if (!organizationId) {
|
|
43
|
-
console.error(
|
|
53
|
+
console.error("Missing organization_id in session.");
|
|
44
54
|
process.exitCode = 1;
|
|
45
55
|
return;
|
|
46
56
|
}
|
|
@@ -50,7 +60,7 @@ export async function runTransformCreate(params, options = {}) {
|
|
|
50
60
|
domainId = domains.items?.[0]?.domain_id;
|
|
51
61
|
}
|
|
52
62
|
if (!domainId) {
|
|
53
|
-
console.error(
|
|
63
|
+
console.error("Missing domain_id. Pass --domain-id or create a domain first.");
|
|
54
64
|
process.exitCode = 1;
|
|
55
65
|
return;
|
|
56
66
|
}
|
|
@@ -66,11 +76,11 @@ export async function runTransformCreate(params, options = {}) {
|
|
|
66
76
|
project_id: projectId,
|
|
67
77
|
name: `Transform ${consumerName}`,
|
|
68
78
|
template_id: ENRICHMENT_TEMPLATE_ID,
|
|
69
|
-
workflow_type:
|
|
79
|
+
workflow_type: "enrichment",
|
|
70
80
|
domain_id: domainId,
|
|
71
|
-
status:
|
|
81
|
+
status: "active",
|
|
72
82
|
configuration: {},
|
|
73
|
-
metadata: { stage:
|
|
83
|
+
metadata: { stage: "transform", upstream_data_product: params.from },
|
|
74
84
|
created_at: now,
|
|
75
85
|
updated_at: now,
|
|
76
86
|
},
|
|
@@ -79,13 +89,14 @@ export async function runTransformCreate(params, options = {}) {
|
|
|
79
89
|
organization_id: organizationId,
|
|
80
90
|
project_id: projectId,
|
|
81
91
|
workflow_id: workflowId,
|
|
82
|
-
key:
|
|
92
|
+
key: "data-product-trigger",
|
|
83
93
|
name: `From ${params.from}`,
|
|
84
|
-
type:
|
|
85
|
-
status:
|
|
94
|
+
type: "data-product-trigger",
|
|
95
|
+
status: "active",
|
|
86
96
|
configuration: {
|
|
87
97
|
source_data_product_name: params.from,
|
|
88
98
|
},
|
|
99
|
+
runtime_settings: { event_writer: { transport_mode: transportMode } },
|
|
89
100
|
created_at: now,
|
|
90
101
|
updated_at: now,
|
|
91
102
|
},
|
|
@@ -94,18 +105,18 @@ export async function runTransformCreate(params, options = {}) {
|
|
|
94
105
|
organization_id: organizationId,
|
|
95
106
|
workflow_id: workflowId,
|
|
96
107
|
upstream_entity_id: connectionId,
|
|
97
|
-
upstream_entity_type:
|
|
108
|
+
upstream_entity_type: "connections",
|
|
98
109
|
domain_id: domainId,
|
|
99
110
|
name: consumerName,
|
|
100
|
-
status:
|
|
111
|
+
status: "draft",
|
|
101
112
|
governance: {
|
|
102
|
-
classification:
|
|
113
|
+
classification: "internal",
|
|
103
114
|
pii_fields: [],
|
|
104
115
|
compliance_requirements: [],
|
|
105
116
|
tags: [],
|
|
106
117
|
},
|
|
107
118
|
metadata: {
|
|
108
|
-
kind:
|
|
119
|
+
kind: "consumer",
|
|
109
120
|
project_id: projectId,
|
|
110
121
|
upstream_data_product: params.from,
|
|
111
122
|
},
|
|
@@ -119,7 +130,8 @@ export async function runTransformCreate(params, options = {}) {
|
|
|
119
130
|
workflow_id: workflowId,
|
|
120
131
|
data_product_id: dataProductId,
|
|
121
132
|
data_product_name: consumerName,
|
|
122
|
-
workflow_type:
|
|
133
|
+
workflow_type: "enrichment",
|
|
134
|
+
transport_mode: transportMode,
|
|
123
135
|
files: Object.keys(files),
|
|
124
136
|
}, null, 2));
|
|
125
137
|
return;
|
|
@@ -137,7 +149,8 @@ export async function runTransformCreate(params, options = {}) {
|
|
|
137
149
|
workflow_id: workflowId,
|
|
138
150
|
data_product_id: dataProductId,
|
|
139
151
|
data_product_name: consumerName,
|
|
140
|
-
workflow_type:
|
|
152
|
+
workflow_type: "enrichment",
|
|
153
|
+
transport_mode: transportMode,
|
|
141
154
|
files: written,
|
|
142
155
|
}, null, 2));
|
|
143
156
|
console.error(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/transform-cmd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"transform-cmd.js","sourceRoot":"","sources":["../../../src/cli/commands/transform-cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,QAAQ,QA8MV,CAAC;AAEZ,wBAAgB,YAAY,IAAI,IAAI,CAEnC"}
|
package/dist/cli/help.js
CHANGED
|
@@ -8,6 +8,10 @@ Turns organizational knowledge, expertise, and norms into machine-usable context
|
|
|
8
8
|
Usage: loxtep <command> [subcommand] [options]
|
|
9
9
|
loxtep --version | loxtep -V
|
|
10
10
|
|
|
11
|
+
Get started
|
|
12
|
+
start [--client claude|codex|opencode|cursor] [--no-launch]
|
|
13
|
+
Install Loxtep integration and launch your agent (Node 22.20+)
|
|
14
|
+
|
|
11
15
|
Authentication
|
|
12
16
|
login Log in (browser by default; --console for email/password/TOTP)
|
|
13
17
|
Saves to ./.loxtep/credentials.json by default (--global for ~/.loxtep)
|
|
@@ -47,12 +51,14 @@ Build & deploy
|
|
|
47
51
|
connectors capture-samples <connector_id> --entity-type <name> [--limit N]
|
|
48
52
|
Fetch bounded entity samples. Limit 1–25.
|
|
49
53
|
ingest create [--name app-events] [--domain-id <id>] [--connector-id <id>]
|
|
50
|
-
[--iceberg] [--dry-run] [--deploy]
|
|
54
|
+
[--transport-mode default|fast|volume] [--iceberg] [--dry-run] [--deploy]
|
|
51
55
|
Trigger + source DP local package (alias: ingest provision)
|
|
52
|
-
transform create --from <dp> [--name cleaned-…] [--dry-run]
|
|
56
|
+
transform create --from <dp> [--name cleaned-…] [--transport-mode default|fast|volume] [--dry-run]
|
|
53
57
|
Enrichment workflow stub (upstream DP → consumer DP)
|
|
54
|
-
delivery create --from <dp> --connector-id <id> [--table schema.table] [--name …]
|
|
58
|
+
delivery create --from <dp> --connector-id <id> [--table schema.table] [--name …]
|
|
59
|
+
[--transport-mode default|fast|volume] [--dry-run]
|
|
55
60
|
Delivery workflow (DP → target connection); workflow_type: delivery
|
|
61
|
+
Modes: default is durable/recommended; fast may cost more; volume has delivery lag
|
|
56
62
|
lint [--workflow <id>]
|
|
57
63
|
Validate local entity JSON (schemas, relationships, unique names)
|
|
58
64
|
push [--workflow-id <id>] [--dry-run] [--skip-reindex]
|
package/dist/cli/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8MvB,CAAC,OAAO,EAAE,CAAC;AAEZ,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAsLH;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA42C1D"}
|