chatroom-cli 1.0.54 → 1.0.64

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 (108) hide show
  1. package/README.md +35 -27
  2. package/dist/index.js +12728 -339
  3. package/package.json +11 -10
  4. package/dist/api.d.ts +0 -11
  5. package/dist/api.d.ts.map +0 -1
  6. package/dist/api.js +0 -12
  7. package/dist/api.js.map +0 -1
  8. package/dist/commands/auth-login.d.ts +0 -10
  9. package/dist/commands/auth-login.d.ts.map +0 -1
  10. package/dist/commands/auth-login.js +0 -179
  11. package/dist/commands/auth-login.js.map +0 -1
  12. package/dist/commands/auth-logout.d.ts +0 -6
  13. package/dist/commands/auth-logout.d.ts.map +0 -1
  14. package/dist/commands/auth-logout.js +0 -21
  15. package/dist/commands/auth-logout.js.map +0 -1
  16. package/dist/commands/auth-status.d.ts +0 -6
  17. package/dist/commands/auth-status.d.ts.map +0 -1
  18. package/dist/commands/auth-status.js +0 -50
  19. package/dist/commands/auth-status.js.map +0 -1
  20. package/dist/commands/backlog.d.ts +0 -36
  21. package/dist/commands/backlog.d.ts.map +0 -1
  22. package/dist/commands/backlog.js +0 -310
  23. package/dist/commands/backlog.js.map +0 -1
  24. package/dist/commands/feature.d.ts +0 -14
  25. package/dist/commands/feature.d.ts.map +0 -1
  26. package/dist/commands/feature.js +0 -172
  27. package/dist/commands/feature.js.map +0 -1
  28. package/dist/commands/guidelines.d.ts +0 -17
  29. package/dist/commands/guidelines.d.ts.map +0 -1
  30. package/dist/commands/guidelines.js +0 -71
  31. package/dist/commands/guidelines.js.map +0 -1
  32. package/dist/commands/handoff.d.ts +0 -20
  33. package/dist/commands/handoff.d.ts.map +0 -1
  34. package/dist/commands/handoff.js +0 -83
  35. package/dist/commands/handoff.js.map +0 -1
  36. package/dist/commands/init.d.ts +0 -9
  37. package/dist/commands/init.d.ts.map +0 -1
  38. package/dist/commands/init.js +0 -23
  39. package/dist/commands/init.js.map +0 -1
  40. package/dist/commands/messages.d.ts +0 -24
  41. package/dist/commands/messages.d.ts.map +0 -1
  42. package/dist/commands/messages.js +0 -149
  43. package/dist/commands/messages.js.map +0 -1
  44. package/dist/commands/opencode-install.d.ts +0 -29
  45. package/dist/commands/opencode-install.d.ts.map +0 -1
  46. package/dist/commands/opencode-install.js +0 -416
  47. package/dist/commands/opencode-install.js.map +0 -1
  48. package/dist/commands/task-started.d.ts +0 -13
  49. package/dist/commands/task-started.d.ts.map +0 -1
  50. package/dist/commands/task-started.js +0 -107
  51. package/dist/commands/task-started.js.map +0 -1
  52. package/dist/commands/update.d.ts +0 -6
  53. package/dist/commands/update.d.ts.map +0 -1
  54. package/dist/commands/update.js +0 -78
  55. package/dist/commands/update.js.map +0 -1
  56. package/dist/commands/wait-for-task.d.ts +0 -18
  57. package/dist/commands/wait-for-task.d.ts.map +0 -1
  58. package/dist/commands/wait-for-task.js +0 -306
  59. package/dist/commands/wait-for-task.js.map +0 -1
  60. package/dist/config/defaults.d.ts +0 -12
  61. package/dist/config/defaults.d.ts.map +0 -1
  62. package/dist/config/defaults.js +0 -70
  63. package/dist/config/defaults.js.map +0 -1
  64. package/dist/config/loader.d.ts +0 -52
  65. package/dist/config/loader.d.ts.map +0 -1
  66. package/dist/config/loader.js +0 -202
  67. package/dist/config/loader.js.map +0 -1
  68. package/dist/config/schema.d.ts +0 -52
  69. package/dist/config/schema.d.ts.map +0 -1
  70. package/dist/config/schema.js +0 -99
  71. package/dist/config/schema.js.map +0 -1
  72. package/dist/config.d.ts +0 -20
  73. package/dist/config.d.ts.map +0 -1
  74. package/dist/config.js +0 -20
  75. package/dist/config.js.map +0 -1
  76. package/dist/convex-api/api.d.ts +0 -137
  77. package/dist/convex-api/api.js +0 -23
  78. package/dist/convex-api/index.d.ts +0 -102
  79. package/dist/convex-api/index.d.ts.map +0 -1
  80. package/dist/convex-api/index.js +0 -11
  81. package/dist/convex-api/index.js.map +0 -1
  82. package/dist/index.d.ts +0 -9
  83. package/dist/index.d.ts.map +0 -1
  84. package/dist/index.js.map +0 -1
  85. package/dist/infrastructure/auth/middleware.d.ts +0 -20
  86. package/dist/infrastructure/auth/middleware.d.ts.map +0 -1
  87. package/dist/infrastructure/auth/middleware.js +0 -96
  88. package/dist/infrastructure/auth/middleware.js.map +0 -1
  89. package/dist/infrastructure/auth/storage.d.ts +0 -58
  90. package/dist/infrastructure/auth/storage.d.ts.map +0 -1
  91. package/dist/infrastructure/auth/storage.js +0 -242
  92. package/dist/infrastructure/auth/storage.js.map +0 -1
  93. package/dist/infrastructure/convex/client.d.ts +0 -16
  94. package/dist/infrastructure/convex/client.d.ts.map +0 -1
  95. package/dist/infrastructure/convex/client.js +0 -40
  96. package/dist/infrastructure/convex/client.js.map +0 -1
  97. package/dist/infrastructure/history/storage.d.ts +0 -21
  98. package/dist/infrastructure/history/storage.d.ts.map +0 -1
  99. package/dist/infrastructure/history/storage.js +0 -56
  100. package/dist/infrastructure/history/storage.js.map +0 -1
  101. package/dist/utils/file-content.d.ts +0 -29
  102. package/dist/utils/file-content.d.ts.map +0 -1
  103. package/dist/utils/file-content.js +0 -51
  104. package/dist/utils/file-content.js.map +0 -1
  105. package/dist/version.d.ts +0 -14
  106. package/dist/version.d.ts.map +0 -1
  107. package/dist/version.js +0 -43
  108. package/dist/version.js.map +0 -1
@@ -1,83 +0,0 @@
1
- /**
2
- * Complete a task and hand off to the next role
3
- *
4
- * This command uses the atomic handoff mutation which performs all of
5
- * these operations in a single transaction:
6
- * 1. Validates the handoff is allowed (classification rules)
7
- * 2. Completes all in_progress tasks in the chatroom
8
- * 3. Sends the handoff message
9
- * 4. Creates a task for the target agent (if not handing to user)
10
- * 5. Updates the sender's participant status to waiting
11
- * 6. Promotes the next queued task to pending
12
- */
13
- import { api } from '../api.js';
14
- import { getSessionId, getOtherSessionUrls } from '../infrastructure/auth/storage.js';
15
- import { getConvexClient, getConvexUrl } from '../infrastructure/convex/client.js';
16
- export async function handoff(chatroomId, options) {
17
- const client = await getConvexClient();
18
- const { role, message, nextRole } = options;
19
- // Get session ID for authentication
20
- const sessionId = getSessionId();
21
- if (!sessionId) {
22
- const otherUrls = getOtherSessionUrls();
23
- const currentUrl = getConvexUrl();
24
- console.error(`āŒ Not authenticated for: ${currentUrl}`);
25
- if (otherUrls.length > 0) {
26
- console.error(`\nšŸ’” You have sessions for other environments:`);
27
- for (const url of otherUrls) {
28
- console.error(` • ${url}`);
29
- }
30
- console.error(`\n To use a different environment, set CHATROOM_CONVEX_URL:`);
31
- console.error(` CHATROOM_CONVEX_URL=${otherUrls[0]} chatroom handoff ...`);
32
- console.error(`\n Or to authenticate for the current environment:`);
33
- }
34
- console.error(` chatroom auth login`);
35
- process.exit(1);
36
- }
37
- // Validate chatroom ID format
38
- if (!chatroomId ||
39
- typeof chatroomId !== 'string' ||
40
- chatroomId.length < 20 ||
41
- chatroomId.length > 40) {
42
- console.error(`āŒ Invalid chatroom ID format: ID must be 20-40 characters (got ${chatroomId?.length || 0})`);
43
- process.exit(1);
44
- }
45
- // Use atomic handoff mutation - performs all operations in one transaction:
46
- // - Validates handoff is allowed (classification rules for user handoff)
47
- // - Completes all in_progress tasks
48
- // - Sends the handoff message
49
- // - Creates a task for target agent (if not user)
50
- // - Updates sender's participant status to waiting
51
- // - Promotes next queued task to pending
52
- //
53
- // Note: We use sendHandoff here for backward compatibility with deployed backend.
54
- // Once backend is deployed with the new 'handoff' mutation, this can be changed to api.messages.handoff
55
- const result = (await client.mutation(api.messages.sendHandoff, {
56
- sessionId,
57
- chatroomId: chatroomId,
58
- senderRole: role,
59
- content: message,
60
- targetRole: nextRole,
61
- }));
62
- // Check for handoff restriction errors
63
- if (!result.success && result.error) {
64
- console.error(`\nāŒ ERROR: ${result.error.message}`);
65
- if (result.error.suggestedTarget) {
66
- console.error(`\nšŸ’” Try this instead:`);
67
- console.error('```');
68
- console.error(`chatroom handoff ${chatroomId} --role=${role} --message="<summary>" --next-role=${result.error.suggestedTarget}`);
69
- console.error('```');
70
- }
71
- process.exit(1);
72
- }
73
- console.log(`āœ… Task completed and handed off to ${nextRole}`);
74
- console.log(`šŸ“‹ Summary: ${message.substring(0, 100)}${message.length > 100 ? '...' : ''}`);
75
- // Check if handing off to user (workflow completion)
76
- if (nextRole.toLowerCase() === 'user') {
77
- console.log(`\nšŸŽ‰ Workflow complete! Control returned to user.`);
78
- }
79
- // Remind agent to run wait-for-task manually
80
- console.log(`\nā³ Now run wait-for-task to wait for your next assignment:`);
81
- console.log(` chatroom wait-for-task ${chatroomId} --role=${role} --session=1`);
82
- }
83
- //# sourceMappingURL=handoff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Initialize chatroom configuration
3
- */
4
- interface InitOptions {
5
- force?: boolean;
6
- }
7
- export declare function initConfig(options: InitOptions): Promise<void>;
8
- export {};
9
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBpE"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Initialize chatroom configuration
3
- */
4
- import { findConfigPath, createGlobalConfig } from '../config/loader.js';
5
- import { CONVEX_URL } from '../infrastructure/convex/client.js';
6
- export async function initConfig(options) {
7
- // Check if config already exists
8
- const existingConfigPath = findConfigPath();
9
- if (existingConfigPath && !options.force) {
10
- console.log(`āœ… Configuration already exists at: ${existingConfigPath}`);
11
- console.log(' Use --force to overwrite');
12
- return;
13
- }
14
- console.log('\n╔══════════════════════════════════════════════════════════╗');
15
- console.log('ā•‘ šŸŽ‰ Welcome to Chatroom CLI Setup! šŸŽ‰ ā•‘');
16
- console.log('ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n');
17
- console.log(`Chatroom CLI connects to: ${CONVEX_URL}\n`);
18
- // Create the global config
19
- const configPath = createGlobalConfig();
20
- console.log(`šŸ“‹ Configuration saved to: ${configPath}`);
21
- console.log('\nYou can edit this file to customize teams and prompts.');
22
- }
23
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAMhE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAoB;IACnD,iCAAiC;IACjC,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAC;IAE5C,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,sCAAsC,kBAAkB,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,IAAI,CAAC,CAAC;IAEzD,2BAA2B;IAC3B,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IAExC,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;AAC1E,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Messages commands for listing and filtering chatroom messages
3
- */
4
- /**
5
- * List messages filtered by sender role
6
- * Uses the composite index for efficient filtering
7
- */
8
- export declare function listBySenderRole(chatroomId: string, options: {
9
- role: string;
10
- senderRole: string;
11
- limit?: number;
12
- full?: boolean;
13
- }): Promise<void>;
14
- /**
15
- * List all messages since a given message ID (inclusive)
16
- * Returns messages in ascending order (oldest first)
17
- */
18
- export declare function listSinceMessage(chatroomId: string, options: {
19
- role: string;
20
- sinceMessageId: string;
21
- limit?: number;
22
- full?: boolean;
23
- }): Promise<void>;
24
- //# sourceMappingURL=messages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAgFf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAgFf"}
@@ -1,149 +0,0 @@
1
- /**
2
- * Messages commands for listing and filtering chatroom messages
3
- */
4
- import { api } from '../api.js';
5
- import { getSessionId } from '../infrastructure/auth/storage.js';
6
- import { getConvexClient } from '../infrastructure/convex/client.js';
7
- /**
8
- * List messages filtered by sender role
9
- * Uses the composite index for efficient filtering
10
- */
11
- export async function listBySenderRole(chatroomId, options) {
12
- const client = await getConvexClient();
13
- // Get session ID for authentication
14
- const sessionId = getSessionId();
15
- if (!sessionId) {
16
- console.error(`āŒ Not authenticated. Please run: chatroom auth login`);
17
- process.exit(1);
18
- }
19
- // Validate chatroom ID format
20
- if (!chatroomId ||
21
- typeof chatroomId !== 'string' ||
22
- chatroomId.length < 20 ||
23
- chatroomId.length > 40) {
24
- console.error(`āŒ Invalid chatroom ID format: ID must be 20-40 characters (got ${chatroomId?.length || 0})`);
25
- process.exit(1);
26
- }
27
- try {
28
- const messages = (await client.query(api.messages.listBySenderRole, {
29
- sessionId,
30
- chatroomId: chatroomId,
31
- senderRole: options.senderRole,
32
- limit: options.limit || 10,
33
- }));
34
- if (messages.length === 0) {
35
- console.log(`\nšŸ“­ No messages found for sender role: ${options.senderRole}`);
36
- return;
37
- }
38
- console.log(`\nšŸ“Ø Messages from ${options.senderRole} (${messages.length} found):`);
39
- console.log('─'.repeat(60));
40
- for (const message of messages) {
41
- const timestamp = new Date(message._creationTime).toLocaleString();
42
- const classificationBadge = message.classification
43
- ? ` [${message.classification.toUpperCase()}]`
44
- : '';
45
- const statusBadge = message.taskStatus ? ` (${message.taskStatus})` : '';
46
- console.log(`\nšŸ”¹ ID: ${message._id}`);
47
- console.log(` Time: ${timestamp}`);
48
- console.log(` Type: ${message.type}${classificationBadge}${statusBadge}`);
49
- if (message.targetRole) {
50
- console.log(` Target: ${message.targetRole}`);
51
- }
52
- if (message.featureTitle) {
53
- console.log(` Title: ${message.featureTitle}`);
54
- }
55
- // Show content (truncated unless --full)
56
- const content = message.content;
57
- if (options.full) {
58
- console.log(` Content:\n${content
59
- .split('\n')
60
- .map((l) => ` ${l}`)
61
- .join('\n')}`);
62
- }
63
- else {
64
- const firstLine = content.split('\n')[0];
65
- const truncated = firstLine.length > 100 ? firstLine.substring(0, 100) + '...' : firstLine;
66
- console.log(` Content: ${truncated}`);
67
- }
68
- }
69
- console.log('\n' + '─'.repeat(60));
70
- console.log(`šŸ’” Use --full to see complete message content`);
71
- console.log(`šŸ’” Use --since-message-id=<id> to get all messages since a specific message`);
72
- }
73
- catch (error) {
74
- const errorMessage = error instanceof Error ? error.message : String(error);
75
- console.error(`\nāŒ Error fetching messages: ${errorMessage}`);
76
- process.exit(1);
77
- }
78
- }
79
- /**
80
- * List all messages since a given message ID (inclusive)
81
- * Returns messages in ascending order (oldest first)
82
- */
83
- export async function listSinceMessage(chatroomId, options) {
84
- const client = await getConvexClient();
85
- // Get session ID for authentication
86
- const sessionId = getSessionId();
87
- if (!sessionId) {
88
- console.error(`āŒ Not authenticated. Please run: chatroom auth login`);
89
- process.exit(1);
90
- }
91
- // Validate chatroom ID format
92
- if (!chatroomId ||
93
- typeof chatroomId !== 'string' ||
94
- chatroomId.length < 20 ||
95
- chatroomId.length > 40) {
96
- console.error(`āŒ Invalid chatroom ID format: ID must be 20-40 characters (got ${chatroomId?.length || 0})`);
97
- process.exit(1);
98
- }
99
- try {
100
- const messages = (await client.query(api.messages.listSinceMessage, {
101
- sessionId,
102
- chatroomId: chatroomId,
103
- sinceMessageId: options.sinceMessageId,
104
- limit: options.limit || 100,
105
- }));
106
- if (messages.length === 0) {
107
- console.log(`\nšŸ“­ No messages found since message: ${options.sinceMessageId}`);
108
- return;
109
- }
110
- console.log(`\nšŸ“Ø Messages since ${options.sinceMessageId} (${messages.length} found):`);
111
- console.log('─'.repeat(60));
112
- for (const message of messages) {
113
- const timestamp = new Date(message._creationTime).toLocaleString();
114
- const roleIndicator = message.senderRole.toLowerCase() === 'user' ? 'šŸ‘¤' : 'šŸ¤–';
115
- const classificationBadge = message.classification
116
- ? ` [${message.classification.toUpperCase()}]`
117
- : '';
118
- const statusBadge = message.taskStatus ? ` (${message.taskStatus})` : '';
119
- console.log(`\n${roleIndicator} ${message.senderRole}${message.targetRole ? ` → ${message.targetRole}` : ''}`);
120
- console.log(` ID: ${message._id}`);
121
- console.log(` Time: ${timestamp}`);
122
- console.log(` Type: ${message.type}${classificationBadge}${statusBadge}`);
123
- if (message.featureTitle) {
124
- console.log(` Title: ${message.featureTitle}`);
125
- }
126
- // Show content (truncated unless --full)
127
- const content = message.content;
128
- if (options.full) {
129
- console.log(` Content:\n${content
130
- .split('\n')
131
- .map((l) => ` ${l}`)
132
- .join('\n')}`);
133
- }
134
- else {
135
- const firstLine = content.split('\n')[0];
136
- const truncated = firstLine.length > 100 ? firstLine.substring(0, 100) + '...' : firstLine;
137
- console.log(` Content: ${truncated}`);
138
- }
139
- }
140
- console.log('\n' + '─'.repeat(60));
141
- console.log(`šŸ’” Use --full to see complete message content`);
142
- }
143
- catch (error) {
144
- const errorMessage = error instanceof Error ? error.message : String(error);
145
- console.error(`\nāŒ Error fetching messages: ${errorMessage}`);
146
- process.exit(1);
147
- }
148
- }
149
- //# sourceMappingURL=messages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * OpenCode Tool Installation
3
- *
4
- * This module installs the chatroom CLI as an OpenCode tool, providing structured
5
- * command interfaces that avoid timeout issues with long-running bash commands.
6
- *
7
- * The tool is installed to ~/.config/opencode/tool/chatroom.ts
8
- *
9
- * IMPORTANT: All tools in this file should include the following optional parameters
10
- * to support local development:
11
- * - webUrl: Override the web URL (CHATROOM_WEB_URL)
12
- * - convexUrl: Override the Convex backend URL (CHATROOM_CONVEX_URL)
13
- *
14
- * These parameters allow agents to connect to local development servers instead of
15
- * production when testing or developing.
16
- */
17
- export interface ToolInstallOptions {
18
- checkExisting?: boolean;
19
- }
20
- export interface ToolInstallResult {
21
- success: boolean;
22
- toolPath?: string;
23
- message: string;
24
- }
25
- /**
26
- * Install chatroom as an OpenCode tool
27
- */
28
- export declare function installTool(options?: ToolInstallOptions): Promise<ToolInstallResult>;
29
- //# sourceMappingURL=opencode-install.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode-install.d.ts","sourceRoot":"","sources":["../../src/commands/opencode-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAeD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuY9F"}