httpcat-cli 0.0.20 → 0.0.22
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/.claude/settings.local.json +11 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +41 -6
- package/dist/client.js.map +1 -1
- package/dist/commands/buy.d.ts.map +1 -1
- package/dist/commands/buy.js +5 -5
- package/dist/commands/buy.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +39 -33
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/positions.d.ts.map +1 -1
- package/dist/commands/positions.js +2 -2
- package/dist/commands/positions.js.map +1 -1
- package/dist/commands/transactions.d.ts.map +1 -0
- package/dist/commands/transactions.js +59 -0
- package/dist/commands/transactions.js.map +1 -0
- package/dist/index.js +79 -4
- package/dist/index.js.map +1 -1
- package/dist/interactive/shell.d.ts.map +1 -1
- package/dist/interactive/shell.js +33 -3
- package/dist/interactive/shell.js.map +1 -1
- package/dist/mcp/chat-state.d.ts.map +1 -1
- package/dist/mcp/chat-state.js +17 -3
- package/dist/mcp/chat-state.js.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +9 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +37 -2
- package/dist/utils/validation.js.map +1 -1
- package/homebrew-httpcat/Formula/httpcat.rb +3 -3
- package/homebrew-httpcat/homebrew-httpcat/Formula/httpcat.rb +3 -3
- package/package.json +1 -1
|
@@ -23,7 +23,17 @@
|
|
|
23
23
|
"Bash(gh pr list:*)",
|
|
24
24
|
"Bash(gh pr view:*)",
|
|
25
25
|
"Bash(gh pr diff:*)",
|
|
26
|
-
"Bash(gh pr merge:*)"
|
|
26
|
+
"Bash(gh pr merge:*)",
|
|
27
|
+
"Bash(cat:*)",
|
|
28
|
+
"Bash(git pull:*)",
|
|
29
|
+
"Bash(git rebase:*)",
|
|
30
|
+
"Bash(bun test:*)",
|
|
31
|
+
"Bash(gh run list:*)",
|
|
32
|
+
"Bash(gh run:*)",
|
|
33
|
+
"Bash(ssh:*)",
|
|
34
|
+
"Bash(md5sum:*)",
|
|
35
|
+
"Bash(xargs:*)",
|
|
36
|
+
"Bash(jq)"
|
|
27
37
|
],
|
|
28
38
|
"deny": [],
|
|
29
39
|
"ask": []
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,MAAM,EAAE,CAAC,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;WAUM,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBvD,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EACtC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,MAAM,EAAE,CAAC,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;WAUM,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBvD,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EACtC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;IA2G9C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAsCrC,WAAW,IAAI,MAAM;IAIrB,UAAU,IAAI,MAAM;CAGrB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACD,MAAM,EAAE,MAAM;IAAS,OAAO,CAAC,EAAE,GAAG;gBAA5D,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAS,OAAO,CAAC,EAAE,GAAG,YAAA;CAIzE"}
|
package/dist/client.js
CHANGED
|
@@ -48,12 +48,47 @@ export class HttpcatClient {
|
|
|
48
48
|
try {
|
|
49
49
|
errorDetails = JSON.parse(responseText);
|
|
50
50
|
// Extract message from nested error structures
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
// Handle various error formats
|
|
52
|
+
if (typeof errorDetails === 'string') {
|
|
53
|
+
errorMessage = errorDetails;
|
|
54
|
+
}
|
|
55
|
+
else if (errorDetails.error) {
|
|
56
|
+
if (typeof errorDetails.error === 'string') {
|
|
57
|
+
errorMessage = errorDetails.error;
|
|
58
|
+
}
|
|
59
|
+
else if (errorDetails.error.message) {
|
|
60
|
+
errorMessage = errorDetails.error.message;
|
|
61
|
+
}
|
|
62
|
+
else if (typeof errorDetails.error === 'object') {
|
|
63
|
+
// Try to stringify the error object
|
|
64
|
+
const errorStr = JSON.stringify(errorDetails.error);
|
|
65
|
+
if (errorStr !== '{}') {
|
|
66
|
+
errorMessage = errorStr;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
errorMessage = errorDetails.message || `Request failed with status ${response.status}`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
errorMessage = String(errorDetails.error);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if (errorDetails.message) {
|
|
77
|
+
errorMessage = errorDetails.message;
|
|
78
|
+
}
|
|
79
|
+
else if (errorDetails.details?.message) {
|
|
80
|
+
errorMessage = errorDetails.details.message;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Last resort: try to stringify the whole object
|
|
84
|
+
const errorStr = JSON.stringify(errorDetails);
|
|
85
|
+
if (errorStr !== '{}' && errorStr.length < 500) {
|
|
86
|
+
errorMessage = errorStr;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
errorMessage = `Request failed with status ${response.status}`;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
57
92
|
// For 500 errors, try to extract more context
|
|
58
93
|
if (response.status >= 500 && errorDetails.error) {
|
|
59
94
|
// If error is an object, try to stringify it for more info
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAWrC,MAAM,OAAO,aAAa;IAChB,gBAAgB,CAAe;IAC/B,QAAQ,CAAS;IACjB,OAAO,CAAS;IAExB,YACE,gBAA8B,EAC9B,QAAgB,EAChB,OAAe;QAEf,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAgB;QAClC,MAAM,EAAE,GAAG,UAAU,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,2CAA2C;QAClF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEnD,gDAAgD;QAChD,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,wBAAwB,OAAO,sDAAsD,CACtF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE/C,mCAAmC;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,qCAAqC;QAChG,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvE,OAAO,IAAI,aAAa,CAAC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,KAAa;QAEb,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,gBAAgB,UAAU,SAAS,CAAC;QAErE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;SAChC,CAAC,CAAC;QAEH,oCAAoC;QACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACjE,MAAM,OAAO,GAA4B,aAAa;YACpD,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;YAC3B,CAAC,CAAC,SAAS,CAAC;QAEd,iBAAiB;QACjB,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE3C,gCAAgC;QAChC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,sEAAsE;YACtE,IAAI,YAAiB,CAAC;YACtB,IAAI,YAAoB,CAAC;YAEzB,IAAI,CAAC;gBACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACxC,+CAA+C;gBAC/C,YAAY;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buy.d.ts","sourceRoot":"","sources":["../../src/commands/buy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAM7C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"buy.d.ts","sourceRoot":"","sources":["../../src/commands/buy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAM7C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,YAAY,UAA2B,CAAC;AACrD,eAAO,MAAM,YAAY,UAAuB,CAAC;AAEjD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,EAAE,mCAAmC;AACvD,MAAM,EAAE,MAAM,EACd,UAAU,UAAO,EACjB,MAAM,UAAQ,GACb,OAAO,CAAC,cAAc,CAAC,CAuBzB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAkB7D"}
|
package/dist/commands/buy.js
CHANGED
|
@@ -2,8 +2,8 @@ import { validateTokenId, validateAmount } from '../utils/validation.js';
|
|
|
2
2
|
import { printBox, formatTokenAmount, formatCurrency } from '../utils/formatting.js';
|
|
3
3
|
import { printSuccess, printGraduationProgress } from '../interactive/art.js';
|
|
4
4
|
import { resolveTokenId } from '../utils/token-resolver.js';
|
|
5
|
-
const TEST_AMOUNTS = ['0.05', '0.10', '0.20'];
|
|
6
|
-
const PROD_AMOUNTS = ['50', '100', '200'];
|
|
5
|
+
export const TEST_AMOUNTS = ['0.05', '0.10', '0.20'];
|
|
6
|
+
export const PROD_AMOUNTS = ['50', '100', '200'];
|
|
7
7
|
export async function buyToken(client, identifier, // Can be token ID, name, or symbol
|
|
8
8
|
amount, isTestMode = true, silent = false // Suppress resolver output for quiet/JSON mode
|
|
9
9
|
) {
|
|
@@ -12,12 +12,12 @@ amount, isTestMode = true, silent = false // Suppress resolver output for quiet/
|
|
|
12
12
|
// Validate input
|
|
13
13
|
validateTokenId(tokenId);
|
|
14
14
|
const validAmounts = isTestMode ? TEST_AMOUNTS : PROD_AMOUNTS;
|
|
15
|
-
validateAmount(amount, validAmounts);
|
|
16
|
-
const input = { tokenId, amount };
|
|
15
|
+
const normalizedAmount = validateAmount(amount, validAmounts, isTestMode);
|
|
16
|
+
const input = { tokenId, amount: normalizedAmount };
|
|
17
17
|
// Route to correct entrypoint based on test mode and amount
|
|
18
18
|
// Test mode: token_buy_0_05, token_buy_0_10, token_buy_0_20
|
|
19
19
|
// Production mode: token_buy (single entrypoint)
|
|
20
|
-
const entrypoint = isTestMode ? `token_buy_${
|
|
20
|
+
const entrypoint = isTestMode ? `token_buy_${normalizedAmount.replace('.', '_')}` : 'token_buy';
|
|
21
21
|
// Make request
|
|
22
22
|
const { data } = await client.invoke(entrypoint, input);
|
|
23
23
|
return data;
|
package/dist/commands/buy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buy.js","sourceRoot":"","sources":["../../src/commands/buy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAkB5D,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"buy.js","sourceRoot":"","sources":["../../src/commands/buy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAkB5D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAqB,EACrB,UAAkB,EAAE,mCAAmC;AACvD,MAAc,EACd,UAAU,GAAG,IAAI,EACjB,MAAM,GAAG,KAAK,CAAC,+CAA+C;;IAE9D,iCAAiC;IACjC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjE,iBAAiB;IACjB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9D,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAEnE,4DAA4D;IAC5D,4DAA4D;IAC5D,iDAAiD;IACjD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IAEhG,eAAe;IACf,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAClC,UAAU,EACV,KAAK,CACN,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,YAAY,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;IAExD,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB;QAC/C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAE/C,QAAQ,CAAC,qBAAqB,EAAE;QAC9B,iBAAiB,EAAE,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC;QAC3D,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC;QAClD,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;QACtC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5C,gBAAgB,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;QAChD,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,uBAAuB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAW7C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAW7C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,eAAe,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkC7E;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,cAAc,CAAC,CAoCzB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAa5B;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CAS/B;AAiND,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,QAAQ,GAAE,OAAe,EACzB,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,GAAE,MAAM,GAAG,aAAsB,GAC3C,OAAO,CAAC,IAAI,CAAC,CAq2Df;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAQjE"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -55,7 +55,7 @@ export function normalizeWebSocketUrl(wsUrl, agentUrl) {
|
|
|
55
55
|
return wsUrl;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
export async function joinChat(client, tokenIdentifier, silent = false) {
|
|
58
|
+
export async function joinChat(client, userAddress, tokenIdentifier, silent = false) {
|
|
59
59
|
let tokenId;
|
|
60
60
|
// If token identifier provided, resolve it to tokenId
|
|
61
61
|
if (tokenIdentifier) {
|
|
@@ -70,7 +70,11 @@ export async function joinChat(client, tokenIdentifier, silent = false) {
|
|
|
70
70
|
tokenId = await resolveTokenId(tokenIdentifier, client, silent);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
// Validate userAddress is defined
|
|
74
|
+
if (!userAddress || typeof userAddress !== 'string') {
|
|
75
|
+
throw new Error(`userAddress is required but got: ${typeof userAddress} - ${userAddress}`);
|
|
76
|
+
}
|
|
77
|
+
const input = tokenId ? { tokenId, userAddress } : { userAddress };
|
|
74
78
|
const { data } = await client.invoke(CHAT_JOIN_ENTRYPOINT, input);
|
|
75
79
|
// Format author addresses for last messages
|
|
76
80
|
data.lastMessages = data.lastMessages.map((msg) => ({
|
|
@@ -79,16 +83,16 @@ export async function joinChat(client, tokenIdentifier, silent = false) {
|
|
|
79
83
|
}));
|
|
80
84
|
return data;
|
|
81
85
|
}
|
|
82
|
-
export async function sendChatMessage(client, message, leaseId) {
|
|
86
|
+
export async function sendChatMessage(client, message, leaseId, userAddress) {
|
|
83
87
|
if (!message.trim()) {
|
|
84
88
|
throw new Error("Message cannot be empty");
|
|
85
89
|
}
|
|
86
|
-
const input = { message, leaseId };
|
|
90
|
+
const input = { message, leaseId, userAddress };
|
|
87
91
|
const { data } = await client.invoke(CHAT_MESSAGE_ENTRYPOINT, input);
|
|
88
92
|
return data;
|
|
89
93
|
}
|
|
90
|
-
export async function renewLease(client, leaseId) {
|
|
91
|
-
const input = leaseId ? { leaseId } : {};
|
|
94
|
+
export async function renewLease(client, userAddress, leaseId) {
|
|
95
|
+
const input = leaseId ? { leaseId, userAddress } : { userAddress };
|
|
92
96
|
const { data } = await client.invoke(CHAT_RENEW_LEASE_ENTRYPOINT, input);
|
|
93
97
|
return data;
|
|
94
98
|
}
|
|
@@ -236,7 +240,7 @@ function updateHeaderBox(headerBox, leaseInfo, tokenName, isConnected = false) {
|
|
|
236
240
|
// Clear and set content to prevent overlapping
|
|
237
241
|
headerBox.setContent(lines.join("\n"));
|
|
238
242
|
}
|
|
239
|
-
async function ensureLeaseValid(client, leaseInfo, messageLogBox, screen) {
|
|
243
|
+
async function ensureLeaseValid(client, userAddress, leaseInfo, messageLogBox, screen) {
|
|
240
244
|
if (!leaseInfo || leaseInfo.leaseExpiresAt.getTime() <= Date.now()) {
|
|
241
245
|
// Lease expired or doesn't exist, renew it
|
|
242
246
|
if (messageLogBox) {
|
|
@@ -248,7 +252,7 @@ async function ensureLeaseValid(client, leaseInfo, messageLogBox, screen) {
|
|
|
248
252
|
clearLine();
|
|
249
253
|
console.log(chalk.yellow("⏱️ Lease expired. Renewing..."));
|
|
250
254
|
}
|
|
251
|
-
const renewal = await renewLease(client, leaseInfo?.leaseId);
|
|
255
|
+
const renewal = await renewLease(client, userAddress, leaseInfo?.leaseId);
|
|
252
256
|
return {
|
|
253
257
|
leaseId: renewal.leaseId,
|
|
254
258
|
leaseExpiresAt: new Date(renewal.leaseExpiresAt),
|
|
@@ -276,6 +280,23 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
276
280
|
let headerBox = null;
|
|
277
281
|
let messageLogBox = null;
|
|
278
282
|
let inputBox = null;
|
|
283
|
+
// Get userAddress from private key first (required for all chat operations)
|
|
284
|
+
try {
|
|
285
|
+
const privateKey = config.getPrivateKey();
|
|
286
|
+
if (privateKey) {
|
|
287
|
+
const account = privateKeyToAccount(privateKey);
|
|
288
|
+
userAddress = account.address;
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
throw new Error("Private key not configured. Please run 'httpcat config' or set HTTPCAT_PRIVATE_KEY environment variable.");
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
if (error instanceof Error && error.message.includes("Private key")) {
|
|
296
|
+
throw error;
|
|
297
|
+
}
|
|
298
|
+
throw new Error("Failed to get user address from private key. Please check your configuration.");
|
|
299
|
+
}
|
|
279
300
|
// Join chat
|
|
280
301
|
try {
|
|
281
302
|
if (!jsonMode) {
|
|
@@ -286,24 +307,11 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
286
307
|
console.log(chalk.dim("Joining general chat room..."));
|
|
287
308
|
}
|
|
288
309
|
}
|
|
289
|
-
const joinResult = await joinChat(client, tokenIdentifier, jsonMode);
|
|
310
|
+
const joinResult = await joinChat(client, userAddress, tokenIdentifier, jsonMode);
|
|
290
311
|
leaseInfo = {
|
|
291
312
|
leaseId: joinResult.leaseId,
|
|
292
313
|
leaseExpiresAt: new Date(joinResult.leaseExpiresAt),
|
|
293
314
|
};
|
|
294
|
-
// Initialize userAddress from config if available (fallback until first message)
|
|
295
|
-
if (!userAddress) {
|
|
296
|
-
try {
|
|
297
|
-
const privateKey = config.getPrivateKey();
|
|
298
|
-
if (privateKey) {
|
|
299
|
-
const account = privateKeyToAccount(privateKey);
|
|
300
|
-
userAddress = account.address;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
// Ignore - will be set from first message send
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
315
|
if (jsonMode) {
|
|
308
316
|
// JSON mode: output join result and stream messages as JSON
|
|
309
317
|
console.log(JSON.stringify({
|
|
@@ -918,7 +926,7 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
918
926
|
try {
|
|
919
927
|
inputBox?.setValue("⏱️ Renewing lease...");
|
|
920
928
|
screen?.render();
|
|
921
|
-
const renewal = await renewLease(client, leaseInfo?.leaseId);
|
|
929
|
+
const renewal = await renewLease(client, userAddress, leaseInfo?.leaseId);
|
|
922
930
|
leaseInfo = {
|
|
923
931
|
leaseId: renewal.leaseId,
|
|
924
932
|
leaseExpiresAt: new Date(renewal.leaseExpiresAt),
|
|
@@ -1260,7 +1268,7 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
1260
1268
|
pulseIntervals.set(tempMessageId, pulseInterval);
|
|
1261
1269
|
try {
|
|
1262
1270
|
// Ensure lease is valid before sending
|
|
1263
|
-
leaseInfo = await ensureLeaseValid(client, leaseInfo, messageLogBox || undefined, screen || undefined);
|
|
1271
|
+
leaseInfo = await ensureLeaseValid(client, userAddress, leaseInfo, messageLogBox || undefined, screen || undefined);
|
|
1264
1272
|
if (headerBox) {
|
|
1265
1273
|
updateHeaderBox(headerBox, leaseInfo, tokenIdentifier, true);
|
|
1266
1274
|
screen?.render();
|
|
@@ -1270,7 +1278,7 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
1270
1278
|
if (!ws || ws.readyState !== 1) {
|
|
1271
1279
|
throw new Error("WebSocket connection lost. Please wait for reconnection.");
|
|
1272
1280
|
}
|
|
1273
|
-
const result = await sendChatMessage(client, trimmed, leaseInfo.leaseId);
|
|
1281
|
+
const result = await sendChatMessage(client, trimmed, leaseInfo.leaseId, userAddress);
|
|
1274
1282
|
userAddress = result.author;
|
|
1275
1283
|
// Track this message
|
|
1276
1284
|
pendingMessages.set(result.messageId, tempMessageId);
|
|
@@ -1330,7 +1338,7 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
1330
1338
|
case "/renew": {
|
|
1331
1339
|
try {
|
|
1332
1340
|
console.log(chalk.yellow("⏱️ Renewing lease..."));
|
|
1333
|
-
const renewal = await renewLease(client, leaseInfo?.leaseId);
|
|
1341
|
+
const renewal = await renewLease(client, userAddress, leaseInfo?.leaseId);
|
|
1334
1342
|
leaseInfo = {
|
|
1335
1343
|
leaseId: renewal.leaseId,
|
|
1336
1344
|
leaseExpiresAt: new Date(renewal.leaseExpiresAt),
|
|
@@ -1553,13 +1561,12 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
1553
1561
|
currentInput = trimmed;
|
|
1554
1562
|
try {
|
|
1555
1563
|
// Ensure lease is valid before sending
|
|
1556
|
-
leaseInfo = await ensureLeaseValid(client, leaseInfo, undefined, undefined);
|
|
1564
|
+
leaseInfo = await ensureLeaseValid(client, userAddress, leaseInfo, undefined, undefined);
|
|
1557
1565
|
// Double-check websocket is still connected
|
|
1558
1566
|
if (!ws || ws.readyState !== 1) {
|
|
1559
1567
|
throw new Error("WebSocket connection lost. Please wait for reconnection.");
|
|
1560
1568
|
}
|
|
1561
|
-
const result = await sendChatMessage(client, trimmed, leaseInfo.leaseId);
|
|
1562
|
-
userAddress = result.author;
|
|
1569
|
+
const result = await sendChatMessage(client, trimmed, leaseInfo.leaseId, userAddress);
|
|
1563
1570
|
// Track this message
|
|
1564
1571
|
const tempMessageId = `pending-${Date.now()}-${Math.random()}`;
|
|
1565
1572
|
pendingMessages.set(result.messageId, tempMessageId);
|
|
@@ -1689,7 +1696,7 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
1689
1696
|
case '/renew': {
|
|
1690
1697
|
try {
|
|
1691
1698
|
console.log(JSON.stringify({ type: 'renewing_lease' }));
|
|
1692
|
-
const renewal = await renewLease(client, leaseInfo?.leaseId);
|
|
1699
|
+
const renewal = await renewLease(client, userAddress, leaseInfo?.leaseId);
|
|
1693
1700
|
leaseInfo = {
|
|
1694
1701
|
leaseId: renewal.leaseId,
|
|
1695
1702
|
leaseExpiresAt: new Date(renewal.leaseExpiresAt),
|
|
@@ -1835,12 +1842,11 @@ export async function startChatStream(client, jsonMode = false, tokenIdentifier,
|
|
|
1835
1842
|
// Send message
|
|
1836
1843
|
isSending = true;
|
|
1837
1844
|
try {
|
|
1838
|
-
leaseInfo = await ensureLeaseValid(client, leaseInfo, undefined, undefined);
|
|
1845
|
+
leaseInfo = await ensureLeaseValid(client, userAddress, leaseInfo, undefined, undefined);
|
|
1839
1846
|
if (!ws || ws.readyState !== 1) {
|
|
1840
1847
|
throw new Error("WebSocket connection lost. Please wait for reconnection.");
|
|
1841
1848
|
}
|
|
1842
|
-
const result = await sendChatMessage(client, messageText, leaseInfo.leaseId);
|
|
1843
|
-
userAddress = result.author;
|
|
1849
|
+
const result = await sendChatMessage(client, messageText, leaseInfo.leaseId, userAddress);
|
|
1844
1850
|
// Track this message
|
|
1845
1851
|
const tempMessageId = `pending-${Date.now()}-${Math.random()}`;
|
|
1846
1852
|
pendingMessages.set(result.messageId, tempMessageId);
|