@amodalai/amodal 0.2.1 → 0.2.2
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 +29 -0
- package/dist/src/commands/connect-channel.d.ts +11 -0
- package/dist/src/commands/connect-channel.d.ts.map +1 -0
- package/dist/src/commands/connect-channel.js +169 -0
- package/dist/src/commands/connect-channel.js.map +1 -0
- package/dist/src/commands/connect.d.ts +3 -1
- package/dist/src/commands/connect.d.ts.map +1 -1
- package/dist/src/commands/connect.js +27 -16
- package/dist/src/commands/connect.js.map +1 -1
- package/dist/src/commands/groups/connect.d.ts +8 -0
- package/dist/src/commands/groups/connect.d.ts.map +1 -0
- package/dist/src/commands/groups/connect.js +17 -0
- package/dist/src/commands/groups/connect.js.map +1 -0
- package/dist/src/commands/groups/pkg.d.ts.map +1 -1
- package/dist/src/commands/groups/pkg.js +0 -12
- package/dist/src/commands/groups/pkg.js.map +1 -1
- package/dist/src/commands/index.d.ts +1 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +3 -1
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +4 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/inspect.d.ts.map +1 -1
- package/dist/src/commands/inspect.js +32 -38
- package/dist/src/commands/inspect.js.map +1 -1
- package/dist/src/commands/install-pkg.d.ts +5 -5
- package/dist/src/commands/install-pkg.d.ts.map +1 -1
- package/dist/src/commands/install-pkg.js +35 -77
- package/dist/src/commands/install-pkg.js.map +1 -1
- package/dist/src/commands/uninstall.d.ts +2 -2
- package/dist/src/commands/uninstall.d.ts.map +1 -1
- package/dist/src/commands/uninstall.js +6 -32
- package/dist/src/commands/uninstall.js.map +1 -1
- package/dist/src/commands/validate.d.ts.map +1 -1
- package/dist/src/commands/validate.js +15 -21
- package/dist/src/commands/validate.js.map +1 -1
- package/dist/src/shared/tarball.js +1 -1
- package/dist/src/shared/tarball.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/commands/command-exports.test.ts +1 -1
- package/src/commands/connect-channel.ts +197 -0
- package/src/commands/connect.test.ts +28 -40
- package/src/commands/connect.ts +30 -24
- package/src/commands/groups/connect.ts +20 -0
- package/src/commands/groups/pkg.ts +0 -12
- package/src/commands/index.ts +5 -1
- package/src/commands/init.test.ts +2 -2
- package/src/commands/init.ts +5 -1
- package/src/commands/inspect.test.ts +1 -18
- package/src/commands/inspect.ts +31 -36
- package/src/commands/install-pkg.test.ts +39 -73
- package/src/commands/install-pkg.ts +38 -87
- package/src/commands/uninstall.test.ts +11 -51
- package/src/commands/uninstall.ts +7 -36
- package/src/commands/validate.test.ts +5 -26
- package/src/commands/validate.ts +15 -20
- package/src/e2e-commands.test.ts +0 -1
- package/src/e2e-plugins.test.ts +0 -1
- package/src/e2e.test.ts +0 -89
- package/src/shared/tarball.ts +1 -1
- package/dist/src/commands/diff.d.ts +0 -17
- package/dist/src/commands/diff.d.ts.map +0 -1
- package/dist/src/commands/diff.js +0 -118
- package/dist/src/commands/diff.js.map +0 -1
- package/dist/src/commands/list.d.ts +0 -18
- package/dist/src/commands/list.d.ts.map +0 -1
- package/dist/src/commands/list.js +0 -82
- package/dist/src/commands/list.js.map +0 -1
- package/dist/src/commands/publish.d.ts +0 -18
- package/dist/src/commands/publish.d.ts.map +0 -1
- package/dist/src/commands/publish.js +0 -121
- package/dist/src/commands/publish.js.map +0 -1
- package/dist/src/commands/search.d.ts +0 -19
- package/dist/src/commands/search.d.ts.map +0 -1
- package/dist/src/commands/search.js +0 -97
- package/dist/src/commands/search.js.map +0 -1
- package/dist/src/commands/update.d.ts +0 -19
- package/dist/src/commands/update.d.ts.map +0 -1
- package/dist/src/commands/update.js +0 -158
- package/dist/src/commands/update.js.map +0 -1
- package/src/commands/diff.test.ts +0 -165
- package/src/commands/diff.ts +0 -141
- package/src/commands/list.test.ts +0 -141
- package/src/commands/list.ts +0 -99
- package/src/commands/publish.test.ts +0 -169
- package/src/commands/publish.ts +0 -141
- package/src/commands/search.test.ts +0 -171
- package/src/commands/search.ts +0 -120
- package/src/commands/update.test.ts +0 -256
- package/src/commands/update.ts +0 -196
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# @amodalai/amodal
|
|
2
2
|
|
|
3
|
+
## 0.2.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#167](https://github.com/amodalai/amodal/pull/167) [`f4d59ea`](https://github.com/amodalai/amodal/commit/f4d59eae060aa5fa35e1f2f756413457a4d5331b) Thanks [@whodatdev](https://github.com/whodatdev)! - Add messaging channel plugin system
|
|
8
|
+
- Channel plugins are npm packages discovered via channel.json, dynamically loaded at boot
|
|
9
|
+
- Webhook router at POST /channels/:channelType/webhook with dedup, rate limiting, session affinity
|
|
10
|
+
- Drizzle and in-memory session mappers for channel user → session mapping
|
|
11
|
+
- ChannelPlugin interface with optional setup() for interactive CLI configuration
|
|
12
|
+
- `amodal connect channel <pkg>` and `amodal connect connection <pkg>` commands
|
|
13
|
+
- ChannelSetupContext for plugin-owned setup flows (prompt, writeEnv, updateConfig)
|
|
14
|
+
|
|
15
|
+
- [#166](https://github.com/amodalai/amodal/pull/166) [`1523d96`](https://github.com/amodalai/amodal/commit/1523d96f2bb1d6b5e2f0023690f9abb371b88fd3) Thanks [@whodatdev](https://github.com/whodatdev)! - Replace custom package registry with standard npm
|
|
16
|
+
|
|
17
|
+
Packages are now standard npm dependencies installed to node_modules/.
|
|
18
|
+
Declare installed packages in amodal.json `packages` array.
|
|
19
|
+
- Remove custom registry, hidden npm context (amodal_packages/), and lock file (amodal.lock)
|
|
20
|
+
- Add package-manager.ts (detectPackageManager, pmAdd, pmRemove, ensurePackageJson)
|
|
21
|
+
- Resolver loads declared packages using same nested structure as local repo
|
|
22
|
+
- amodal install/uninstall manage both npm deps and amodal.json packages array
|
|
23
|
+
- Remove publish, search, diff, update, list commands (use npm directly)
|
|
24
|
+
- Admin agent fetches from npmjs.org
|
|
25
|
+
|
|
26
|
+
- Updated dependencies [[`024207b`](https://github.com/amodalai/amodal/commit/024207b91220acfc9e44a73499dfd64124f54ab0), [`f4d59ea`](https://github.com/amodalai/amodal/commit/f4d59eae060aa5fa35e1f2f756413457a4d5331b), [`1523d96`](https://github.com/amodalai/amodal/commit/1523d96f2bb1d6b5e2f0023690f9abb371b88fd3), [`a33e080`](https://github.com/amodalai/amodal/commit/a33e0807e6607c88aa203f5dd2c1bf89299026d8)]:
|
|
27
|
+
- @amodalai/core@0.2.2
|
|
28
|
+
- @amodalai/types@0.2.2
|
|
29
|
+
- @amodalai/runtime@0.2.2
|
|
30
|
+
- @amodalai/runtime-app@0.2.2
|
|
31
|
+
|
|
3
32
|
## 0.2.1
|
|
4
33
|
|
|
5
34
|
### Patch Changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import type { CommandModule } from 'yargs';
|
|
7
|
+
export declare const connectChannelCommand: CommandModule<{}, {
|
|
8
|
+
name: string;
|
|
9
|
+
'webhook-url'?: string;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=connect-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-channel.d.ts","sourceRoot":"","sources":["../../../src/commands/connect-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AASzC,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,EAAE,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAC,CAW3F,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* `amodal connect channel <name>` — install a channel package and run
|
|
8
|
+
* its interactive setup flow (prompt for credentials, set webhooks, etc.).
|
|
9
|
+
*/
|
|
10
|
+
import { findRepoRoot } from '../shared/repo-discovery.js';
|
|
11
|
+
import { readFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
12
|
+
import path from 'node:path';
|
|
13
|
+
import { pathToFileURL } from 'node:url';
|
|
14
|
+
import prompts from 'prompts';
|
|
15
|
+
import { ensurePackageJson, pmAdd, toNpmName } from '@amodalai/core';
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type -- yargs CommandModule default generic
|
|
17
|
+
export const connectChannelCommand = {
|
|
18
|
+
command: 'channel <name>',
|
|
19
|
+
describe: 'Connect a messaging channel (install + setup)',
|
|
20
|
+
builder: (yargs) => yargs
|
|
21
|
+
.positional('name', { type: 'string', demandOption: true, describe: 'Channel package name or short name' })
|
|
22
|
+
.option('webhook-url', { type: 'string', describe: 'Public webhook URL for this channel' }),
|
|
23
|
+
handler: async (argv) => {
|
|
24
|
+
const code = await runConnectChannel({ name: argv.name, webhookUrl: argv['webhook-url'] });
|
|
25
|
+
process.exit(code);
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
async function runConnectChannel(options) {
|
|
29
|
+
let repoPath;
|
|
30
|
+
try {
|
|
31
|
+
repoPath = findRepoRoot(options.cwd);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
35
|
+
process.stderr.write(`[connect channel] ${msg}\n`);
|
|
36
|
+
return 1;
|
|
37
|
+
}
|
|
38
|
+
const npmName = toNpmName(options.name);
|
|
39
|
+
// Step 1: Install if not present
|
|
40
|
+
const packageDir = path.join(repoPath, 'node_modules', ...npmName.split('/'));
|
|
41
|
+
let alreadyInstalled = false;
|
|
42
|
+
try {
|
|
43
|
+
alreadyInstalled = existsSync(path.join(packageDir, 'package.json'));
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Not installed
|
|
47
|
+
}
|
|
48
|
+
if (!alreadyInstalled) {
|
|
49
|
+
process.stderr.write(`[connect channel] Installing ${npmName}...\n`);
|
|
50
|
+
try {
|
|
51
|
+
ensurePackageJson(repoPath, 'amodal-project');
|
|
52
|
+
await pmAdd(repoPath, npmName);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
56
|
+
process.stderr.write(`[connect channel] Install failed: ${msg}\n`);
|
|
57
|
+
return 1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
process.stderr.write(`[connect channel] ${npmName} already installed.\n`);
|
|
62
|
+
}
|
|
63
|
+
// Step 2: Load the plugin
|
|
64
|
+
const plugin = await loadChannelPlugin(packageDir, npmName);
|
|
65
|
+
if (!plugin)
|
|
66
|
+
return 1;
|
|
67
|
+
// Step 3: Add to packages array in amodal.json if not present
|
|
68
|
+
const configPath = path.join(repoPath, 'amodal.json');
|
|
69
|
+
if (!existsSync(configPath)) {
|
|
70
|
+
process.stderr.write('[connect channel] No amodal.json found. Run `amodal init` first.\n');
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- parsing external JSON
|
|
74
|
+
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- config.packages is string[]
|
|
76
|
+
const packages = (config['packages'] ?? []);
|
|
77
|
+
if (!packages.includes(npmName)) {
|
|
78
|
+
packages.push(npmName);
|
|
79
|
+
config['packages'] = packages;
|
|
80
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
81
|
+
process.stderr.write(`[connect channel] Added ${npmName} to amodal.json packages.\n`);
|
|
82
|
+
}
|
|
83
|
+
// Step 4: Run plugin setup if available
|
|
84
|
+
if (!plugin.setup) {
|
|
85
|
+
process.stderr.write(`[connect channel] ${plugin.channelType} connected. No interactive setup available.\n`);
|
|
86
|
+
return 0;
|
|
87
|
+
}
|
|
88
|
+
const context = buildSetupContext(repoPath, configPath, config, options.webhookUrl);
|
|
89
|
+
try {
|
|
90
|
+
await plugin.setup(context);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
94
|
+
process.stderr.write(`[connect channel] Setup failed: ${msg}\n`);
|
|
95
|
+
return 1;
|
|
96
|
+
}
|
|
97
|
+
process.stderr.write(`\n✅ Channel "${plugin.channelType}" connected and configured.\n`);
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
async function loadChannelPlugin(packageDir, npmName) {
|
|
101
|
+
const pkgJsonPath = path.join(packageDir, 'package.json');
|
|
102
|
+
if (!existsSync(pkgJsonPath)) {
|
|
103
|
+
process.stderr.write(`[connect channel] Package "${npmName}" not found in node_modules.\n`);
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- parsing external JSON
|
|
107
|
+
const pkgJson = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));
|
|
108
|
+
const mainField = String(pkgJson['main'] ?? 'dist/index.js');
|
|
109
|
+
const entryPath = path.resolve(packageDir, mainField);
|
|
110
|
+
if (!entryPath.startsWith(path.resolve(packageDir))) {
|
|
111
|
+
process.stderr.write(`[connect channel] Package "${npmName}" has invalid main field.\n`);
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- dynamic import
|
|
116
|
+
const mod = await import(pathToFileURL(entryPath).href);
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- validating shape below
|
|
118
|
+
const plugin = mod.default;
|
|
119
|
+
if (!plugin || typeof plugin.channelType !== 'string' || typeof plugin.createAdapter !== 'function') {
|
|
120
|
+
process.stderr.write(`[connect channel] Package "${npmName}" does not export a valid ChannelPlugin.\n`);
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
return plugin;
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
127
|
+
process.stderr.write(`[connect channel] Failed to load plugin: ${msg}\n`);
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function buildSetupContext(repoPath, configPath, config, webhookUrl) {
|
|
132
|
+
return {
|
|
133
|
+
repoPath,
|
|
134
|
+
config,
|
|
135
|
+
webhookUrl,
|
|
136
|
+
writeEnv: async (key, value) => {
|
|
137
|
+
const envPath = path.join(repoPath, '.env');
|
|
138
|
+
const existing = existsSync(envPath) ? readFileSync(envPath, 'utf-8') : '';
|
|
139
|
+
const lines = existing.split('\n');
|
|
140
|
+
const idx = lines.findIndex((l) => l.startsWith(`${key}=`));
|
|
141
|
+
if (idx >= 0) {
|
|
142
|
+
lines[idx] = `${key}=${value}`;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
lines.push(`${key}=${value}`);
|
|
146
|
+
}
|
|
147
|
+
writeFileSync(envPath, lines.join('\n'));
|
|
148
|
+
},
|
|
149
|
+
updateConfig: async (patch) => {
|
|
150
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- parsing project config
|
|
151
|
+
const current = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
152
|
+
Object.assign(current, patch);
|
|
153
|
+
writeFileSync(configPath, JSON.stringify(current, null, 2) + '\n');
|
|
154
|
+
},
|
|
155
|
+
prompt: async (message, options) => {
|
|
156
|
+
const response = await prompts({
|
|
157
|
+
type: options?.secret ? 'password' : 'text',
|
|
158
|
+
name: 'value',
|
|
159
|
+
message,
|
|
160
|
+
initial: options?.default,
|
|
161
|
+
});
|
|
162
|
+
if (response.value === undefined) {
|
|
163
|
+
throw new Error('Setup cancelled by user');
|
|
164
|
+
}
|
|
165
|
+
return String(response.value);
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=connect-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-channel.js","sourceRoot":"","sources":["../../../src/commands/connect-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
6
|
import type { CommandModule } from 'yargs';
|
|
@@ -15,4 +15,6 @@ export interface ConnectOptions {
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function runConnect(options: ConnectOptions): Promise<number>;
|
|
17
17
|
export declare const connectCommand: CommandModule;
|
|
18
|
+
/** Variant of connectCommand registered as `amodal connect connection <name>`. */
|
|
19
|
+
export declare const connectConnectionCommand: CommandModule;
|
|
18
20
|
//# sourceMappingURL=connect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/commands/connect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/commands/connect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAezC,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAiFzE;AA+FD,eAAO,MAAM,cAAc,EAAE,aAY5B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,EAAE,aAYtC,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
+
import { statSync } from 'node:fs';
|
|
6
7
|
import { join } from 'node:path';
|
|
7
8
|
import prompts from 'prompts';
|
|
8
|
-
import {
|
|
9
|
+
import { ensurePackageJson, findMissingEnvVars, pmAdd, readPackageManifest, toNpmName, upsertEnvEntries, } from '@amodalai/core';
|
|
9
10
|
import { findRepoRoot } from '../shared/repo-discovery.js';
|
|
10
11
|
import { promptForCredentials, runOAuth2Flow, testConnection } from '../auth/index.js';
|
|
11
12
|
/**
|
|
@@ -22,23 +23,22 @@ export async function runConnect(options) {
|
|
|
22
23
|
process.stderr.write(`[connect] ${msg}\n`);
|
|
23
24
|
return 1;
|
|
24
25
|
}
|
|
25
|
-
const paths = await ensureNpmContext(repoPath);
|
|
26
26
|
const npmName = toNpmName(options.name);
|
|
27
|
-
const
|
|
28
|
-
|
|
27
|
+
const packageDir = join(repoPath, 'node_modules', npmName);
|
|
28
|
+
// Check if already installed by looking in node_modules
|
|
29
|
+
let isReconnect = false;
|
|
30
|
+
try {
|
|
31
|
+
isReconnect = statSync(packageDir).isDirectory();
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Not installed
|
|
35
|
+
}
|
|
29
36
|
// Step 1: Install if fresh
|
|
30
37
|
if (!isReconnect) {
|
|
31
38
|
process.stderr.write(`[connect] Installing ${npmName}...\n`);
|
|
32
39
|
try {
|
|
33
|
-
|
|
34
|
-
await
|
|
35
|
-
version: result.version,
|
|
36
|
-
integrity: result.integrity,
|
|
37
|
-
});
|
|
38
|
-
await addConfigDep(repoPath, npmName, result.version);
|
|
39
|
-
// Rebuild lock file from what's actually installed
|
|
40
|
-
const discovered = await discoverInstalledPackages(paths);
|
|
41
|
-
await buildLockFile(repoPath, discovered);
|
|
40
|
+
ensurePackageJson(repoPath, 'amodal-project');
|
|
41
|
+
await pmAdd(repoPath, npmName);
|
|
42
42
|
}
|
|
43
43
|
catch (err) {
|
|
44
44
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -50,8 +50,6 @@ export async function runConnect(options) {
|
|
|
50
50
|
process.stderr.write(`[connect] ${options.name} already installed. Running auth + test.\n`);
|
|
51
51
|
}
|
|
52
52
|
// Step 2: Read manifest
|
|
53
|
-
const contextPaths = getNpmContextPaths(repoPath);
|
|
54
|
-
const packageDir = join(contextPaths.nodeModules, npmName);
|
|
55
53
|
let manifest;
|
|
56
54
|
try {
|
|
57
55
|
manifest = await readPackageManifest(packageDir);
|
|
@@ -189,4 +187,17 @@ export const connectCommand = {
|
|
|
189
187
|
process.exit(code);
|
|
190
188
|
},
|
|
191
189
|
};
|
|
190
|
+
/** Variant of connectCommand registered as `amodal connect connection <name>`. */
|
|
191
|
+
export const connectConnectionCommand = {
|
|
192
|
+
command: 'connection <name>',
|
|
193
|
+
describe: 'Connect a connection package (install + auth + test)',
|
|
194
|
+
builder: (yargs) => yargs
|
|
195
|
+
.positional('name', { type: 'string', demandOption: true, describe: 'Connection name' })
|
|
196
|
+
.option('force', { type: 'boolean', default: false, describe: 'Force re-authentication' }),
|
|
197
|
+
handler: async (argv) => {
|
|
198
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
199
|
+
const code = await runConnect({ name: argv['name'], force: argv['force'] });
|
|
200
|
+
process.exit(code);
|
|
201
|
+
},
|
|
202
|
+
};
|
|
192
203
|
//# sourceMappingURL=connect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/connect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAG/B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../../src/commands/groups/connect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAIzC,eAAO,MAAM,mBAAmB,EAAE,aASjC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { connectConnectionCommand } from '../connect.js';
|
|
7
|
+
import { connectChannelCommand } from '../connect-channel.js';
|
|
8
|
+
export const connectGroupCommand = {
|
|
9
|
+
command: 'connect <command>',
|
|
10
|
+
describe: 'Connect a package (connection or channel)',
|
|
11
|
+
builder: (yargs) => yargs
|
|
12
|
+
.command(connectConnectionCommand)
|
|
13
|
+
.command(connectChannelCommand)
|
|
14
|
+
.demandCommand(1, 'Specify: connection or channel'),
|
|
15
|
+
handler: () => { },
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=connect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../../src/commands/groups/connect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,wBAAwB,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EAAE,2CAA2C;IACrD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,wBAAwB,CAAC;SACjC,OAAO,CAAC,qBAAqB,CAAC;SAC9B,aAAa,CAAC,CAAC,EAAE,gCAAgC,CAAC;IACvD,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkg.d.ts","sourceRoot":"","sources":["../../../../src/commands/groups/pkg.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"pkg.d.ts","sourceRoot":"","sources":["../../../../src/commands/groups/pkg.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAMzC,eAAO,MAAM,UAAU,EAAE,aAWxB,CAAC"}
|
|
@@ -3,28 +3,16 @@
|
|
|
3
3
|
* Copyright 2025 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
import { connectCommand } from '../connect.js';
|
|
7
6
|
import { installPkgCommand } from '../install-pkg.js';
|
|
8
7
|
import { uninstallCommand } from '../uninstall.js';
|
|
9
|
-
import { listCommand } from '../list.js';
|
|
10
|
-
import { updateCommand } from '../update.js';
|
|
11
|
-
import { diffCommand } from '../diff.js';
|
|
12
|
-
import { searchCommand } from '../search.js';
|
|
13
|
-
import { publishCommand } from '../publish.js';
|
|
14
8
|
import { linkCommand } from '../link.js';
|
|
15
9
|
import { syncCommand } from '../sync.js';
|
|
16
10
|
export const pkgCommand = {
|
|
17
11
|
command: 'pkg <command>',
|
|
18
12
|
describe: 'Manage packages',
|
|
19
13
|
builder: (yargs) => yargs
|
|
20
|
-
.command(connectCommand)
|
|
21
14
|
.command(installPkgCommand)
|
|
22
15
|
.command(uninstallCommand)
|
|
23
|
-
.command(listCommand)
|
|
24
|
-
.command(updateCommand)
|
|
25
|
-
.command(diffCommand)
|
|
26
|
-
.command(searchCommand)
|
|
27
|
-
.command(publishCommand)
|
|
28
16
|
.command(linkCommand)
|
|
29
17
|
.command(syncCommand)
|
|
30
18
|
.demandCommand(1, 'Specify a subcommand'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkg.js","sourceRoot":"","sources":["../../../../src/commands/groups/pkg.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"pkg.js","sourceRoot":"","sources":["../../../../src/commands/groups/pkg.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,iBAAiB,CAAC;SAC1B,OAAO,CAAC,gBAAgB,CAAC;SACzB,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,WAAW,CAAC;SACpB,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC;IAC7C,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* All amodal subcommands registered on the root yargs instance.
|
|
8
8
|
*
|
|
9
9
|
* Top-level: daily-driver commands (init, dev, chat, validate, inspect, eval, test)
|
|
10
|
-
* Groups: pkg, deploy, ops, auth
|
|
10
|
+
* Groups: pkg, deploy, ops, auth, connect
|
|
11
11
|
*/
|
|
12
12
|
export declare const amodalCommands: import("yargs").CommandModule<{}, {}>[];
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,yCAe1B,CAAC"}
|
|
@@ -14,11 +14,12 @@ import { pkgCommand } from './groups/pkg.js';
|
|
|
14
14
|
import { deployGroupCommand } from './groups/deploy.js';
|
|
15
15
|
import { opsCommand } from './groups/ops.js';
|
|
16
16
|
import { authCommand } from './groups/auth.js';
|
|
17
|
+
import { connectGroupCommand } from './groups/connect.js';
|
|
17
18
|
/**
|
|
18
19
|
* All amodal subcommands registered on the root yargs instance.
|
|
19
20
|
*
|
|
20
21
|
* Top-level: daily-driver commands (init, dev, chat, validate, inspect, eval, test)
|
|
21
|
-
* Groups: pkg, deploy, ops, auth
|
|
22
|
+
* Groups: pkg, deploy, ops, auth, connect
|
|
22
23
|
*/
|
|
23
24
|
export const amodalCommands = [
|
|
24
25
|
// Top-level
|
|
@@ -34,5 +35,6 @@ export const amodalCommands = [
|
|
|
34
35
|
deployGroupCommand,
|
|
35
36
|
opsCommand,
|
|
36
37
|
authCommand,
|
|
38
|
+
connectGroupCommand,
|
|
37
39
|
];
|
|
38
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY;IACZ,WAAW;IACX,UAAU;IACV,WAAW;IACX,eAAe;IACf,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,SAAS;IACT,UAAU;IACV,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,mBAAmB;CACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC9C;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CtE;AAED,eAAO,MAAM,WAAW,EAAE,aAsBzB,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
7
7
|
import { join } from 'node:path';
|
|
8
|
+
import { ensurePackageJson } from '@amodalai/core';
|
|
8
9
|
import { generateConfigTemplate } from '../templates/config-template.js';
|
|
9
10
|
/**
|
|
10
11
|
* Scaffolds a new amodal project in the current directory.
|
|
@@ -31,10 +32,12 @@ export async function runInit(options = {}) {
|
|
|
31
32
|
}
|
|
32
33
|
// Write amodal.json at repo root
|
|
33
34
|
writeFileSync(configPath, generateConfigTemplate({ name, provider }));
|
|
35
|
+
// Ensure package.json exists
|
|
36
|
+
ensurePackageJson(cwd, name);
|
|
34
37
|
// Write .gitignore if it doesn't exist
|
|
35
38
|
const gitignorePath = join(cwd, '.gitignore');
|
|
36
39
|
if (!existsSync(gitignorePath)) {
|
|
37
|
-
writeFileSync(gitignorePath, '.amodal/\
|
|
40
|
+
writeFileSync(gitignorePath, '.amodal/\nnode_modules/\n.env\n.env.*\n');
|
|
38
41
|
}
|
|
39
42
|
process.stderr.write(`[init] Created project "${name}" (${provider})\n`);
|
|
40
43
|
process.stderr.write('[init] Next steps:\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,OAAO,EAAC,sBAAsB,EAAC,MAAM,iCAAiC,CAAC;AAQvE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAAuB,EAAE;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE5C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;IAEjD,6BAA6B;IAC7B,MAAM,IAAI,GAAG;QACX,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;QACnB,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;QACtB,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,SAAS,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IACpC,CAAC;IAED,iCAAiC;IACjC,aAAa,CAAC,UAAU,EAAE,sBAAsB,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;IAEpE,uCAAuC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,aAAa,CAAC,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkG5E;AAED,eAAO,MAAM,cAAc,EAAE,aA2B5B,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
import { loadRepo, setupSession,
|
|
6
|
+
import { loadRepo, setupSession, resolveAllPackages } from '@amodalai/core';
|
|
7
7
|
import { findRepoRoot } from '../shared/repo-discovery.js';
|
|
8
8
|
/**
|
|
9
9
|
* Loads the repo, runs setupSession(), and prints the compiled
|
|
@@ -56,46 +56,40 @@ export async function runInspect(options = {}) {
|
|
|
56
56
|
}
|
|
57
57
|
if (options.resolved) {
|
|
58
58
|
process.stdout.write('\n=== Resolved Packages ===\n');
|
|
59
|
-
const
|
|
60
|
-
if
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (scopeName && name !== scopeName)
|
|
72
|
-
continue;
|
|
73
|
-
process.stdout.write(`\n Connection: ${name}\n`);
|
|
74
|
-
process.stdout.write(` Endpoints: ${conn.surface.length}\n`);
|
|
75
|
-
process.stdout.write(` Auth: ${conn.spec.auth?.type ?? 'none'}\n`);
|
|
76
|
-
}
|
|
59
|
+
const resolved = await resolveAllPackages({ repoPath });
|
|
60
|
+
// Filter by scope if given
|
|
61
|
+
const scopeParts = options.scope?.split('/');
|
|
62
|
+
const scopeType = scopeParts?.[0];
|
|
63
|
+
const scopeName = scopeParts?.[1];
|
|
64
|
+
if (!scopeType || scopeType === 'connections') {
|
|
65
|
+
for (const [name, conn] of resolved.connections) {
|
|
66
|
+
if (scopeName && name !== scopeName)
|
|
67
|
+
continue;
|
|
68
|
+
process.stdout.write(`\n Connection: ${name}\n`);
|
|
69
|
+
process.stdout.write(` Endpoints: ${conn.surface.length}\n`);
|
|
70
|
+
process.stdout.write(` Auth: ${conn.spec.auth?.type ?? 'none'}\n`);
|
|
77
71
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
72
|
+
}
|
|
73
|
+
if (!scopeType || scopeType === 'skills') {
|
|
74
|
+
for (const skill of resolved.skills) {
|
|
75
|
+
if (scopeName && skill.name !== scopeName)
|
|
76
|
+
continue;
|
|
77
|
+
process.stdout.write(`\n Skill: ${skill.name}\n`);
|
|
78
|
+
process.stdout.write(` Body: ${skill.body.length} chars\n`);
|
|
85
79
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
80
|
+
}
|
|
81
|
+
if (!scopeType || scopeType === 'automations') {
|
|
82
|
+
for (const auto of resolved.automations) {
|
|
83
|
+
if (scopeName && auto.name !== scopeName)
|
|
84
|
+
continue;
|
|
85
|
+
process.stdout.write(`\n Automation: ${auto.name}\n`);
|
|
92
86
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
87
|
+
}
|
|
88
|
+
// Print warnings
|
|
89
|
+
if (resolved.warnings.length > 0) {
|
|
90
|
+
process.stdout.write('\n Warnings:\n');
|
|
91
|
+
for (const warning of resolved.warnings) {
|
|
92
|
+
process.stdout.write(` - ${warning}\n`);
|
|
99
93
|
}
|
|
100
94
|
}
|
|
101
95
|
}
|