@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.
Files changed (121) hide show
  1. package/README.md +77 -0
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.js +4307 -0
  4. package/dist/cli.js.map +7 -0
  5. package/dist/commands/auth.d.ts +1 -0
  6. package/dist/commands/auth.js +155 -0
  7. package/dist/commands/auth.js.map +1 -0
  8. package/dist/commands/claim.d.ts +1 -0
  9. package/dist/commands/claim.js +36 -0
  10. package/dist/commands/claim.js.map +1 -0
  11. package/dist/commands/completion.d.ts +1 -0
  12. package/dist/commands/completion.js +191 -0
  13. package/dist/commands/completion.js.map +1 -0
  14. package/dist/commands/config-cmd.d.ts +1 -0
  15. package/dist/commands/config-cmd.js +61 -0
  16. package/dist/commands/config-cmd.js.map +1 -0
  17. package/dist/commands/events.d.ts +1 -0
  18. package/dist/commands/events.js +129 -0
  19. package/dist/commands/events.js.map +1 -0
  20. package/dist/commands/halt.d.ts +1 -0
  21. package/dist/commands/halt.js +25 -0
  22. package/dist/commands/halt.js.map +1 -0
  23. package/dist/commands/help-cmd.d.ts +1 -0
  24. package/dist/commands/help-cmd.js +125 -0
  25. package/dist/commands/help-cmd.js.map +1 -0
  26. package/dist/commands/hooks-cmd.d.ts +1 -0
  27. package/dist/commands/hooks-cmd.js +83 -0
  28. package/dist/commands/hooks-cmd.js.map +1 -0
  29. package/dist/commands/init.d.ts +1 -0
  30. package/dist/commands/init.js +78 -0
  31. package/dist/commands/init.js.map +1 -0
  32. package/dist/commands/integrations.d.ts +1 -0
  33. package/dist/commands/integrations.js +375 -0
  34. package/dist/commands/integrations.js.map +1 -0
  35. package/dist/commands/join.d.ts +1 -0
  36. package/dist/commands/join.js +81 -0
  37. package/dist/commands/join.js.map +1 -0
  38. package/dist/commands/leave.d.ts +1 -0
  39. package/dist/commands/leave.js +36 -0
  40. package/dist/commands/leave.js.map +1 -0
  41. package/dist/commands/marketplace.d.ts +1 -0
  42. package/dist/commands/marketplace.js +291 -0
  43. package/dist/commands/marketplace.js.map +1 -0
  44. package/dist/commands/msg.d.ts +1 -0
  45. package/dist/commands/msg.js +105 -0
  46. package/dist/commands/msg.js.map +1 -0
  47. package/dist/commands/namespace.d.ts +1 -0
  48. package/dist/commands/namespace.js +95 -0
  49. package/dist/commands/namespace.js.map +1 -0
  50. package/dist/commands/pause.d.ts +2 -0
  51. package/dist/commands/pause.js +45 -0
  52. package/dist/commands/pause.js.map +1 -0
  53. package/dist/commands/protocol.d.ts +1 -0
  54. package/dist/commands/protocol.js +341 -0
  55. package/dist/commands/protocol.js.map +1 -0
  56. package/dist/commands/release.d.ts +1 -0
  57. package/dist/commands/release.js +29 -0
  58. package/dist/commands/release.js.map +1 -0
  59. package/dist/commands/scan.d.ts +1 -0
  60. package/dist/commands/scan.js +157 -0
  61. package/dist/commands/scan.js.map +1 -0
  62. package/dist/commands/serve.d.ts +1 -0
  63. package/dist/commands/serve.js +78 -0
  64. package/dist/commands/serve.js.map +1 -0
  65. package/dist/commands/state.d.ts +1 -0
  66. package/dist/commands/state.js +119 -0
  67. package/dist/commands/state.js.map +1 -0
  68. package/dist/commands/status.d.ts +1 -0
  69. package/dist/commands/status.js +78 -0
  70. package/dist/commands/status.js.map +1 -0
  71. package/dist/commands/swarm.d.ts +1 -0
  72. package/dist/commands/swarm.js +404 -0
  73. package/dist/commands/swarm.js.map +1 -0
  74. package/dist/commands/team.d.ts +1 -0
  75. package/dist/commands/team.js +35 -0
  76. package/dist/commands/team.js.map +1 -0
  77. package/dist/commands/upgrade.d.ts +1 -0
  78. package/dist/commands/upgrade.js +99 -0
  79. package/dist/commands/upgrade.js.map +1 -0
  80. package/dist/hook.d.ts +1 -0
  81. package/dist/hook.js +531 -0
  82. package/dist/hook.js.map +7 -0
  83. package/dist/hooks/post-tool-use.d.ts +2 -0
  84. package/dist/hooks/post-tool-use.js +16 -0
  85. package/dist/hooks/post-tool-use.js.map +1 -0
  86. package/dist/hooks/pre-tool-use.d.ts +2 -0
  87. package/dist/hooks/pre-tool-use.js +49 -0
  88. package/dist/hooks/pre-tool-use.js.map +1 -0
  89. package/dist/hooks/prompt-submit.d.ts +2 -0
  90. package/dist/hooks/prompt-submit.js +64 -0
  91. package/dist/hooks/prompt-submit.js.map +1 -0
  92. package/dist/hooks/session-start.d.ts +2 -0
  93. package/dist/hooks/session-start.js +101 -0
  94. package/dist/hooks/session-start.js.map +1 -0
  95. package/dist/hooks/stop.d.ts +2 -0
  96. package/dist/hooks/stop.js +52 -0
  97. package/dist/hooks/stop.js.map +1 -0
  98. package/dist/lib/config.d.ts +6 -0
  99. package/dist/lib/config.js +53 -0
  100. package/dist/lib/config.js.map +1 -0
  101. package/dist/lib/format.d.ts +22 -0
  102. package/dist/lib/format.js +42 -0
  103. package/dist/lib/format.js.map +1 -0
  104. package/dist/lib/global-config.d.ts +13 -0
  105. package/dist/lib/global-config.js +52 -0
  106. package/dist/lib/global-config.js.map +1 -0
  107. package/dist/lib/hooks.d.ts +2 -0
  108. package/dist/lib/hooks.js +75 -0
  109. package/dist/lib/hooks.js.map +1 -0
  110. package/dist/lib/id.d.ts +1 -0
  111. package/dist/lib/id.js +5 -0
  112. package/dist/lib/id.js.map +1 -0
  113. package/dist/types.d.ts +26 -0
  114. package/dist/types.js +3 -0
  115. package/dist/types.js.map +1 -0
  116. package/hooks/post-tool-use.sh +13 -0
  117. package/hooks/pre-tool-use.sh +13 -0
  118. package/hooks/prompt-submit.sh +13 -0
  119. package/hooks/session-start.sh +13 -0
  120. package/hooks/stop.sh +13 -0
  121. package/package.json +68 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halt.js","sourceRoot":"","sources":["../../src/commands/halt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,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,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,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;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/D,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 helpCmd(args: string[]): Promise<void>;
@@ -0,0 +1,125 @@
1
+ import { loadConfig } from '../lib/config.js';
2
+ import { createAcpClient } from '@agentcoordinationprotocol/sdk';
3
+ import { c, error, heading, success } from '../lib/format.js';
4
+ const URGENCY_COLOR = { low: 'dim', normal: 'cyan', high: 'red' };
5
+ function formatRequest(h, myId) {
6
+ const urgColor = URGENCY_COLOR[h.urgency || 'normal'];
7
+ const status = h.status === 'open' ? c('yellow', 'open')
8
+ : h.status === 'claimed' ? c('cyan', `claimed by ${h.claimedBy}`)
9
+ : c('green', 'resolved');
10
+ const mine = h.from === myId ? c('green', ' (you)') : '';
11
+ return ` ${c('dim', `#${h.id}`)} ${c(urgColor, `[${h.urgency || 'normal'}]`)} ${h.problem}${mine}\n ${status} — ${h.from} ${c('dim', new Date(h.createdAt).toLocaleTimeString())}`;
12
+ }
13
+ export async function helpCmd(args) {
14
+ const sub = args[0];
15
+ if (!sub || sub === '--help' || sub === '-h') {
16
+ console.log(`
17
+ ${c('bold', 'wgl help')} — help request management
18
+
19
+ ${c('cyan', 'USAGE:')}
20
+ wgl help ask <problem> Request help
21
+ wgl help list Show open help requests
22
+ wgl help claim <id> Claim a help request
23
+ wgl help resolve <id> Resolve a help request
24
+ `);
25
+ return;
26
+ }
27
+ const config = loadConfig();
28
+ if (!config) {
29
+ console.log(error('Not initialized. Run `wgl init` or `wgl join` first.'));
30
+ process.exit(1);
31
+ }
32
+ const client = createAcpClient(config);
33
+ switch (sub) {
34
+ case 'ask': {
35
+ const problem = args.slice(1).join(' ');
36
+ if (!problem) {
37
+ console.log(error('Usage: wgl help ask <problem>'));
38
+ process.exit(2);
39
+ }
40
+ try {
41
+ const res = await client.requestHelp(problem);
42
+ if (!res.ok) {
43
+ console.log(error(`Server returned ${res.status}`));
44
+ process.exit(1);
45
+ }
46
+ const h = res.data;
47
+ console.log(success(`Help request #${h.id} created`));
48
+ }
49
+ catch {
50
+ console.log(error('Cannot reach server'));
51
+ process.exit(1);
52
+ }
53
+ break;
54
+ }
55
+ case 'list': {
56
+ try {
57
+ const res = await client.getHelp();
58
+ if (!res.ok) {
59
+ console.log(error(`Server returned ${res.status}`));
60
+ process.exit(1);
61
+ }
62
+ const requests = res.data;
63
+ if (requests.length === 0) {
64
+ console.log(` ${c('dim', 'No help requests')}`);
65
+ return;
66
+ }
67
+ console.log(heading('Help Requests'));
68
+ for (const h of requests) {
69
+ console.log(formatRequest(h, config.agentId));
70
+ }
71
+ console.log();
72
+ }
73
+ catch {
74
+ console.log(error('Cannot reach server'));
75
+ process.exit(1);
76
+ }
77
+ break;
78
+ }
79
+ case 'claim': {
80
+ const id = parseInt(args[1], 10);
81
+ if (isNaN(id)) {
82
+ console.log(error('Usage: wgl help claim <id>'));
83
+ process.exit(2);
84
+ }
85
+ try {
86
+ const res = await client.claimHelp(id);
87
+ if (!res.ok) {
88
+ console.log(error(`Server returned ${res.status}`));
89
+ process.exit(1);
90
+ }
91
+ console.log(success(`Claimed help request #${id}`));
92
+ }
93
+ catch {
94
+ console.log(error('Cannot reach server'));
95
+ process.exit(1);
96
+ }
97
+ break;
98
+ }
99
+ case 'resolve': {
100
+ const id = parseInt(args[1], 10);
101
+ if (isNaN(id)) {
102
+ console.log(error('Usage: wgl help resolve <id>'));
103
+ process.exit(2);
104
+ }
105
+ try {
106
+ const res = await client.resolveHelp(id);
107
+ if (!res.ok) {
108
+ console.log(error(`Server returned ${res.status}`));
109
+ process.exit(1);
110
+ }
111
+ console.log(success(`Resolved help request #${id}`));
112
+ }
113
+ catch {
114
+ console.log(error('Cannot reach server'));
115
+ process.exit(1);
116
+ }
117
+ break;
118
+ }
119
+ default:
120
+ console.log(error(`Unknown subcommand: ${sub}`));
121
+ console.log('Run `wgl help --help` for usage');
122
+ process.exit(2);
123
+ }
124
+ }
125
+ //# sourceMappingURL=help-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-cmd.js","sourceRoot":"","sources":["../../src/commands/help-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG9D,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAW,CAAC;AAE3E,SAAS,aAAa,CAAC,CAAc,EAAE,IAAY;IACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAA2B,CAAC;IAChF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtD,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;YACjE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,SAAS,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC;AACzL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,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,UAAU,CAAC;;EAErB,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;;;;;CAKpB,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IAED,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,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEvC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAmB,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAqB,CAAC;gBAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;oBACjD,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;gBACtC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;QAED;YACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function hooksCmd(args: string[]): Promise<void>;
@@ -0,0 +1,83 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { loadConfig } from '../lib/config.js';
4
+ import { installHooks, uninstallHooks } from '../lib/hooks.js';
5
+ import { c, error, heading, success } from '../lib/format.js';
6
+ export async function hooksCmd(args) {
7
+ const sub = args[0];
8
+ if (!sub || sub === '--help' || sub === '-h') {
9
+ console.log(`
10
+ ${c('bold', 'wgl hooks')} — Claude Code hook management
11
+
12
+ ${c('cyan', 'USAGE:')}
13
+ wgl hooks install Install hooks to settings.local.json
14
+ wgl hooks uninstall Remove hooks
15
+ wgl hooks list Show installed hooks
16
+ `);
17
+ return;
18
+ }
19
+ switch (sub) {
20
+ case 'install': {
21
+ const config = loadConfig();
22
+ const timeout = config?.hookTimeout || 10;
23
+ try {
24
+ installHooks(timeout);
25
+ console.log(success('Hooks installed'));
26
+ }
27
+ catch (err) {
28
+ console.log(error(`Failed to install hooks: ${err.message}`));
29
+ process.exit(1);
30
+ }
31
+ break;
32
+ }
33
+ case 'uninstall': {
34
+ try {
35
+ uninstallHooks();
36
+ console.log(success('Hooks uninstalled'));
37
+ }
38
+ catch (err) {
39
+ console.log(error(`Failed to uninstall hooks: ${err.message}`));
40
+ process.exit(1);
41
+ }
42
+ break;
43
+ }
44
+ case 'list': {
45
+ const settingsPath = join(process.cwd(), '.claude', 'settings.local.json');
46
+ if (!existsSync(settingsPath)) {
47
+ console.log(` ${c('dim', 'No hooks installed (no settings.local.json)')}`);
48
+ return;
49
+ }
50
+ let settings;
51
+ try {
52
+ settings = JSON.parse(readFileSync(settingsPath, 'utf8'));
53
+ }
54
+ catch {
55
+ console.log(error('Failed to read settings.local.json'));
56
+ process.exit(1);
57
+ return;
58
+ }
59
+ if (!settings.hooks || Object.keys(settings.hooks).length === 0) {
60
+ console.log(` ${c('dim', 'No hooks configured')}`);
61
+ return;
62
+ }
63
+ console.log(heading('Installed Hooks'));
64
+ for (const [event, hooks] of Object.entries(settings.hooks)) {
65
+ for (const hook of hooks) {
66
+ const isWgl = hook.command.includes('waggle-cli') || hook.command.includes('/cli/hooks/');
67
+ const tag = isWgl ? c('green', ' [wgl]') : '';
68
+ console.log(` ${c('bold', event)}${hook.matcher ? c('dim', ` (${hook.matcher})`) : ''}${tag}`);
69
+ console.log(` ${c('dim', hook.command)}`);
70
+ if (hook.timeout)
71
+ console.log(` ${c('dim', `timeout: ${hook.timeout}s`)}`);
72
+ }
73
+ }
74
+ console.log();
75
+ break;
76
+ }
77
+ default:
78
+ console.log(error(`Unknown subcommand: ${sub}`));
79
+ console.log('Run `wgl hooks --help` for usage');
80
+ process.exit(2);
81
+ }
82
+ }
83
+ //# sourceMappingURL=hooks-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-cmd.js","sourceRoot":"","sources":["../../src/commands/hooks-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function init(args: string[]): Promise<void>;
@@ -0,0 +1,78 @@
1
+ import { createInterface } from 'node:readline';
2
+ import { generateAgentId } from '../lib/id.js';
3
+ import { defaultConfig, saveConfig, loadConfig } from '../lib/config.js';
4
+ import { installHooks } from '../lib/hooks.js';
5
+ import { createAcpClient } from '@agentcoordinationprotocol/sdk';
6
+ import { c, success, error, label, heading } from '../lib/format.js';
7
+ function prompt(rl, question, defaultVal) {
8
+ const suffix = defaultVal ? ` ${c('dim', `[${defaultVal}]`)}` : '';
9
+ return new Promise((resolve) => {
10
+ rl.question(` ${question}${suffix}: `, (answer) => {
11
+ resolve(answer.trim() || defaultVal || '');
12
+ });
13
+ });
14
+ }
15
+ export async function init(args) {
16
+ const existing = loadConfig();
17
+ if (existing) {
18
+ console.log(error('Already initialized. Run `wgl leave` first to reset.'));
19
+ process.exit(1);
20
+ }
21
+ const nonInteractive = args.includes('--yes') || args.includes('-y');
22
+ let server;
23
+ let namespace;
24
+ let role;
25
+ // Check for flag-based args
26
+ const serverIdx = args.findIndex(a => a === '--server' || a === '-s');
27
+ const nsIdx = args.findIndex(a => a === '--namespace' || a === '-n');
28
+ const roleIdx = args.findIndex(a => a === '--role' || a === '-r');
29
+ if (nonInteractive) {
30
+ server = serverIdx >= 0 ? args[serverIdx + 1] : 'http://localhost:3100';
31
+ namespace = nsIdx >= 0 ? args[nsIdx + 1] : 'default';
32
+ role = roleIdx >= 0 ? args[roleIdx + 1] : 'developer';
33
+ }
34
+ else {
35
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
36
+ console.log(heading('waggle-cli setup'));
37
+ console.log();
38
+ server = await prompt(rl, 'Server URL', 'http://localhost:3100');
39
+ namespace = await prompt(rl, 'Namespace', 'default');
40
+ role = await prompt(rl, 'Role', 'developer');
41
+ rl.close();
42
+ console.log();
43
+ }
44
+ const agentId = generateAgentId();
45
+ const config = defaultConfig(server, agentId, role, namespace);
46
+ // Test connection
47
+ const client = createAcpClient(config);
48
+ try {
49
+ const res = await client.health();
50
+ if (!res.ok) {
51
+ console.log(error(`Server returned ${res.status}. Check the URL and try again.`));
52
+ process.exit(1);
53
+ }
54
+ }
55
+ catch {
56
+ console.log(error(`Cannot reach ${server}. Is the incubator running?`));
57
+ process.exit(1);
58
+ }
59
+ // Register role
60
+ try {
61
+ await client.requestRole(role);
62
+ }
63
+ catch {
64
+ // Non-fatal — role registration is optional
65
+ }
66
+ const configPath = saveConfig(config);
67
+ installHooks(config.hookTimeout);
68
+ console.log(success('Initialized waggle-cli'));
69
+ console.log(label('Config', configPath));
70
+ console.log(label('Agent ID', agentId));
71
+ console.log(label('Server', server));
72
+ console.log(label('Namespace', namespace));
73
+ console.log(label('Role', role));
74
+ console.log();
75
+ console.log(` Hooks installed in ${c('dim', '.claude/settings.local.json')}`);
76
+ console.log(` Start a Claude Code session to begin coordinating.`);
77
+ }
78
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function integrations(args: string[]): Promise<void>;