@honeybee-ai/waggle-cli 1.0.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/README.md +77 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +4307 -0
- package/dist/cli.js.map +7 -0
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +155 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/claim.d.ts +1 -0
- package/dist/commands/claim.js +36 -0
- package/dist/commands/claim.js.map +1 -0
- package/dist/commands/completion.d.ts +1 -0
- package/dist/commands/completion.js +191 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config-cmd.d.ts +1 -0
- package/dist/commands/config-cmd.js +61 -0
- package/dist/commands/config-cmd.js.map +1 -0
- package/dist/commands/events.d.ts +1 -0
- package/dist/commands/events.js +129 -0
- package/dist/commands/events.js.map +1 -0
- package/dist/commands/halt.d.ts +1 -0
- package/dist/commands/halt.js +25 -0
- package/dist/commands/halt.js.map +1 -0
- package/dist/commands/help-cmd.d.ts +1 -0
- package/dist/commands/help-cmd.js +125 -0
- package/dist/commands/help-cmd.js.map +1 -0
- package/dist/commands/hooks-cmd.d.ts +1 -0
- package/dist/commands/hooks-cmd.js +83 -0
- package/dist/commands/hooks-cmd.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.js +78 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/integrations.d.ts +1 -0
- package/dist/commands/integrations.js +375 -0
- package/dist/commands/integrations.js.map +1 -0
- package/dist/commands/join.d.ts +1 -0
- package/dist/commands/join.js +81 -0
- package/dist/commands/join.js.map +1 -0
- package/dist/commands/leave.d.ts +1 -0
- package/dist/commands/leave.js +36 -0
- package/dist/commands/leave.js.map +1 -0
- package/dist/commands/marketplace.d.ts +1 -0
- package/dist/commands/marketplace.js +291 -0
- package/dist/commands/marketplace.js.map +1 -0
- package/dist/commands/msg.d.ts +1 -0
- package/dist/commands/msg.js +105 -0
- package/dist/commands/msg.js.map +1 -0
- package/dist/commands/namespace.d.ts +1 -0
- package/dist/commands/namespace.js +95 -0
- package/dist/commands/namespace.js.map +1 -0
- package/dist/commands/pause.d.ts +2 -0
- package/dist/commands/pause.js +45 -0
- package/dist/commands/pause.js.map +1 -0
- package/dist/commands/protocol.d.ts +1 -0
- package/dist/commands/protocol.js +341 -0
- package/dist/commands/protocol.js.map +1 -0
- package/dist/commands/release.d.ts +1 -0
- package/dist/commands/release.js +29 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/scan.d.ts +1 -0
- package/dist/commands/scan.js +157 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/serve.d.ts +1 -0
- package/dist/commands/serve.js +78 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/state.d.ts +1 -0
- package/dist/commands/state.js +119 -0
- package/dist/commands/state.js.map +1 -0
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.js +78 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/swarm.d.ts +1 -0
- package/dist/commands/swarm.js +404 -0
- package/dist/commands/swarm.js.map +1 -0
- package/dist/commands/team.d.ts +1 -0
- package/dist/commands/team.js +35 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/commands/upgrade.d.ts +1 -0
- package/dist/commands/upgrade.js +99 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/hook.d.ts +1 -0
- package/dist/hook.js +531 -0
- package/dist/hook.js.map +7 -0
- package/dist/hooks/post-tool-use.d.ts +2 -0
- package/dist/hooks/post-tool-use.js +16 -0
- package/dist/hooks/post-tool-use.js.map +1 -0
- package/dist/hooks/pre-tool-use.d.ts +2 -0
- package/dist/hooks/pre-tool-use.js +49 -0
- package/dist/hooks/pre-tool-use.js.map +1 -0
- package/dist/hooks/prompt-submit.d.ts +2 -0
- package/dist/hooks/prompt-submit.js +64 -0
- package/dist/hooks/prompt-submit.js.map +1 -0
- package/dist/hooks/session-start.d.ts +2 -0
- package/dist/hooks/session-start.js +101 -0
- package/dist/hooks/session-start.js.map +1 -0
- package/dist/hooks/stop.d.ts +2 -0
- package/dist/hooks/stop.js +52 -0
- package/dist/hooks/stop.js.map +1 -0
- package/dist/lib/config.d.ts +6 -0
- package/dist/lib/config.js +53 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/format.d.ts +22 -0
- package/dist/lib/format.js +42 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/global-config.d.ts +13 -0
- package/dist/lib/global-config.js +52 -0
- package/dist/lib/global-config.js.map +1 -0
- package/dist/lib/hooks.d.ts +2 -0
- package/dist/lib/hooks.js +75 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/id.d.ts +1 -0
- package/dist/lib/id.js +5 -0
- package/dist/lib/id.js.map +1 -0
- package/dist/types.d.ts +26 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/hooks/post-tool-use.sh +13 -0
- package/hooks/pre-tool-use.sh +13 -0
- package/hooks/prompt-submit.sh +13 -0
- package/hooks/session-start.sh +13 -0
- package/hooks/stop.sh +13 -0
- package/package.json +68 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { c, error, heading, label, success, warn } from '../lib/format.js';
|
|
2
|
+
import { loadGlobalConfig, setGlobalConfigValue } from '../lib/global-config.js';
|
|
3
|
+
import { startDeviceFlow, pollDeviceFlow, exchangeGitHubToken, verifyPat, setProfile, removeProfile, listProfiles, getActiveProfile, isTokenExpired, } from '@honeybee-ai/sdk';
|
|
4
|
+
export async function auth(args) {
|
|
5
|
+
const sub = args[0];
|
|
6
|
+
if (!sub || sub === '--help' || sub === '-h') {
|
|
7
|
+
console.log(`
|
|
8
|
+
${c('bold', 'wgl auth')} — platform authentication
|
|
9
|
+
|
|
10
|
+
${c('cyan', 'USAGE:')}
|
|
11
|
+
wgl auth login [--platform URL] Log in via device flow
|
|
12
|
+
wgl auth login --token <PAT> Log in with personal access token
|
|
13
|
+
wgl auth logout Clear stored credentials
|
|
14
|
+
wgl auth status Show current auth state
|
|
15
|
+
wgl auth switch <profile> Switch between saved profiles
|
|
16
|
+
`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
switch (sub) {
|
|
20
|
+
case 'login': {
|
|
21
|
+
const platformIdx = args.indexOf('--platform');
|
|
22
|
+
const tokenIdx = args.indexOf('--token');
|
|
23
|
+
const globalConfig = loadGlobalConfig();
|
|
24
|
+
const platform = platformIdx !== -1 ? args[platformIdx + 1] : globalConfig.defaultPlatform;
|
|
25
|
+
const profileName = globalConfig.activeProfile || 'personal';
|
|
26
|
+
// PAT login
|
|
27
|
+
if (tokenIdx !== -1) {
|
|
28
|
+
const pat = args[tokenIdx + 1];
|
|
29
|
+
if (!pat) {
|
|
30
|
+
console.log(error('Usage: wgl auth login --token <PAT>'));
|
|
31
|
+
process.exit(2);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
console.log(c('dim', `Authenticating with PAT on ${platform}...\n`));
|
|
35
|
+
try {
|
|
36
|
+
const userInfo = await verifyPat(platform, pat);
|
|
37
|
+
setProfile(profileName, {
|
|
38
|
+
platform,
|
|
39
|
+
accessToken: pat,
|
|
40
|
+
refreshToken: '',
|
|
41
|
+
expiresAt: Math.floor(Date.now() / 1000) + 365 * 24 * 60 * 60, // 1 year
|
|
42
|
+
email: userInfo.email,
|
|
43
|
+
org: userInfo.org || 'personal',
|
|
44
|
+
});
|
|
45
|
+
console.log(success(`Logged in as ${userInfo.email} (PAT)`));
|
|
46
|
+
console.log(label('Profile', profileName));
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
console.log(error(`PAT login failed: ${err.message}`));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
// Device flow login (GitHub native, RFC 8628)
|
|
55
|
+
console.log(c('dim', `Authenticating via GitHub...\n`));
|
|
56
|
+
try {
|
|
57
|
+
const device = await startDeviceFlow();
|
|
58
|
+
console.log(` Visit: ${c('cyan', device.verification_uri)}`);
|
|
59
|
+
console.log(` Enter code: ${c('bold', device.user_code)}\n`);
|
|
60
|
+
console.log(c('dim', 'Waiting for authorization...'));
|
|
61
|
+
const githubToken = await pollDeviceFlow(device.device_code, device.interval || 5, device.expires_in || 300);
|
|
62
|
+
console.log(c('dim', 'Exchanging token with platform...'));
|
|
63
|
+
const token = await exchangeGitHubToken(platform, githubToken);
|
|
64
|
+
setProfile(profileName, {
|
|
65
|
+
platform,
|
|
66
|
+
accessToken: token.access_token,
|
|
67
|
+
refreshToken: token.refresh_token,
|
|
68
|
+
expiresAt: Math.floor(Date.now() / 1000) + token.expires_in,
|
|
69
|
+
email: token.email,
|
|
70
|
+
org: token.org,
|
|
71
|
+
});
|
|
72
|
+
console.log(success(`Logged in as ${token.email} (${token.org})`));
|
|
73
|
+
console.log(label('Profile', profileName));
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
console.log(error(`Login failed: ${err.message}`));
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case 'logout': {
|
|
82
|
+
const globalConfig = loadGlobalConfig();
|
|
83
|
+
const profileName = globalConfig.activeProfile || 'personal';
|
|
84
|
+
if (removeProfile(profileName)) {
|
|
85
|
+
console.log(success(`Logged out (profile: ${profileName})`));
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
console.log(c('dim', 'Not logged in'));
|
|
89
|
+
}
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case 'status': {
|
|
93
|
+
const globalConfig = loadGlobalConfig();
|
|
94
|
+
const profileName = globalConfig.activeProfile || 'personal';
|
|
95
|
+
const profile = getActiveProfile(profileName);
|
|
96
|
+
console.log(heading('Auth Status'));
|
|
97
|
+
console.log(label('Profile', profileName));
|
|
98
|
+
if (!profile) {
|
|
99
|
+
console.log(` ${c('dim', 'Not logged in')}`);
|
|
100
|
+
console.log(`\n Run ${c('cyan', 'wgl auth login')} to authenticate`);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.log(label('Platform', profile.platform));
|
|
104
|
+
console.log(label('Email', profile.email));
|
|
105
|
+
console.log(label('Org', profile.org));
|
|
106
|
+
if (isTokenExpired(profile)) {
|
|
107
|
+
console.log(` ${warn('Token expired — run `wgl auth login` to refresh')}`);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
const remaining = profile.expiresAt - Math.floor(Date.now() / 1000);
|
|
111
|
+
const hours = Math.floor(remaining / 3600);
|
|
112
|
+
const mins = Math.floor((remaining % 3600) / 60);
|
|
113
|
+
console.log(label('Token', c('green', `valid (${hours}h ${mins}m remaining)`)));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const allProfiles = listProfiles();
|
|
117
|
+
if (allProfiles.length > 1) {
|
|
118
|
+
console.log(heading('Available Profiles'));
|
|
119
|
+
for (const name of allProfiles) {
|
|
120
|
+
const active = name === profileName ? c('green', ' (active)') : '';
|
|
121
|
+
const p = getActiveProfile(name);
|
|
122
|
+
console.log(` ${c('bold', name)}${active} — ${p.email} (${p.org})`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
console.log();
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
case 'switch': {
|
|
129
|
+
const profileName = args[1];
|
|
130
|
+
if (!profileName) {
|
|
131
|
+
console.log(error('Usage: wgl auth switch <profile>'));
|
|
132
|
+
process.exit(2);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const profile = getActiveProfile(profileName);
|
|
136
|
+
if (!profile) {
|
|
137
|
+
console.log(error(`Profile not found: ${profileName}`));
|
|
138
|
+
const available = listProfiles();
|
|
139
|
+
if (available.length > 0) {
|
|
140
|
+
console.log(c('dim', ` Available: ${available.join(', ')}`));
|
|
141
|
+
}
|
|
142
|
+
process.exit(1);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
setGlobalConfigValue('activeProfile', profileName);
|
|
146
|
+
console.log(success(`Switched to profile: ${profileName} (${profile.email})`));
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
default:
|
|
150
|
+
console.log(error(`Unknown subcommand: ${sub}`));
|
|
151
|
+
console.log('Run `wgl auth --help` for usage');
|
|
152
|
+
process.exit(2);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function claim(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { loadConfig } from '../lib/config.js';
|
|
2
|
+
import { createAcpClient } from '@agentcoordinationprotocol/sdk';
|
|
3
|
+
import { success, error } from '../lib/format.js';
|
|
4
|
+
export async function claim(args) {
|
|
5
|
+
const config = loadConfig();
|
|
6
|
+
if (!config) {
|
|
7
|
+
console.log(error('Not initialized. Run `wgl init` or `wgl join` first.'));
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
const resource = args[0];
|
|
11
|
+
if (!resource) {
|
|
12
|
+
console.log(error('Usage: wgl claim <resource>'));
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const client = createAcpClient(config);
|
|
16
|
+
try {
|
|
17
|
+
const res = await client.claim(resource);
|
|
18
|
+
if (!res.ok) {
|
|
19
|
+
console.log(error(`Server returned ${res.status}`));
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const result = res.data;
|
|
23
|
+
if (result.status === 'approved') {
|
|
24
|
+
console.log(success(`Claimed: ${resource}`));
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
console.log(error(`Rejected: ${resource} — already claimed by ${result.claim?.owner || 'another agent'}`));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
console.log(error('Cannot reach server'));
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAK,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAc;IACxC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,IAAmB,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,QAAQ,yBAAyB,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;YAC3G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function completion(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { c, error } from '../lib/format.js';
|
|
2
|
+
// Full command tree for completions
|
|
3
|
+
const COMMANDS = {
|
|
4
|
+
init: [],
|
|
5
|
+
join: [],
|
|
6
|
+
status: [],
|
|
7
|
+
leave: [],
|
|
8
|
+
protocol: ['show', 'validate', 'load', 'init'],
|
|
9
|
+
team: [],
|
|
10
|
+
claim: [],
|
|
11
|
+
release: [],
|
|
12
|
+
halt: [],
|
|
13
|
+
pause: [],
|
|
14
|
+
resume: [],
|
|
15
|
+
events: ['list', 'tail', 'publish'],
|
|
16
|
+
state: ['get', 'set', 'delete'],
|
|
17
|
+
msg: ['send', 'list', 'broadcast'],
|
|
18
|
+
help: ['ask', 'list', 'claim', 'resolve'],
|
|
19
|
+
namespace: ['list', 'create', 'delete'],
|
|
20
|
+
hooks: ['install', 'uninstall', 'list'],
|
|
21
|
+
serve: [],
|
|
22
|
+
auth: ['login', 'logout', 'status', 'switch'],
|
|
23
|
+
config: ['set', 'get', 'list'],
|
|
24
|
+
marketplace: ['search', 'info', 'install', 'publish', 'list'],
|
|
25
|
+
integrations: ['search', 'info', 'install', 'remove', 'list', 'enable', 'disable', 'publish'],
|
|
26
|
+
swarm: ['create', 'list', 'info', 'delete', 'pause', 'resume', 'keys', 'logs'],
|
|
27
|
+
scan: [],
|
|
28
|
+
completion: ['bash', 'zsh', 'fish'],
|
|
29
|
+
upgrade: [],
|
|
30
|
+
};
|
|
31
|
+
const TOP_LEVEL = Object.keys(COMMANDS).join(' ');
|
|
32
|
+
export async function completion(args) {
|
|
33
|
+
const shell = args[0];
|
|
34
|
+
if (!shell || shell === '--help' || shell === '-h') {
|
|
35
|
+
console.log(`
|
|
36
|
+
${c('bold', 'wgl completion')} — generate shell completion scripts
|
|
37
|
+
|
|
38
|
+
${c('cyan', 'USAGE:')}
|
|
39
|
+
wgl completion bash Output bash completion script
|
|
40
|
+
wgl completion zsh Output zsh completion script
|
|
41
|
+
wgl completion fish Output fish completion script
|
|
42
|
+
|
|
43
|
+
${c('cyan', 'SETUP:')}
|
|
44
|
+
eval "$(wgl completion bash)" # add to .bashrc
|
|
45
|
+
eval "$(wgl completion zsh)" # add to .zshrc
|
|
46
|
+
wgl completion fish | source # add to config.fish
|
|
47
|
+
`);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
switch (shell) {
|
|
51
|
+
case 'bash':
|
|
52
|
+
console.log(bashCompletion());
|
|
53
|
+
break;
|
|
54
|
+
case 'zsh':
|
|
55
|
+
console.log(zshCompletion());
|
|
56
|
+
break;
|
|
57
|
+
case 'fish':
|
|
58
|
+
console.log(fishCompletion());
|
|
59
|
+
break;
|
|
60
|
+
default:
|
|
61
|
+
console.log(error(`Unknown shell: ${shell}. Supported: bash, zsh, fish`));
|
|
62
|
+
process.exit(2);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function bashCompletion() {
|
|
66
|
+
const subcmds = Object.entries(COMMANDS)
|
|
67
|
+
.filter(([, subs]) => subs.length > 0)
|
|
68
|
+
.map(([cmd, subs]) => ` ${cmd}) COMPREPLY=( $(compgen -W "${subs.join(' ')}" -- "$cur") ) ;;`)
|
|
69
|
+
.join('\n');
|
|
70
|
+
return `# wgl bash completion — generated by wgl completion bash
|
|
71
|
+
_wgl_completions() {
|
|
72
|
+
local cur prev
|
|
73
|
+
COMPREPLY=()
|
|
74
|
+
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
75
|
+
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
76
|
+
|
|
77
|
+
if [ "$COMP_CWORD" -eq 1 ]; then
|
|
78
|
+
COMPREPLY=( $(compgen -W "${TOP_LEVEL} --help --version" -- "$cur") )
|
|
79
|
+
return
|
|
80
|
+
fi
|
|
81
|
+
|
|
82
|
+
case "$prev" in
|
|
83
|
+
${subcmds}
|
|
84
|
+
keys) COMPREPLY=( $(compgen -W "create list revoke" -- "$cur") ) ;;
|
|
85
|
+
esac
|
|
86
|
+
}
|
|
87
|
+
complete -F _wgl_completions wgl`;
|
|
88
|
+
}
|
|
89
|
+
function zshCompletion() {
|
|
90
|
+
const subcmdCases = Object.entries(COMMANDS)
|
|
91
|
+
.filter(([, subs]) => subs.length > 0)
|
|
92
|
+
.map(([cmd, subs]) => {
|
|
93
|
+
const opts = subs.map(s => `'${s}[${s}]'`).join(' ');
|
|
94
|
+
return ` ${cmd}) _arguments '1:subcommand:(${subs.join(' ')})' ;;`;
|
|
95
|
+
})
|
|
96
|
+
.join('\n');
|
|
97
|
+
return `#compdef wgl
|
|
98
|
+
# wgl zsh completion — generated by wgl completion zsh
|
|
99
|
+
_wgl() {
|
|
100
|
+
local -a commands
|
|
101
|
+
commands=(
|
|
102
|
+
'init:Interactive setup'
|
|
103
|
+
'join:Quick join a server'
|
|
104
|
+
'status:Show current status'
|
|
105
|
+
'leave:Leave coordination'
|
|
106
|
+
'protocol:Protocol management'
|
|
107
|
+
'team:Show agents'
|
|
108
|
+
'claim:Claim a resource'
|
|
109
|
+
'release:Release a resource'
|
|
110
|
+
'halt:Emergency stop'
|
|
111
|
+
'pause:Pause coordination'
|
|
112
|
+
'resume:Resume coordination'
|
|
113
|
+
'events:Event management'
|
|
114
|
+
'state:Shared state'
|
|
115
|
+
'msg:Messaging'
|
|
116
|
+
'help:Help requests'
|
|
117
|
+
'namespace:Namespace management'
|
|
118
|
+
'hooks:Hook management'
|
|
119
|
+
'serve:Start local server'
|
|
120
|
+
'auth:Authentication'
|
|
121
|
+
'config:Global configuration'
|
|
122
|
+
'marketplace:Protocol marketplace'
|
|
123
|
+
'integrations:Integration marketplace'
|
|
124
|
+
'swarm:Managed swarms'
|
|
125
|
+
'scan:Security scanning'
|
|
126
|
+
'completion:Shell completions'
|
|
127
|
+
'upgrade:Self-update'
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
if (( CURRENT == 2 )); then
|
|
131
|
+
_describe 'command' commands
|
|
132
|
+
return
|
|
133
|
+
fi
|
|
134
|
+
|
|
135
|
+
case "\${words[2]}" in
|
|
136
|
+
${subcmdCases}
|
|
137
|
+
esac
|
|
138
|
+
}
|
|
139
|
+
_wgl "$@"`;
|
|
140
|
+
}
|
|
141
|
+
function fishCompletion() {
|
|
142
|
+
const lines = ['# wgl fish completion — generated by wgl completion fish'];
|
|
143
|
+
lines.push('# Disable file completion by default');
|
|
144
|
+
lines.push('complete -c wgl -f');
|
|
145
|
+
lines.push('');
|
|
146
|
+
// Top-level commands
|
|
147
|
+
const descriptions = {
|
|
148
|
+
init: 'Interactive setup',
|
|
149
|
+
join: 'Quick join a server',
|
|
150
|
+
status: 'Show current status',
|
|
151
|
+
leave: 'Leave coordination',
|
|
152
|
+
protocol: 'Protocol management',
|
|
153
|
+
team: 'Show agents',
|
|
154
|
+
claim: 'Claim a resource',
|
|
155
|
+
release: 'Release a resource',
|
|
156
|
+
halt: 'Emergency stop',
|
|
157
|
+
pause: 'Pause coordination',
|
|
158
|
+
resume: 'Resume coordination',
|
|
159
|
+
events: 'Event management',
|
|
160
|
+
state: 'Shared state',
|
|
161
|
+
msg: 'Messaging',
|
|
162
|
+
help: 'Help requests',
|
|
163
|
+
namespace: 'Namespace management',
|
|
164
|
+
hooks: 'Hook management',
|
|
165
|
+
serve: 'Start local server',
|
|
166
|
+
auth: 'Authentication',
|
|
167
|
+
config: 'Global configuration',
|
|
168
|
+
marketplace: 'Protocol marketplace',
|
|
169
|
+
integrations: 'Integration marketplace',
|
|
170
|
+
swarm: 'Managed swarms',
|
|
171
|
+
scan: 'Security scanning',
|
|
172
|
+
completion: 'Shell completions',
|
|
173
|
+
upgrade: 'Self-update',
|
|
174
|
+
};
|
|
175
|
+
for (const [cmd, desc] of Object.entries(descriptions)) {
|
|
176
|
+
lines.push(`complete -c wgl -n '__fish_use_subcommand' -a '${cmd}' -d '${desc}'`);
|
|
177
|
+
}
|
|
178
|
+
lines.push('');
|
|
179
|
+
// Subcommands
|
|
180
|
+
for (const [cmd, subs] of Object.entries(COMMANDS)) {
|
|
181
|
+
if (subs.length === 0)
|
|
182
|
+
continue;
|
|
183
|
+
for (const sub of subs) {
|
|
184
|
+
lines.push(`complete -c wgl -n '__fish_seen_subcommand_from ${cmd}' -a '${sub}'`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Keys sub-subcommands
|
|
188
|
+
lines.push(`complete -c wgl -n '__fish_seen_subcommand_from keys' -a 'create list revoke'`);
|
|
189
|
+
return lines.join('\n');
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function configCmd(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { c, error, heading, label, success } from '../lib/format.js';
|
|
2
|
+
import { loadGlobalConfig, setGlobalConfigValue } from '../lib/global-config.js';
|
|
3
|
+
export async function configCmd(args) {
|
|
4
|
+
const sub = args[0];
|
|
5
|
+
if (!sub || sub === '--help' || sub === '-h') {
|
|
6
|
+
console.log(`
|
|
7
|
+
${c('bold', 'wgl config')} — global preferences
|
|
8
|
+
|
|
9
|
+
${c('cyan', 'USAGE:')}
|
|
10
|
+
wgl config set <key> <value> Set a preference
|
|
11
|
+
wgl config get <key> Get a preference
|
|
12
|
+
wgl config list Show all preferences
|
|
13
|
+
`);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
switch (sub) {
|
|
17
|
+
case 'set': {
|
|
18
|
+
const key = args[1];
|
|
19
|
+
const value = args.slice(2).join(' ');
|
|
20
|
+
if (!key || !value) {
|
|
21
|
+
console.log(error('Usage: wgl config set <key> <value>'));
|
|
22
|
+
process.exit(2);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
setGlobalConfigValue(key, value);
|
|
26
|
+
console.log(success(`Set ${key} = ${value}`));
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
case 'get': {
|
|
30
|
+
const key = args[1];
|
|
31
|
+
if (!key) {
|
|
32
|
+
console.log(error('Usage: wgl config get <key>'));
|
|
33
|
+
process.exit(2);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const config = loadGlobalConfig();
|
|
37
|
+
if (key in config) {
|
|
38
|
+
console.log(config[key]);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log(error(`Key not found: ${key}`));
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case 'list': {
|
|
47
|
+
const config = loadGlobalConfig();
|
|
48
|
+
console.log(heading('Global Config'));
|
|
49
|
+
for (const [k, v] of Object.entries(config)) {
|
|
50
|
+
console.log(label(k, String(v)));
|
|
51
|
+
}
|
|
52
|
+
console.log();
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
default:
|
|
56
|
+
console.log(error(`Unknown subcommand: ${sub}`));
|
|
57
|
+
console.log('Run `wgl config --help` for usage');
|
|
58
|
+
process.exit(2);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=config-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/commands/config-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAc;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC;EACd,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC;;EAEvB,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;;;;CAIpB,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM;QACR,CAAC;QAED;YACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function events(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { loadConfig } from '../lib/config.js';
|
|
2
|
+
import { createAcpClient } from '@agentcoordinationprotocol/sdk';
|
|
3
|
+
import { c, error, heading, success } from '../lib/format.js';
|
|
4
|
+
function formatEvent(e) {
|
|
5
|
+
const time = new Date(e.publishedAt).toLocaleTimeString();
|
|
6
|
+
return ` ${c('dim', `#${e.id}`)} ${c('bold', e.type)} by ${e.publishedBy} ${c('dim', time)}`;
|
|
7
|
+
}
|
|
8
|
+
export async function events(args) {
|
|
9
|
+
const sub = args[0];
|
|
10
|
+
if (!sub || sub === '--help' || sub === '-h') {
|
|
11
|
+
console.log(`
|
|
12
|
+
${c('bold', 'wgl events')} — event management
|
|
13
|
+
|
|
14
|
+
${c('cyan', 'USAGE:')}
|
|
15
|
+
wgl events list [--since N] [--type T] List events
|
|
16
|
+
wgl events tail Live-stream events (polling)
|
|
17
|
+
wgl events publish <type> [json-data] Publish an event
|
|
18
|
+
`);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const config = loadConfig();
|
|
22
|
+
if (!config) {
|
|
23
|
+
console.log(error('Not initialized. Run `wgl init` or `wgl join` first.'));
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const client = createAcpClient(config);
|
|
27
|
+
switch (sub) {
|
|
28
|
+
case 'list': {
|
|
29
|
+
const sinceIdx = args.indexOf('--since');
|
|
30
|
+
const since = sinceIdx !== -1 ? parseInt(args[sinceIdx + 1], 10) : undefined;
|
|
31
|
+
const typeIdx = args.indexOf('--type');
|
|
32
|
+
const typeFilter = typeIdx !== -1 ? args[typeIdx + 1] : undefined;
|
|
33
|
+
try {
|
|
34
|
+
const res = await client.getEvents(since);
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
console.log(error(`Server returned ${res.status}`));
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
let list = res.data;
|
|
40
|
+
if (typeFilter) {
|
|
41
|
+
list = list.filter(e => e.type.includes(typeFilter));
|
|
42
|
+
}
|
|
43
|
+
if (list.length === 0) {
|
|
44
|
+
console.log(` ${c('dim', 'No events')}`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
console.log(heading('Events'));
|
|
48
|
+
for (const e of list) {
|
|
49
|
+
console.log(formatEvent(e));
|
|
50
|
+
}
|
|
51
|
+
console.log();
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
console.log(error('Cannot reach server'));
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case 'tail': {
|
|
60
|
+
let cursor = config.lastEventCursor || 0;
|
|
61
|
+
console.log(c('dim', `Tailing events (since #${cursor})... Ctrl+C to stop\n`));
|
|
62
|
+
const poll = async () => {
|
|
63
|
+
try {
|
|
64
|
+
const res = await client.getEvents(cursor);
|
|
65
|
+
if (res.ok) {
|
|
66
|
+
const list = res.data;
|
|
67
|
+
for (const e of list) {
|
|
68
|
+
console.log(formatEvent(e));
|
|
69
|
+
if (e.id > cursor)
|
|
70
|
+
cursor = e.id;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Server unreachable, keep trying
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
// Initial fetch
|
|
79
|
+
await poll();
|
|
80
|
+
// Poll every 2 seconds
|
|
81
|
+
const interval = setInterval(poll, 2000);
|
|
82
|
+
process.on('SIGINT', () => {
|
|
83
|
+
clearInterval(interval);
|
|
84
|
+
console.log(c('dim', '\nStopped tailing.'));
|
|
85
|
+
process.exit(0);
|
|
86
|
+
});
|
|
87
|
+
// Keep alive
|
|
88
|
+
await new Promise(() => { });
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
case 'publish': {
|
|
92
|
+
const type = args[1];
|
|
93
|
+
if (!type) {
|
|
94
|
+
console.log(error('Usage: wgl events publish <type> [json-data]'));
|
|
95
|
+
process.exit(2);
|
|
96
|
+
}
|
|
97
|
+
let data = {};
|
|
98
|
+
const jsonStr = args.slice(2).join(' ');
|
|
99
|
+
if (jsonStr) {
|
|
100
|
+
try {
|
|
101
|
+
data = JSON.parse(jsonStr);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
console.log(error('Invalid JSON data'));
|
|
105
|
+
process.exit(2);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
const res = await client.publishEvent(type, data);
|
|
110
|
+
if (!res.ok) {
|
|
111
|
+
console.log(error(`Server returned ${res.status}`));
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
const evt = res.data;
|
|
115
|
+
console.log(success(`Published event #${evt.id} (${type})`));
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
console.log(error('Cannot reach server'));
|
|
119
|
+
process.exit(1);
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
default:
|
|
124
|
+
console.log(error(`Unknown subcommand: ${sub}`));
|
|
125
|
+
console.log('Run `wgl events --help` for usage');
|
|
126
|
+
process.exit(2);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function halt(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { loadConfig } from '../lib/config.js';
|
|
2
|
+
import { createAcpClient } from '@agentcoordinationprotocol/sdk';
|
|
3
|
+
import { success, error } from '../lib/format.js';
|
|
4
|
+
export async function halt(args) {
|
|
5
|
+
const config = loadConfig();
|
|
6
|
+
if (!config) {
|
|
7
|
+
console.log(error('Not initialized. Run `wgl init` or `wgl join` first.'));
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
const reason = args.join(' ') || undefined;
|
|
11
|
+
const client = createAcpClient(config);
|
|
12
|
+
try {
|
|
13
|
+
const res = await client.halt(reason);
|
|
14
|
+
if (!res.ok) {
|
|
15
|
+
console.log(error(`Server returned ${res.status}`));
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
console.log(success(`Halted${reason ? `: ${reason}` : ''}`));
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
console.log(error('Cannot reach server'));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=halt.js.map
|