@orgloop/cli 0.1.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/LICENSE.md +21 -0
- package/dist/commands/add.d.ts +8 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +363 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/apply.d.ts +9 -0
- package/dist/commands/apply.d.ts.map +1 -0
- package/dist/commands/apply.js +289 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/doctor.d.ts +45 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +346 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/env.d.ts +23 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +230 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/hook.d.ts +16 -0
- package/dist/commands/hook.d.ts.map +1 -0
- package/dist/commands/hook.js +80 -0
- package/dist/commands/hook.js.map +1 -0
- package/dist/commands/init.d.ts +42 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +532 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/inspect.d.ts +8 -0
- package/dist/commands/inspect.d.ts.map +1 -0
- package/dist/commands/inspect.js +177 -0
- package/dist/commands/inspect.js.map +1 -0
- package/dist/commands/install-service.d.ts +8 -0
- package/dist/commands/install-service.d.ts.map +1 -0
- package/dist/commands/install-service.js +182 -0
- package/dist/commands/install-service.js.map +1 -0
- package/dist/commands/logs.d.ts +8 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +197 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/plan.d.ts +9 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +200 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/routes.d.ts +37 -0
- package/dist/commands/routes.d.ts.map +1 -0
- package/dist/commands/routes.js +167 -0
- package/dist/commands/routes.js.map +1 -0
- package/dist/commands/service.d.ts +9 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +178 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/commands/status.d.ts +8 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +176 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +8 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +102 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/test.d.ts +8 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +236 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/validate.d.ts +33 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +501 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/version.d.ts +8 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +42 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config.d.ts +27 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +169 -0
- package/dist/config.js.map +1 -0
- package/dist/env-metadata.d.ts +12 -0
- package/dist/env-metadata.d.ts.map +1 -0
- package/dist/env-metadata.js +39 -0
- package/dist/env-metadata.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/module-resolver.d.ts +42 -0
- package/dist/module-resolver.d.ts.map +1 -0
- package/dist/module-resolver.js +134 -0
- package/dist/module-resolver.js.map +1 -0
- package/dist/output.d.ts +36 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +142 -0
- package/dist/output.js.map +1 -0
- package/dist/resolve-connectors.d.ts +27 -0
- package/dist/resolve-connectors.d.ts.map +1 -0
- package/dist/resolve-connectors.js +94 -0
- package/dist/resolve-connectors.js.map +1 -0
- package/package.json +51 -0
package/dist/output.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output formatting utilities for the CLI.
|
|
3
|
+
*
|
|
4
|
+
* Provides colored output, table formatting, JSON mode,
|
|
5
|
+
* quiet mode, and spinner support.
|
|
6
|
+
*/
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import ora, {} from 'ora';
|
|
9
|
+
// ─── Global output state ─────────────────────────────────────────────────────
|
|
10
|
+
let jsonMode = false;
|
|
11
|
+
let quietMode = false;
|
|
12
|
+
let verboseMode = false;
|
|
13
|
+
export function setJsonMode(enabled) {
|
|
14
|
+
jsonMode = enabled;
|
|
15
|
+
}
|
|
16
|
+
export function setQuietMode(enabled) {
|
|
17
|
+
quietMode = enabled;
|
|
18
|
+
}
|
|
19
|
+
export function setVerboseMode(enabled) {
|
|
20
|
+
verboseMode = enabled;
|
|
21
|
+
}
|
|
22
|
+
export function isJsonMode() {
|
|
23
|
+
return jsonMode;
|
|
24
|
+
}
|
|
25
|
+
// ─── Basic output ────────────────────────────────────────────────────────────
|
|
26
|
+
export function info(message) {
|
|
27
|
+
if (quietMode || jsonMode)
|
|
28
|
+
return;
|
|
29
|
+
console.log(message);
|
|
30
|
+
}
|
|
31
|
+
export function success(message) {
|
|
32
|
+
if (quietMode || jsonMode)
|
|
33
|
+
return;
|
|
34
|
+
console.log(chalk.green(` ✓ ${message}`));
|
|
35
|
+
}
|
|
36
|
+
export function error(message) {
|
|
37
|
+
if (jsonMode)
|
|
38
|
+
return;
|
|
39
|
+
console.error(chalk.red(` ✗ ${message}`));
|
|
40
|
+
}
|
|
41
|
+
export function warn(message) {
|
|
42
|
+
if (quietMode || jsonMode)
|
|
43
|
+
return;
|
|
44
|
+
console.warn(chalk.yellow(` ! ${message}`));
|
|
45
|
+
}
|
|
46
|
+
export function verbose(message) {
|
|
47
|
+
if (!verboseMode || quietMode || jsonMode)
|
|
48
|
+
return;
|
|
49
|
+
console.log(chalk.dim(` … ${message}`));
|
|
50
|
+
}
|
|
51
|
+
export function blank() {
|
|
52
|
+
if (quietMode || jsonMode)
|
|
53
|
+
return;
|
|
54
|
+
console.log();
|
|
55
|
+
}
|
|
56
|
+
// ─── Styled output ───────────────────────────────────────────────────────────
|
|
57
|
+
export function heading(text) {
|
|
58
|
+
if (quietMode || jsonMode)
|
|
59
|
+
return;
|
|
60
|
+
console.log(chalk.bold(text));
|
|
61
|
+
}
|
|
62
|
+
export function subheading(text) {
|
|
63
|
+
if (quietMode || jsonMode)
|
|
64
|
+
return;
|
|
65
|
+
console.log(chalk.bold.dim(`\n ${text}:`));
|
|
66
|
+
}
|
|
67
|
+
export function planAdd(text) {
|
|
68
|
+
if (quietMode || jsonMode)
|
|
69
|
+
return;
|
|
70
|
+
console.log(chalk.green(` + ${text}`));
|
|
71
|
+
}
|
|
72
|
+
export function planChange(text) {
|
|
73
|
+
if (quietMode || jsonMode)
|
|
74
|
+
return;
|
|
75
|
+
console.log(chalk.yellow(` ~ ${text}`));
|
|
76
|
+
}
|
|
77
|
+
export function planUnchanged(text) {
|
|
78
|
+
if (quietMode || jsonMode)
|
|
79
|
+
return;
|
|
80
|
+
console.log(chalk.dim(` = ${text}`));
|
|
81
|
+
}
|
|
82
|
+
export function planRemove(text) {
|
|
83
|
+
if (quietMode || jsonMode)
|
|
84
|
+
return;
|
|
85
|
+
console.log(chalk.red(` - ${text}`));
|
|
86
|
+
}
|
|
87
|
+
// ─── JSON output ─────────────────────────────────────────────────────────────
|
|
88
|
+
export function json(data) {
|
|
89
|
+
console.log(JSON.stringify(data, null, 2));
|
|
90
|
+
}
|
|
91
|
+
export function table(columns, rows) {
|
|
92
|
+
if (jsonMode) {
|
|
93
|
+
json(rows);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (quietMode)
|
|
97
|
+
return;
|
|
98
|
+
// Calculate column widths
|
|
99
|
+
const widths = columns.map((col) => {
|
|
100
|
+
const headerLen = col.header.length;
|
|
101
|
+
const maxDataLen = rows.reduce((max, row) => Math.max(max, (row[col.key] ?? '').length), 0);
|
|
102
|
+
return col.width ?? Math.max(headerLen, maxDataLen) + 2;
|
|
103
|
+
});
|
|
104
|
+
// Print header
|
|
105
|
+
const headerLine = columns.map((col, i) => col.header.padEnd(widths[i])).join('');
|
|
106
|
+
console.log(chalk.dim(` ${headerLine}`));
|
|
107
|
+
// Print rows
|
|
108
|
+
for (const row of rows) {
|
|
109
|
+
const line = columns
|
|
110
|
+
.map((col, i) => {
|
|
111
|
+
const val = row[col.key] ?? '';
|
|
112
|
+
return col.align === 'right' ? val.padStart(widths[i]) : val.padEnd(widths[i]);
|
|
113
|
+
})
|
|
114
|
+
.join('');
|
|
115
|
+
console.log(` ${line}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// ─── Spinner ─────────────────────────────────────────────────────────────────
|
|
119
|
+
export function spinner(text) {
|
|
120
|
+
if (jsonMode || quietMode) {
|
|
121
|
+
// Return a no-op spinner
|
|
122
|
+
return ora({ text, isSilent: true });
|
|
123
|
+
}
|
|
124
|
+
return ora({ text, color: 'cyan' }).start();
|
|
125
|
+
}
|
|
126
|
+
// ─── Validation output ───────────────────────────────────────────────────────
|
|
127
|
+
export function validPass(file, description) {
|
|
128
|
+
if (quietMode || jsonMode)
|
|
129
|
+
return;
|
|
130
|
+
console.log(`${chalk.green('✓')} ${file} — ${description}`);
|
|
131
|
+
}
|
|
132
|
+
export function validFail(file, description) {
|
|
133
|
+
if (jsonMode)
|
|
134
|
+
return;
|
|
135
|
+
console.log(`${chalk.red('✗')} ${file} — ${description}`);
|
|
136
|
+
}
|
|
137
|
+
export function validWarn(file, description) {
|
|
138
|
+
if (quietMode || jsonMode)
|
|
139
|
+
return;
|
|
140
|
+
console.log(`${chalk.yellow('!')} ${file} — ${description}`);
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connector instantiation bridge.
|
|
3
|
+
*
|
|
4
|
+
* Dynamically imports connector packages referenced in config,
|
|
5
|
+
* instantiates source/actor connectors, and returns Maps keyed by ID.
|
|
6
|
+
*/
|
|
7
|
+
import type { ActorConnector, ConnectorRegistration, OrgLoopConfig, SourceConnector } from '@orgloop/sdk';
|
|
8
|
+
export interface ResolvedConnectors {
|
|
9
|
+
sources: Map<string, SourceConnector>;
|
|
10
|
+
actors: Map<string, ActorConnector>;
|
|
11
|
+
}
|
|
12
|
+
export type ImportFn = (specifier: string) => Promise<{
|
|
13
|
+
default: () => ConnectorRegistration;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Resolve all connectors referenced in config by dynamically importing
|
|
17
|
+
* their packages and instantiating source/actor instances.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveConnectors(config: OrgLoopConfig, importFn?: ImportFn): Promise<ResolvedConnectors>;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve connector registrations (without instantiating sources/actors).
|
|
22
|
+
*
|
|
23
|
+
* Used by doctor to discover credential_validators and service_detectors
|
|
24
|
+
* without needing a full engine startup. Returns a Map of package name -> registration.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveConnectorRegistrations(config: OrgLoopConfig, importFn?: ImportFn): Promise<Map<string, ConnectorRegistration>>;
|
|
27
|
+
//# sourceMappingURL=resolve-connectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-connectors.d.ts","sourceRoot":"","sources":["../src/resolve-connectors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;CAAE,CAAC,CAAC;AAEhG;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,aAAa,EACrB,QAAQ,GAAE,QAA2B,GACnC,OAAO,CAAC,kBAAkB,CAAC,CAuE7B;AAED;;;;;GAKG;AACH,wBAAsB,6BAA6B,CAClD,MAAM,EAAE,aAAa,EACrB,QAAQ,GAAE,QAA2B,GACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAuB7C"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connector instantiation bridge.
|
|
3
|
+
*
|
|
4
|
+
* Dynamically imports connector packages referenced in config,
|
|
5
|
+
* instantiates source/actor connectors, and returns Maps keyed by ID.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Resolve all connectors referenced in config by dynamically importing
|
|
9
|
+
* their packages and instantiating source/actor instances.
|
|
10
|
+
*/
|
|
11
|
+
export async function resolveConnectors(config, importFn = (s) => import(s)) {
|
|
12
|
+
const sources = new Map();
|
|
13
|
+
const actors = new Map();
|
|
14
|
+
// Collect unique connector package names
|
|
15
|
+
const packageMap = new Map();
|
|
16
|
+
const allPackages = new Set();
|
|
17
|
+
for (const s of config.sources) {
|
|
18
|
+
allPackages.add(s.connector);
|
|
19
|
+
}
|
|
20
|
+
for (const a of config.actors) {
|
|
21
|
+
allPackages.add(a.connector);
|
|
22
|
+
}
|
|
23
|
+
// Import each unique connector package
|
|
24
|
+
for (const packageName of allPackages) {
|
|
25
|
+
if (packageMap.has(packageName))
|
|
26
|
+
continue;
|
|
27
|
+
let mod;
|
|
28
|
+
try {
|
|
29
|
+
mod = await importFn(packageName);
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
33
|
+
throw new Error(`Failed to import connector "${packageName}": ${msg}\n` +
|
|
34
|
+
` Hint: run \`pnpm add ${packageName}\` to install it.`);
|
|
35
|
+
}
|
|
36
|
+
if (typeof mod.default !== 'function') {
|
|
37
|
+
throw new Error(`Connector "${packageName}" does not export a default registration function.`);
|
|
38
|
+
}
|
|
39
|
+
const registration = mod.default();
|
|
40
|
+
packageMap.set(packageName, registration);
|
|
41
|
+
}
|
|
42
|
+
// Instantiate sources
|
|
43
|
+
for (const sourceCfg of config.sources) {
|
|
44
|
+
const reg = packageMap.get(sourceCfg.connector);
|
|
45
|
+
if (!reg)
|
|
46
|
+
continue;
|
|
47
|
+
if (!reg.source) {
|
|
48
|
+
throw new Error(`Connector "${sourceCfg.connector}" does not provide a source, ` +
|
|
49
|
+
`but source "${sourceCfg.id}" requires one.`);
|
|
50
|
+
}
|
|
51
|
+
sources.set(sourceCfg.id, new reg.source());
|
|
52
|
+
}
|
|
53
|
+
// Instantiate actors
|
|
54
|
+
for (const actorCfg of config.actors) {
|
|
55
|
+
const reg = packageMap.get(actorCfg.connector);
|
|
56
|
+
if (!reg)
|
|
57
|
+
continue;
|
|
58
|
+
if (!reg.target) {
|
|
59
|
+
throw new Error(`Connector "${actorCfg.connector}" does not provide a target, ` +
|
|
60
|
+
`but actor "${actorCfg.id}" requires one.`);
|
|
61
|
+
}
|
|
62
|
+
actors.set(actorCfg.id, new reg.target());
|
|
63
|
+
}
|
|
64
|
+
return { sources, actors };
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Resolve connector registrations (without instantiating sources/actors).
|
|
68
|
+
*
|
|
69
|
+
* Used by doctor to discover credential_validators and service_detectors
|
|
70
|
+
* without needing a full engine startup. Returns a Map of package name -> registration.
|
|
71
|
+
*/
|
|
72
|
+
export async function resolveConnectorRegistrations(config, importFn = (s) => import(s)) {
|
|
73
|
+
const registrations = new Map();
|
|
74
|
+
const allPackages = new Set();
|
|
75
|
+
for (const s of config.sources) {
|
|
76
|
+
allPackages.add(s.connector);
|
|
77
|
+
}
|
|
78
|
+
for (const a of config.actors) {
|
|
79
|
+
allPackages.add(a.connector);
|
|
80
|
+
}
|
|
81
|
+
for (const packageName of allPackages) {
|
|
82
|
+
try {
|
|
83
|
+
const mod = await importFn(packageName);
|
|
84
|
+
if (typeof mod.default === 'function') {
|
|
85
|
+
registrations.set(packageName, mod.default());
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Best-effort — doctor should not fail if a connector can't be imported
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return registrations;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=resolve-connectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-connectors.js","sourceRoot":"","sources":["../src/resolve-connectors.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@orgloop/cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "OrgLoop command-line interface",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"orgloop": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@types/js-yaml": "^4.0.9",
|
|
13
|
+
"ajv": "^8.17.0",
|
|
14
|
+
"chalk": "^5.4.0",
|
|
15
|
+
"commander": "^13.0.0",
|
|
16
|
+
"inquirer": "^12.0.0",
|
|
17
|
+
"js-yaml": "^4.1.0",
|
|
18
|
+
"ora": "^8.1.0",
|
|
19
|
+
"@orgloop/core": "0.1.0",
|
|
20
|
+
"@orgloop/sdk": "0.1.0"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/inquirer": "^9.0.7",
|
|
24
|
+
"@orgloop/connector-github": "0.1.0",
|
|
25
|
+
"@orgloop/connector-claude-code": "0.1.0",
|
|
26
|
+
"@orgloop/connector-cron": "0.1.0",
|
|
27
|
+
"@orgloop/connector-openclaw": "0.1.0",
|
|
28
|
+
"@orgloop/connector-linear": "0.1.0",
|
|
29
|
+
"@orgloop/logger-file": "0.1.0",
|
|
30
|
+
"@orgloop/connector-webhook": "0.1.0",
|
|
31
|
+
"@orgloop/logger-console": "0.1.0",
|
|
32
|
+
"@orgloop/transform-dedup": "0.1.0",
|
|
33
|
+
"@orgloop/transform-filter": "0.1.0",
|
|
34
|
+
"@orgloop/logger-syslog": "0.1.0",
|
|
35
|
+
"@orgloop/logger-otel": "0.1.0",
|
|
36
|
+
"@orgloop/transform-enrich": "0.1.0"
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"dist"
|
|
40
|
+
],
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
},
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsc",
|
|
47
|
+
"clean": "rm -rf dist",
|
|
48
|
+
"typecheck": "tsc --noEmit",
|
|
49
|
+
"test": "vitest run"
|
|
50
|
+
}
|
|
51
|
+
}
|