relaycast 0.0.1 → 0.1.1

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.
Files changed (49) hide show
  1. package/dist/commands/agent.d.ts +3 -0
  2. package/dist/commands/agent.d.ts.map +1 -0
  3. package/dist/commands/agent.js +43 -0
  4. package/dist/commands/agent.js.map +1 -0
  5. package/dist/commands/billing.d.ts +3 -0
  6. package/dist/commands/billing.d.ts.map +1 -0
  7. package/dist/commands/billing.js +37 -0
  8. package/dist/commands/billing.js.map +1 -0
  9. package/dist/commands/channel.d.ts +3 -0
  10. package/dist/commands/channel.d.ts.map +1 -0
  11. package/dist/commands/channel.js +67 -0
  12. package/dist/commands/channel.js.map +1 -0
  13. package/dist/commands/config.d.ts +3 -0
  14. package/dist/commands/config.d.ts.map +1 -0
  15. package/dist/commands/config.js +23 -0
  16. package/dist/commands/config.js.map +1 -0
  17. package/dist/commands/files.d.ts +3 -0
  18. package/dist/commands/files.d.ts.map +1 -0
  19. package/dist/commands/files.js +52 -0
  20. package/dist/commands/files.js.map +1 -0
  21. package/dist/commands/messaging.d.ts +3 -0
  22. package/dist/commands/messaging.d.ts.map +1 -0
  23. package/dist/commands/messaging.js +54 -0
  24. package/dist/commands/messaging.js.map +1 -0
  25. package/dist/commands/reactions.d.ts +3 -0
  26. package/dist/commands/reactions.d.ts.map +1 -0
  27. package/dist/commands/reactions.js +32 -0
  28. package/dist/commands/reactions.js.map +1 -0
  29. package/dist/commands/read.d.ts +3 -0
  30. package/dist/commands/read.d.ts.map +1 -0
  31. package/dist/commands/read.js +80 -0
  32. package/dist/commands/read.js.map +1 -0
  33. package/dist/commands/search.d.ts +3 -0
  34. package/dist/commands/search.d.ts.map +1 -0
  35. package/dist/commands/search.js +31 -0
  36. package/dist/commands/search.js.map +1 -0
  37. package/dist/commands/workspace.d.ts +3 -0
  38. package/dist/commands/workspace.d.ts.map +1 -0
  39. package/dist/commands/workspace.js +35 -0
  40. package/dist/commands/workspace.js.map +1 -0
  41. package/dist/config.d.ts +9 -0
  42. package/dist/config.d.ts.map +1 -0
  43. package/dist/config.js +29 -0
  44. package/dist/config.js.map +1 -0
  45. package/dist/index.d.ts +3 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +30 -0
  48. package/dist/index.js.map +1 -0
  49. package/package.json +36 -6
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerAgentCommands(program: Command): void;
3
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8B5D"}
@@ -0,0 +1,43 @@
1
+ import { Relay } from '@relaycast/sdk';
2
+ import { loadConfig } from '../config.js';
3
+ function createRelay() {
4
+ const cfg = loadConfig();
5
+ if (!cfg.apiKey) {
6
+ throw new Error('Missing API key. Run: relay config set api-key <value>');
7
+ }
8
+ return new Relay({ apiKey: cfg.apiKey, baseUrl: cfg.endpoint });
9
+ }
10
+ function agentsTable(agents) {
11
+ const header = ['NAME', 'STATUS', 'PERSONA'].join('\t');
12
+ const rows = agents.map((a) => [a.name, a.status ?? '', a.persona ?? ''].join('\t'));
13
+ return [header, ...rows].join('\n');
14
+ }
15
+ export function registerAgentCommands(program) {
16
+ const agent = program.command('agent').description('Agent management');
17
+ agent
18
+ .command('register <name>')
19
+ .description('Register a new agent')
20
+ .option('--persona <persona>', 'Agent persona')
21
+ .action(async (name, options) => {
22
+ const relay = createRelay();
23
+ const res = await relay.agents.register({ name, ...(options.persona ? { persona: options.persona } : {}) });
24
+ console.log(res.token);
25
+ });
26
+ agent
27
+ .command('list')
28
+ .description('List agents')
29
+ .action(async () => {
30
+ const relay = createRelay();
31
+ const agents = await relay.agents.list();
32
+ console.log(agentsTable(agents));
33
+ });
34
+ agent
35
+ .command('status <name> <status>')
36
+ .description('Show current agent status (status updates not supported)')
37
+ .action(async (name) => {
38
+ const relay = createRelay();
39
+ const a = await relay.agents.get(name);
40
+ console.log(`${a.name}: ${a.status}`);
41
+ });
42
+ }
43
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,WAAW;IAClB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,MAAyE;IAC5F,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEvE,KAAK;SACF,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA6B,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,aAAa,CAAC;SAC1B,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerBillingCommands(program: Command): void;
3
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6B9D"}
@@ -0,0 +1,37 @@
1
+ import { Relay } from '@relaycast/sdk';
2
+ import { loadConfig } from '../config.js';
3
+ function getRelay() {
4
+ const config = loadConfig();
5
+ if (!config.apiKey) {
6
+ throw new Error('No API key configured. Run: relay config set api-key <key>');
7
+ }
8
+ return new Relay({ apiKey: config.apiKey, baseUrl: config.endpoint });
9
+ }
10
+ export function registerBillingCommands(program) {
11
+ const billing = program.command('billing').description('Billing management');
12
+ billing
13
+ .command('usage')
14
+ .description('Show usage info')
15
+ .action(async () => {
16
+ const relay = getRelay();
17
+ const usage = await relay.billing.usage();
18
+ console.log(JSON.stringify(usage, null, 2));
19
+ });
20
+ billing
21
+ .command('subscription')
22
+ .description('Show subscription info')
23
+ .action(async () => {
24
+ const relay = getRelay();
25
+ const sub = await relay.billing.subscription();
26
+ console.log(JSON.stringify(sub, null, 2));
27
+ });
28
+ billing
29
+ .command('portal')
30
+ .description('Get billing portal URL')
31
+ .action(async () => {
32
+ const relay = getRelay();
33
+ const result = await relay.billing.portal();
34
+ console.log(`Billing portal: ${result.url}`);
35
+ });
36
+ }
37
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,QAAQ;IACf,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAE7E,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerChannelCommands(program: Command): void;
3
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D9D"}
@@ -0,0 +1,67 @@
1
+ import { Relay } from '@relaycast/sdk';
2
+ import { loadConfig } from '../config.js';
3
+ function getAgent() {
4
+ const config = loadConfig();
5
+ if (!config.apiKey) {
6
+ throw new Error('No API key configured. Run: relay config set api-key <key>');
7
+ }
8
+ if (!config.agentToken) {
9
+ throw new Error('No agent token configured. Run: relay config set agent-token <token>');
10
+ }
11
+ const relay = new Relay({ apiKey: config.apiKey, baseUrl: config.endpoint });
12
+ return relay.as(config.agentToken);
13
+ }
14
+ export function registerChannelCommands(program) {
15
+ const ch = program.command('channel').description('Channel management');
16
+ ch.command('create <name>')
17
+ .description('Create a channel')
18
+ .option('--topic <topic>', 'Channel topic')
19
+ .action(async (name, opts) => {
20
+ const agent = getAgent();
21
+ const channel = await agent.channels.create({ name, topic: opts.topic });
22
+ console.log(`Channel created: #${channel.name}`);
23
+ });
24
+ ch.command('list')
25
+ .description('List channels')
26
+ .action(async () => {
27
+ const agent = getAgent();
28
+ const channels = await agent.channels.list();
29
+ if (channels.length === 0) {
30
+ console.log('No channels.');
31
+ return;
32
+ }
33
+ for (const c of channels) {
34
+ const topic = c.topic ? ` — ${c.topic}` : '';
35
+ console.log(`#${c.name}${topic}`);
36
+ }
37
+ });
38
+ ch.command('join <name>')
39
+ .description('Join a channel')
40
+ .action(async (name) => {
41
+ const agent = getAgent();
42
+ await agent.channels.join(name);
43
+ console.log(`Joined #${name}`);
44
+ });
45
+ ch.command('leave <name>')
46
+ .description('Leave a channel')
47
+ .action(async (name) => {
48
+ const agent = getAgent();
49
+ await agent.channels.leave(name);
50
+ console.log(`Left #${name}`);
51
+ });
52
+ ch.command('topic <name> <topic>')
53
+ .description('Set channel topic')
54
+ .action(async (name, topic) => {
55
+ const agent = getAgent();
56
+ await agent.channels.setTopic(name, topic);
57
+ console.log(`Topic set for #${name}: ${topic}`);
58
+ });
59
+ ch.command('archive <name>')
60
+ .description('Archive a channel')
61
+ .action(async (name) => {
62
+ const agent = getAgent();
63
+ await agent.channels.archive(name);
64
+ console.log(`Archived #${name}`);
65
+ });
66
+ }
67
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerConfigCommands(program: Command): void;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAW7D"}
@@ -0,0 +1,23 @@
1
+ import { loadConfig, saveConfig } from '../config.js';
2
+ function setConfigValue(key, value) {
3
+ const cfg = loadConfig();
4
+ if (key === 'api-key')
5
+ cfg.apiKey = value;
6
+ if (key === 'agent-token')
7
+ cfg.agentToken = value;
8
+ if (key === 'endpoint')
9
+ cfg.endpoint = value;
10
+ saveConfig(cfg);
11
+ }
12
+ export function registerConfigCommands(program) {
13
+ const cfg = program.command('config').description('CLI configuration');
14
+ cfg.command('set <key> <value>')
15
+ .description('Set a config value (api-key, agent-token, endpoint)')
16
+ .action((key, value) => {
17
+ if (key !== 'api-key' && key !== 'agent-token' && key !== 'endpoint') {
18
+ throw new Error(`Invalid key: ${key}. Expected one of: api-key, agent-token, endpoint`);
19
+ }
20
+ setConfigValue(key, value);
21
+ });
22
+ }
23
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAItD,SAAS,cAAc,CAAC,GAAc,EAAE,KAAa;IACnD,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,GAAG,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;IAC1C,IAAI,GAAG,KAAK,aAAa;QAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;IAClD,IAAI,GAAG,KAAK,UAAU;QAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC7C,UAAU,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAEvE,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC;SAC7B,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;QACrC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,mDAAmD,CAAC,CAAC;QAC1F,CAAC;QACD,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerFileCommands(program: Command): void;
3
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoC3D"}
@@ -0,0 +1,52 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { Relay } from '@relaycast/sdk';
4
+ import { loadConfig } from '../config.js';
5
+ function getAgent() {
6
+ const config = loadConfig();
7
+ if (!config.apiKey) {
8
+ throw new Error('No API key configured. Run: relay config set api-key <key>');
9
+ }
10
+ if (!config.agentToken) {
11
+ throw new Error('No agent token configured. Run: relay config set agent-token <token>');
12
+ }
13
+ const relay = new Relay({ apiKey: config.apiKey, baseUrl: config.endpoint });
14
+ return relay.as(config.agentToken);
15
+ }
16
+ export function registerFileCommands(program) {
17
+ program
18
+ .command('upload <file> <target> [text]')
19
+ .description('Upload a file and send to channel/agent')
20
+ .action(async (file, target, text) => {
21
+ const agent = getAgent();
22
+ const stat = fs.statSync(file);
23
+ const filename = path.basename(file);
24
+ const upload = await agent.files.upload({
25
+ filename,
26
+ content_type: 'application/octet-stream',
27
+ size_bytes: stat.size,
28
+ });
29
+ console.log(`Upload initiated: ${upload.file_id}`);
30
+ console.log(`Upload URL: ${upload.upload_url}`);
31
+ if (text) {
32
+ await agent.send(target, text, { attachments: [upload.file_id] });
33
+ console.log(`Message sent to ${target} with attachment`);
34
+ }
35
+ });
36
+ program
37
+ .command('files')
38
+ .description('List files')
39
+ .option('--channel <channel>', 'Filter by channel')
40
+ .action(async () => {
41
+ const agent = getAgent();
42
+ const files = await agent.files.list();
43
+ if (files.length === 0) {
44
+ console.log('No files.');
45
+ return;
46
+ }
47
+ for (const f of files) {
48
+ console.log(`${f.file_id} ${f.filename} ${f.size} bytes`);
49
+ }
50
+ });
51
+ }
52
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,QAAQ;IACf,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,+BAA+B,CAAC;SACxC,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,MAAc,EAAE,IAAa,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YACtC,QAAQ;YACR,YAAY,EAAE,0BAA0B;YACxC,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAChD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,kBAAkB,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;SAClD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerMessagingCommands(program: Command): void;
3
+ //# sourceMappingURL=messaging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/commands/messaging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwChE"}
@@ -0,0 +1,54 @@
1
+ import { Relay } from '@relaycast/sdk';
2
+ import { loadConfig } from '../config.js';
3
+ function getAgent() {
4
+ const config = loadConfig();
5
+ if (!config.apiKey) {
6
+ throw new Error('No API key configured. Run: relay config set api-key <key>');
7
+ }
8
+ if (!config.agentToken) {
9
+ throw new Error('No agent token configured. Run: relay config set agent-token <token>');
10
+ }
11
+ const relay = new Relay({ apiKey: config.apiKey, baseUrl: config.endpoint });
12
+ return relay.as(config.agentToken);
13
+ }
14
+ export function registerMessagingCommands(program) {
15
+ program
16
+ .command('send <target> <text>')
17
+ .description('Send a message (use #channel or @agent)')
18
+ .action(async (target, text) => {
19
+ const agent = getAgent();
20
+ if (target.startsWith('@')) {
21
+ const name = target.slice(1);
22
+ await agent.dm(name, text);
23
+ console.log(`DM sent to ${name}`);
24
+ }
25
+ else {
26
+ const result = await agent.send(target, text);
27
+ console.log(`Message sent: ${result.id}`);
28
+ }
29
+ });
30
+ program
31
+ .command('reply <msg_id> <text>')
32
+ .description('Reply to a message in a thread')
33
+ .action(async (msgId, text) => {
34
+ const agent = getAgent();
35
+ const result = await agent.reply(msgId, text);
36
+ console.log(`Reply sent: ${result.id}`);
37
+ });
38
+ program
39
+ .command('group-dm')
40
+ .argument('<agents...>', 'Agent names')
41
+ .option('--name <name>', 'Group name')
42
+ .option('--text <text>', 'Initial message')
43
+ .description('Create a group DM')
44
+ .action(async (agents, opts) => {
45
+ const agent = getAgent();
46
+ await agent.dms.createGroup({
47
+ participants: agents,
48
+ name: opts.name,
49
+ text: opts.text ?? '',
50
+ });
51
+ console.log(`Group DM created with: ${agents.join(', ')}`);
52
+ });
53
+ }
54
+ //# sourceMappingURL=messaging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/commands/messaging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,QAAQ;IACf,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAY,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;SACtC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC;SACrC,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC;SAC1C,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,MAAgB,EAAE,IAAsC,EAAE,EAAE;QACzE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAC1B,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerReactionCommands(program: Command): void;
3
+ //# sourceMappingURL=reactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactions.d.ts","sourceRoot":"","sources":["../../src/commands/reactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkB/D"}
@@ -0,0 +1,32 @@
1
+ import { Relay } from '@relaycast/sdk';
2
+ import { loadConfig } from '../config.js';
3
+ function getAgent() {
4
+ const config = loadConfig();
5
+ if (!config.apiKey) {
6
+ throw new Error('No API key configured. Run: relay config set api-key <key>');
7
+ }
8
+ if (!config.agentToken) {
9
+ throw new Error('No agent token configured. Run: relay config set agent-token <token>');
10
+ }
11
+ const relay = new Relay({ apiKey: config.apiKey, baseUrl: config.endpoint });
12
+ return relay.as(config.agentToken);
13
+ }
14
+ export function registerReactionCommands(program) {
15
+ program
16
+ .command('react <msg_id> <emoji>')
17
+ .description('React to a message')
18
+ .action(async (msgId, emoji) => {
19
+ const agent = getAgent();
20
+ await agent.react(msgId, emoji);
21
+ console.log(`Reacted with :${emoji}: on ${msgId}`);
22
+ });
23
+ program
24
+ .command('unreact <msg_id> <emoji>')
25
+ .description('Remove a reaction')
26
+ .action(async (msgId, emoji) => {
27
+ const agent = getAgent();
28
+ await agent.unreact(msgId, emoji);
29
+ console.log(`Removed :${emoji}: from ${msgId}`);
30
+ });
31
+ }
32
+ //# sourceMappingURL=reactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactions.js","sourceRoot":"","sources":["../../src/commands/reactions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,QAAQ;IACf,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,KAAa,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,QAAQ,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,0BAA0B,CAAC;SACnC,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,KAAa,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,UAAU,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerReadCommands(program: Command): void;
3
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuE3D"}
@@ -0,0 +1,80 @@
1
+ import { Relay } from '@relaycast/sdk';
2
+ import { loadConfig } from '../config.js';
3
+ function getAgent() {
4
+ const config = loadConfig();
5
+ if (!config.apiKey) {
6
+ throw new Error('No API key configured. Run: relay config set api-key <key>');
7
+ }
8
+ if (!config.agentToken) {
9
+ throw new Error('No agent token configured. Run: relay config set agent-token <token>');
10
+ }
11
+ const relay = new Relay({ apiKey: config.apiKey, baseUrl: config.endpoint });
12
+ return relay.as(config.agentToken);
13
+ }
14
+ export function registerReadCommands(program) {
15
+ program
16
+ .command('messages <channel>')
17
+ .description('List messages in a channel')
18
+ .option('--limit <n>', 'Message limit', '50')
19
+ .action(async (channel, opts) => {
20
+ const agent = getAgent();
21
+ const msgs = await agent.messages(channel, { limit: parseInt(opts.limit, 10) });
22
+ if (msgs.length === 0) {
23
+ console.log('No messages.');
24
+ return;
25
+ }
26
+ for (const m of msgs) {
27
+ console.log(`[${m.id}] ${m.agent_name}: ${m.text}`);
28
+ }
29
+ });
30
+ program
31
+ .command('thread <msg_id>')
32
+ .description('Show thread for a message')
33
+ .action(async (msgId) => {
34
+ const agent = getAgent();
35
+ const result = await agent.thread(msgId);
36
+ console.log(`[${result.parent.id}] ${result.parent.agent_name}: ${result.parent.text}`);
37
+ for (const r of result.replies) {
38
+ console.log(` [${r.id}] ${r.agent_name}: ${r.text}`);
39
+ }
40
+ });
41
+ program
42
+ .command('inbox')
43
+ .description('Show inbox')
44
+ .action(async () => {
45
+ const agent = getAgent();
46
+ const inbox = await agent.inbox();
47
+ console.log(JSON.stringify(inbox, null, 2));
48
+ });
49
+ program
50
+ .command('dms <agent>')
51
+ .description('Show DMs with an agent')
52
+ .action(async (agentName) => {
53
+ const agent = getAgent();
54
+ const convos = await agent.dms.conversations();
55
+ const convo = convos.find((c) => c.participants?.some((p) => p === agentName) ?? false);
56
+ if (!convo) {
57
+ console.log(`No DM conversation found with ${agentName}`);
58
+ return;
59
+ }
60
+ const msgs = await agent.dms.messages(convo.id);
61
+ for (const m of msgs) {
62
+ console.log(`[${m.id}] ${m.agent_name}: ${m.text}`);
63
+ }
64
+ });
65
+ program
66
+ .command('readers <msg_id>')
67
+ .description('Show who read a message')
68
+ .action(async (msgId) => {
69
+ const agent = getAgent();
70
+ const readers = await agent.readers(msgId);
71
+ if (readers.length === 0) {
72
+ console.log('No readers yet.');
73
+ return;
74
+ }
75
+ for (const r of readers) {
76
+ console.log(`${r.agent_name} — read at ${r.read_at}`);
77
+ }
78
+ });
79
+ }
80
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerSearchCommands(program: Command): void;
3
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB7D"}
@@ -0,0 +1,31 @@
1
+ import { Relay } from '@relaycast/sdk';
2
+ import { loadConfig } from '../config.js';
3
+ function getAgent() {
4
+ const config = loadConfig();
5
+ if (!config.apiKey) {
6
+ throw new Error('No API key configured. Run: relay config set api-key <key>');
7
+ }
8
+ if (!config.agentToken) {
9
+ throw new Error('No agent token configured. Run: relay config set agent-token <token>');
10
+ }
11
+ const relay = new Relay({ apiKey: config.apiKey, baseUrl: config.endpoint });
12
+ return relay.as(config.agentToken);
13
+ }
14
+ export function registerSearchCommands(program) {
15
+ program
16
+ .command('search <query>')
17
+ .description('Search messages')
18
+ .option('--channel <channel>', 'Filter by channel')
19
+ .action(async (query, opts) => {
20
+ const agent = getAgent();
21
+ const results = await agent.search(query, { channel: opts.channel });
22
+ if (results.length === 0) {
23
+ console.log('No results.');
24
+ return;
25
+ }
26
+ for (const r of results) {
27
+ console.log(JSON.stringify(r));
28
+ }
29
+ });
30
+ }
31
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,QAAQ;IACf,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAA0B,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerWorkspaceCommands(program: Command): void;
3
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwBhE"}
@@ -0,0 +1,35 @@
1
+ import { Relay } from '@relaycast/sdk';
2
+ import { loadConfig } from '../config.js';
3
+ function createRelay() {
4
+ const cfg = loadConfig();
5
+ if (!cfg.apiKey) {
6
+ throw new Error('Missing API key. Run: relay config set api-key <value>');
7
+ }
8
+ return new Relay({ apiKey: cfg.apiKey, baseUrl: cfg.endpoint });
9
+ }
10
+ function printJson(value) {
11
+ console.log(JSON.stringify(value, null, 2));
12
+ }
13
+ export function registerWorkspaceCommands(program) {
14
+ const ws = program.command('workspace').description('Workspace management');
15
+ ws.command('create <name>')
16
+ .description('Create workspace (updates current workspace name)')
17
+ .action(async (name) => {
18
+ const relay = createRelay();
19
+ const workspace = await relay.workspace.update({ name });
20
+ printJson(workspace);
21
+ });
22
+ ws.command('info')
23
+ .description('Show workspace info')
24
+ .action(async () => {
25
+ const relay = createRelay();
26
+ const workspace = await relay.workspace.info();
27
+ printJson(workspace);
28
+ });
29
+ ws.command('delete')
30
+ .description('Delete workspace')
31
+ .action(() => {
32
+ console.log('Workspace deletion must be done via the dashboard.');
33
+ });
34
+ }
35
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,WAAW;IAClB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAE5E,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,SAAS,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC/C,SAAS,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface RelayConfig {
2
+ apiKey?: string;
3
+ agentToken?: string;
4
+ endpoint?: string;
5
+ }
6
+ export declare function getConfigPath(): string;
7
+ export declare function loadConfig(): RelayConfig;
8
+ export declare function saveConfig(config: RelayConfig): void;
9
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,IAAI,WAAW,CAYxC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAKpD"}
package/dist/config.js ADDED
@@ -0,0 +1,29 @@
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ export function getConfigPath() {
5
+ return path.join(os.homedir(), '.relay', 'config.json');
6
+ }
7
+ export function loadConfig() {
8
+ const configPath = getConfigPath();
9
+ try {
10
+ const raw = fs.readFileSync(configPath, 'utf8');
11
+ const parsed = JSON.parse(raw);
12
+ if (parsed && typeof parsed === 'object')
13
+ return parsed;
14
+ return {};
15
+ }
16
+ catch (err) {
17
+ const e = err;
18
+ if (e && e.code === 'ENOENT')
19
+ return {};
20
+ throw err;
21
+ }
22
+ }
23
+ export function saveConfig(config) {
24
+ const configPath = getConfigPath();
25
+ const dir = path.dirname(configPath);
26
+ fs.mkdirSync(dir, { recursive: true });
27
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf8');
28
+ }
29
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAqB,CAAC;QACvE,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAA4B,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QACxC,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export declare const CLI_VERSION: "0.1.0";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAcA,eAAO,MAAM,WAAW,EAAG,OAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { registerWorkspaceCommands } from './commands/workspace.js';
4
+ import { registerAgentCommands } from './commands/agent.js';
5
+ import { registerConfigCommands } from './commands/config.js';
6
+ import { registerChannelCommands } from './commands/channel.js';
7
+ import { registerMessagingCommands } from './commands/messaging.js';
8
+ import { registerReadCommands } from './commands/read.js';
9
+ import { registerSearchCommands } from './commands/search.js';
10
+ import { registerReactionCommands } from './commands/reactions.js';
11
+ import { registerFileCommands } from './commands/files.js';
12
+ import { registerBillingCommands } from './commands/billing.js';
13
+ export const CLI_VERSION = '0.1.0';
14
+ const program = new Command();
15
+ program
16
+ .name('relay')
17
+ .description('Relay — agent-to-agent messaging CLI')
18
+ .version(CLI_VERSION);
19
+ registerWorkspaceCommands(program);
20
+ registerAgentCommands(program);
21
+ registerConfigCommands(program);
22
+ registerChannelCommands(program);
23
+ registerMessagingCommands(program);
24
+ registerReadCommands(program);
25
+ registerSearchCommands(program);
26
+ registerReactionCommands(program);
27
+ registerFileCommands(program);
28
+ registerBillingCommands(program);
29
+ program.parse();
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,OAAgB,CAAC;AAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,sCAAsC,CAAC;KACnD,OAAO,CAAC,WAAW,CAAC,CAAC;AAExB,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,43 @@
1
1
  {
2
2
  "name": "relaycast",
3
- "version": "0.0.1",
3
+ "version": "0.1.1",
4
4
  "description": "Headless Slack for AI agents. Channels, threads, DMs, reactions, and real-time events for multi-agent communication.",
5
- "keywords": ["ai", "agents", "messaging", "mcp", "multi-agent", "relay", "channels", "sdk"],
6
- "author": "Agent Relay",
7
- "license": "MIT",
5
+ "keywords": [
6
+ "ai",
7
+ "agents",
8
+ "messaging",
9
+ "mcp",
10
+ "multi-agent",
11
+ "relay",
12
+ "channels",
13
+ "sdk",
14
+ "cli"
15
+ ],
16
+ "author": "Relaycast",
17
+ "license": "Apache-2.0",
8
18
  "homepage": "https://relaycast.dev",
9
19
  "repository": {
10
20
  "type": "git",
11
- "url": "https://github.com/AgentWorkforce/relay-cloud-sdk-transport"
12
- }
21
+ "url": "https://github.com/AgentWorkforce/relaycast",
22
+ "directory": "packages/cli"
23
+ },
24
+ "type": "module",
25
+ "main": "dist/index.js",
26
+ "types": "dist/index.d.ts",
27
+ "bin": {
28
+ "relaycast": "dist/index.js"
29
+ },
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "test": "vitest run",
33
+ "lint": "eslint src/"
34
+ },
35
+ "dependencies": {
36
+ "@relaycast/sdk": "0.1.1",
37
+ "@relaycast/types": "0.1.1",
38
+ "commander": "^14.0.3"
39
+ },
40
+ "files": [
41
+ "dist"
42
+ ]
13
43
  }