codevf 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +6 -2
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +26 -27
- package/dist/commands/setup.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/api/client.d.ts +5 -5
- package/dist/lib/api/client.d.ts.map +1 -1
- package/dist/lib/api/client.js.map +1 -1
- package/dist/lib/api/projects.js +1 -1
- package/dist/lib/api/projects.js.map +1 -1
- package/dist/lib/api/tasks.d.ts +22 -15
- package/dist/lib/api/tasks.d.ts.map +1 -1
- package/dist/lib/api/tasks.js +13 -4
- package/dist/lib/api/tasks.js.map +1 -1
- package/dist/lib/api/websocket.d.ts +1 -1
- package/dist/lib/api/websocket.d.ts.map +1 -1
- package/dist/lib/auth/token-manager.d.ts.map +1 -1
- package/dist/lib/utils/logger.d.ts +5 -4
- package/dist/lib/utils/logger.d.ts.map +1 -1
- package/dist/lib/utils/logger.js +14 -4
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/chat.d.ts +2 -7
- package/dist/mcp/tools/chat.d.ts.map +1 -1
- package/dist/mcp/tools/chat.js +35 -35
- package/dist/mcp/tools/chat.js.map +1 -1
- package/dist/mcp/tools/instant.d.ts +2 -7
- package/dist/mcp/tools/instant.d.ts.map +1 -1
- package/dist/mcp/tools/instant.js +7 -9
- package/dist/mcp/tools/instant.js.map +1 -1
- package/dist/mcp/tools/listen.d.ts +2 -7
- package/dist/mcp/tools/listen.d.ts.map +1 -1
- package/dist/mcp/tools/listen.js +37 -44
- package/dist/mcp/tools/listen.js.map +1 -1
- package/dist/mcp/tools/task-checker.d.ts.map +1 -1
- package/dist/mcp/tools/task-checker.js.map +1 -1
- package/dist/mcp/tools/tunnel.d.ts +4 -14
- package/dist/mcp/tools/tunnel.d.ts.map +1 -1
- package/dist/mcp/tools/tunnel.js +2 -1
- package/dist/mcp/tools/tunnel.js.map +1 -1
- package/dist/modules/constants.d.ts +1 -1
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +19 -1
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/tunnel.d.ts.map +1 -1
- package/dist/modules/tunnel.js +3 -2
- package/dist/modules/tunnel.js.map +1 -1
- package/dist/prompts/cvf.d.ts +4 -0
- package/dist/prompts/cvf.d.ts.map +1 -0
- package/dist/prompts/cvf.js +175 -0
- package/dist/prompts/cvf.js.map +1 -0
- package/dist/utils/version-check.d.ts +12 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +61 -0
- package/dist/utils/version-check.js.map +1 -0
- package/package.json +13 -8
package/dist/mcp/tools/listen.js
CHANGED
|
@@ -41,57 +41,50 @@ export class ListenTool {
|
|
|
41
41
|
* Monitor a specific session
|
|
42
42
|
*/
|
|
43
43
|
async monitorSession(sessionId, verbose) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
output += 'Messages will appear as they are sent.\n';
|
|
54
|
-
}
|
|
55
|
-
return {
|
|
56
|
-
content: [
|
|
57
|
-
{
|
|
58
|
-
type: 'text',
|
|
59
|
-
text: output,
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
throw error;
|
|
44
|
+
// Get session details (this would be implemented via API)
|
|
45
|
+
const sessionUrl = `${this.baseUrl}/session/${sessionId}`;
|
|
46
|
+
let output = `Monitoring session: ${sessionId}\n\n`;
|
|
47
|
+
output += `Session URL: ${sessionUrl}\n`;
|
|
48
|
+
output += `Status: Active\n`;
|
|
49
|
+
output += `Last updated: ${new Date().toLocaleTimeString()}\n\n`;
|
|
50
|
+
if (verbose) {
|
|
51
|
+
output += 'Connection established. Waiting for engineer updates...\n';
|
|
52
|
+
output += 'Messages will appear as they are sent.\n';
|
|
66
53
|
}
|
|
54
|
+
return {
|
|
55
|
+
content: [
|
|
56
|
+
{
|
|
57
|
+
type: 'text',
|
|
58
|
+
text: output,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
67
62
|
}
|
|
68
63
|
/**
|
|
69
64
|
* List all active sessions for the current user
|
|
70
65
|
*/
|
|
71
66
|
async listActiveSessions(verbose) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
output += '
|
|
83
|
-
return {
|
|
84
|
-
content: [
|
|
85
|
-
{
|
|
86
|
-
type: 'text',
|
|
87
|
-
text: output,
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
throw error;
|
|
67
|
+
let output = 'Active Chat Sessions:\n\n';
|
|
68
|
+
// Note: Fetching all active sessions would require a list endpoint
|
|
69
|
+
// For now, provide guidance on how to monitor sessions
|
|
70
|
+
output += 'To monitor a specific chat session, use:\n';
|
|
71
|
+
output += ' codevf-listen <sessionId>\n\n';
|
|
72
|
+
output += 'Chat sessions are created using codevf-chat tool.\n';
|
|
73
|
+
output += 'Each session provides a URL for real-time monitoring.\n\n';
|
|
74
|
+
output += 'Session URLs follow this format:\n';
|
|
75
|
+
output += ` ${this.baseUrl}/session/<sessionId>\n\n`;
|
|
76
|
+
if (verbose) {
|
|
77
|
+
output += 'Tip: Use verbose mode to show connection status updates.\n\n';
|
|
94
78
|
}
|
|
79
|
+
output += 'Share these URLs with team members to collaborate on debugging sessions.';
|
|
80
|
+
return {
|
|
81
|
+
content: [
|
|
82
|
+
{
|
|
83
|
+
type: 'text',
|
|
84
|
+
text: output,
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
};
|
|
95
88
|
}
|
|
96
89
|
}
|
|
97
90
|
//# sourceMappingURL=listen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../../src/mcp/tools/listen.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../../src/mcp/tools/listen.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAUnD,MAAM,OAAO,UAAU;IAIrB,YAAY,QAAkB,EAAE,OAAe;QAC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,IAAoB;QAChC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAEtE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,2BAA2B;gBAC3B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,2BAA2B;gBAC3B,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAE5C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAW,KAAe,CAAC,OAAO,EAAE;qBAC3C;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,SAAiB,EACjB,OAAgB;QAEhB,0DAA0D;QAC1D,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,OAAO,YAAY,SAAS,EAAE,CAAC;QAE1D,IAAI,MAAM,GAAG,uBAAuB,SAAS,MAAM,CAAC;QACpD,MAAM,IAAI,gBAAgB,UAAU,IAAI,CAAC;QACzC,MAAM,IAAI,kBAAkB,CAAC;QAC7B,MAAM,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,MAAM,CAAC;QAEjE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,2DAA2D,CAAC;YACtE,MAAM,IAAI,0CAA0C,CAAC;QACvD,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,OAAgB;QAC/C,IAAI,MAAM,GAAG,2BAA2B,CAAC;QAEzC,mEAAmE;QACnE,uDAAuD;QACvD,MAAM,IAAI,4CAA4C,CAAC;QACvD,MAAM,IAAI,iCAAiC,CAAC;QAC5C,MAAM,IAAI,qDAAqD,CAAC;QAChE,MAAM,IAAI,2DAA2D,CAAC;QACtE,MAAM,IAAI,oCAAoC,CAAC;QAC/C,MAAM,IAAI,KAAK,IAAI,CAAC,OAAO,0BAA0B,CAAC;QAEtD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,8DAA8D,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,0EAA0E,CAAC;QAErF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-checker.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"task-checker.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE;QACT,MAAM,EAAE,mBAAmB,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE;YACZ,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,OAAO,EAAE;YACP,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,OAAO,EAAE,KAAK,CAAC;YACb,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;YAC9C,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACJ,CAAC;CACH;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,QAAQ,EAAE,SAAS,GAAG,MAAM,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,CAAC,CAuE1B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAQnF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,SAAS,GAAG,MAAM,GAC9B,OAAO,CAAC;IACT,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE,CAAC,CAiDD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-checker.js","sourceRoot":"","sources":["../../../src/mcp/tools/task-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"task-checker.js","sourceRoot":"","sources":["../../../src/mcp/tools/task-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tunnel Tool - Create localtunnel for local dev server access
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
export interface TunnelToolArgs {
|
|
5
6
|
port: number;
|
|
6
7
|
subdomain?: string;
|
|
7
8
|
reason?: string;
|
|
8
9
|
}
|
|
10
|
+
export type TunnelToolResult = CallToolResult;
|
|
9
11
|
export declare class TunnelTool {
|
|
10
12
|
private tunnelManager;
|
|
11
13
|
private activeTunnels;
|
|
12
14
|
constructor();
|
|
13
|
-
execute(args:
|
|
14
|
-
content: {
|
|
15
|
-
type: string;
|
|
16
|
-
text: string;
|
|
17
|
-
}[];
|
|
18
|
-
isError: boolean;
|
|
19
|
-
} | {
|
|
20
|
-
content: {
|
|
21
|
-
type: string;
|
|
22
|
-
text: string;
|
|
23
|
-
}[];
|
|
24
|
-
isError?: undefined;
|
|
25
|
-
}>;
|
|
15
|
+
execute(args: TunnelToolArgs): Promise<TunnelToolResult>;
|
|
26
16
|
/**
|
|
27
17
|
* Close all active tunnels
|
|
28
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/tunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/tunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE9C,qBAAa,UAAU;IACrB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAkE;;IAOjF,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiF9D;;OAEG;IACG,QAAQ;IAYd;;OAEG;IACH,gBAAgB;;;;CAMjB"}
|
package/dist/mcp/tools/tunnel.js
CHANGED
|
@@ -70,11 +70,12 @@ export class TunnelTool {
|
|
|
70
70
|
}
|
|
71
71
|
catch (error) {
|
|
72
72
|
logger.error('Failed to create tunnel', error);
|
|
73
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
73
74
|
return {
|
|
74
75
|
content: [
|
|
75
76
|
{
|
|
76
77
|
type: 'text',
|
|
77
|
-
text: `❌ Failed to create tunnel: ${
|
|
78
|
+
text: `❌ Failed to create tunnel: ${message}\n\nCommon issues:\n- Port ${port} may not be in use\n- Firewall blocking connections\n- Localtunnel service temporarily unavailable`,
|
|
78
79
|
},
|
|
79
80
|
],
|
|
80
81
|
isError: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../../src/mcp/tools/tunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../../src/mcp/tools/tunnel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/modules/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/modules/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,eAAO,MAAM,WAAW,QAAuB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B,sEAAsE;;IAEtE,oEAAoE;;IAEpE,0EAA0E;;IAE1E,gDAAgD;;IAEhD,mDAAmD;;CAE3C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,wCAAwC;;IAExC,mDAAmD;;CAE3C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB,+CAA+C;;IAE/C,8CAA8C;;IAE9C,qCAAqC;;IAErC,kCAAkC;;IAElC,kCAAkC;;CAE1B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,EAAE;IACb,mDAAmD;;IAEnD,6BAA6B;;IAE7B,oCAAoC;;CAE5B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC"}
|
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Application-wide constants and configuration values
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
import fs from 'fs';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import { fileURLToPath } from 'url';
|
|
7
|
+
function loadPackageVersion() {
|
|
8
|
+
try {
|
|
9
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
const packageJsonPath = path.resolve(moduleDir, '..', '..', 'package.json');
|
|
11
|
+
const content = fs.readFileSync(packageJsonPath, 'utf8');
|
|
12
|
+
const parsed = JSON.parse(content);
|
|
13
|
+
if (parsed.version && typeof parsed.version === 'string') {
|
|
14
|
+
return parsed.version;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
// Best-effort: fall back to an unknown version string.
|
|
19
|
+
}
|
|
20
|
+
return '0.0.0';
|
|
21
|
+
}
|
|
22
|
+
export const CLI_VERSION = loadPackageVersion();
|
|
5
23
|
/**
|
|
6
24
|
* Paste detection configuration
|
|
7
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/modules/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/modules/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAyB,CAAC;QAC3D,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,sEAAsE;IACtE,YAAY,EAAE,EAAE;IAChB,oEAAoE;IACpE,MAAM,EAAE,GAAG;IACX,0EAA0E;IAC1E,gBAAgB,EAAE,GAAG;IACrB,gDAAgD;IAChD,iBAAiB,EAAE,IAAI;IACvB,mDAAmD;IACnD,mBAAmB,EAAE,GAAG;CAChB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,wCAAwC;IACxC,iBAAiB,EAAE,IAAI;IACvB,mDAAmD;IACnD,sBAAsB,EAAE,EAAE;CAClB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,+CAA+C;IAC/C,kBAAkB,EAAE,CAAC;IACrB,8CAA8C;IAC9C,kBAAkB,EAAE,EAAE;IACtB,qCAAqC;IACrC,iBAAiB,EAAE,CAAC;IACpB,kCAAkC;IAClC,eAAe,EAAE,CAAC;IAClB,kCAAkC;IAClC,eAAe,EAAE,GAAG;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,mDAAmD;IACnD,oBAAoB,EAAE,CAAC;IACvB,6BAA6B;IAC7B,sBAAsB,EAAE,CAAC;IACzB,oCAAoC;IACpC,SAAS,EAAE,EAAE;CACL,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,UAAU;IAClB,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,QAAQ;CACN,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,GAAG;IACV,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC9D,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IACjC,qBAAqB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC;CACjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../src/modules/tunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;OAGG;YACW,mBAAmB;IAmDjC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../src/modules/tunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;OAGG;YACW,mBAAmB;IAmDjC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAkDjE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAItC;;OAEG;IACH,QAAQ,IAAI,OAAO;CAGpB"}
|
package/dist/modules/tunnel.js
CHANGED
|
@@ -102,8 +102,9 @@ export class TunnelManager extends EventEmitter {
|
|
|
102
102
|
return this.activeTunnel;
|
|
103
103
|
}
|
|
104
104
|
catch (error) {
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
106
|
+
console.error('Failed to create tunnel:', message);
|
|
107
|
+
throw new Error(`Tunnel creation failed: ${message}`);
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../src/modules/tunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,WAAW,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,OAAO,aAAc,SAAQ,YAAY;IAA/C;;QACU,WAAM,GAAkB,IAAI,CAAC;QAC7B,iBAAY,GAAwB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../src/modules/tunnel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,WAAW,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,OAAO,aAAc,SAAQ,YAAY;IAA/C;;QACU,WAAM,GAAkB,IAAI,CAAC;QAC7B,iBAAY,GAAwB,IAAI,CAAC;IAwInD,CAAC;IAtIC;;;OAGG;IACK,KAAK,CAAC,mBAAmB;QAC/B,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAiB,IAAI,CAAC;QAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC7D,KAAK;yBACF,GAAG,CAAC,kCAAkC,EAAE,CAAC,GAAG,EAAE,EAAE;wBAC/C,iDAAiD;wBACjD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;4BAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,aAAa,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC;4BACtF,0CAA0C;4BAC1C,GAAG,CAAC,MAAM,EAAE,CAAC;4BACb,OAAO;wBACT,CAAC;wBAED,IAAI,IAAI,GAAG,EAAE,CAAC;wBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;4BACvB,IAAI,IAAI,KAAK,CAAC;wBAChB,CAAC,CAAC,CAAC;wBACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;4BACjB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;4BAC5B,IAAI,OAAO,EAAE,CAAC;gCACZ,OAAO,CAAC,OAAO,CAAC,CAAC;4BACnB,CAAC;iCAAM,CAAC;gCACN,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;4BAC/C,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC;yBACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;wBACnB,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,OAAO,CAAC,KAAK,CAAC,4CAA4C,OAAO,IAAI,UAAU,IAAI,EAAE,GAAG,CAAC,CAAC;gBAE1F,iFAAiF;gBACjF,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,IAAI,KAAK,CAAC,4DAA4D,SAAS,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;IACvH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAsB;QACvC,+BAA+B;QAC/B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,aAAa,GAAyC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACnF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,aAAa,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;YAE/C,uEAAuE;YACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAElD,IAAI,CAAC,YAAY,GAAG;gBAClB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,4DAA4D;aACvE,CAAC;YAEF,uBAAuB;YACvB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACxB,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const commandContent = "---\ndescription: Ask a CodeVF engineer for help with code validation, debugging, or technical questions\n---\n\n# CodeVF Engineer Assistance\n\nPlease help me with the following question or task by consulting a CodeVF engineer using the appropriate MCP tool:\n\n**My request:**\n{{PROMPT}}\n\n---\n\n**Available CodeVF Commands:**\n- `codevf setup` - Configure MCP server for Claude Code, Codex, and Gemini\n- `codevf mcp stdio` - Start MCP server over stdio\n- `codevf mcp http --port 3333` - Start MCP server over HTTP/SSE\n\n**Instructions for Claude:**\n\n1. **Analyze the request** to determine which CodeVF tool is most appropriate:\n - Use `codevf-instant` for:\n - Quick validation questions (1-10 credits, ~2 min response)\n - \"Does this fix work?\"\n - \"Is this approach correct?\"\n - \"Can you identify the error?\"\n - UI/visual verification and feedback\n - Simple technical questions\n\n - Use `codevf-chat` for:\n - Complex debugging requiring back-and-forth (4-1920 credits, 2 credits/min)\n - Multi-step troubleshooting\n - Architecture discussions\n - Extended collaboration\n\n - Use `codevf-tunnel` for:\n - Creating secure tunnels to expose local dev servers\n - Testing webhooks, OAuth callbacks, or external integrations\n - Sharing local development environment with engineers\n - No credits required - tunnel remains active for session\n\n2. **For UI/Visual Development Tasks** (Pain-Free Experience):\n\n When implementing UI changes or visual features, follow this iterative flow:\n\n **Step 1 - Initial Implementation:**\n - Make the requested changes to code/styles\n - Create tunnel if needed: `codevf-tunnel` with dev server port\n - Share tunnel URL for visual verification\n\n **Step 2 - Engineer Verification:**\n - Use `codevf-instant` with message like:\n \"Please verify this UI change via [tunnel-url] (password: [password]). Does it match the requested design/functionality?\"\n - **Always include both URL and password** - localtunnel requires password to bypass landing page\n - Include specific areas of focus (layout, spacing, colors, interactions)\n - Allow 5-8 credits for visual review and feedback\n\n **Step 3 - Iterative Refinement:**\n - Apply engineer feedback immediately\n - Use `codevf-instant` again for re-verification:\n \"Applied your feedback (reduced padding to 16px). Please check if this looks better now at [tunnel-url] (same password).\"\n - Continue this cycle until engineer confirms it looks right\n - Each feedback cycle: 3-5 credits\n\n **Example UI Flow:**\n ```\n User: \"Make the UI look like a modern card layout\"\n\n Claude:\n 1. Implements card styling\n 2. Creates tunnel \u2192 https://abc123.loca.lt (password: xyz789)\n 3. codevf-instant: \"Please review the card layout at https://abc123.loca.lt\n (password: xyz789). Does it look modern and clean? Any spacing/styling issues?\" (5 credits)\n\n Engineer: \"Cards look good but margins are too large, reduce to 16px\"\n\n Claude:\n 4. Updates margins to 16px\n 5. codevf-instant: \"Applied 16px margins. Please verify the spacing\n looks better now at https://abc123.loca.lt (password: xyz789).\" (3 credits)\n\n Engineer: \"Perfect! The spacing looks much cleaner now.\"\n ```\n\n3. **Use the appropriate tool:**\n - For instant queries: Call `codevf-instant` with the message and appropriate maxCredits (1-10)\n - For extended sessions: Call `codevf-chat` with the message and appropriate maxCredits (suggest 240 for ~2 hours)\n - For tunnel access: Call `codevf-tunnel` with the port number (e.g., { \"port\": 3000 })\n\n4. **Present the response:**\n - For instant queries: Share the engineer's response directly\n - For chat sessions: Provide the session URL so the user can monitor the conversation\n - For tunnels: Share the public URL that was created\n\n**Credit Guidelines:**\n- Instant validation: 1-10 credits (typically 3-5 credits per question)\n- UI verification: 5-8 credits for initial review, 3-5 credits for follow-up checks\n- Extended chat: 2 credits per minute (240 credits = 2 hours)\n- Tunnel creation: Free (no credits required)\n\n**Planning Integration for Complex Tasks:**\nWhen Claude is planning multi-step implementations, especially UI-heavy tasks:\n- Always include \"Engineer verification checkpoints\" in the plan\n- Budget credits for iterative feedback (typically 15-25 credits total for UI refinement)\n- Create tunnel early in the process for continuous visual validation\n- Plan for 2-4 feedback cycles to achieve the desired result\n\n**Example Usage:**\n- `/cvf Does this authentication fix prevent the timing attack?` \u2192 Use codevf-instant\n- `/cvf Complex race condition in WebSocket reconnection needs debugging` \u2192 Use codevf-chat\n- `/cvf Create tunnel to my dev server on port 3000` \u2192 Use codevf-tunnel\n- `/cvf Make the login form look more modern and user-friendly` \u2192 Use tunnel + iterative codevf-instant feedback\n";
|
|
2
|
+
export declare const chatCommandContent = "---\ndescription: Start an extended CodeVF engineer chat session with full context\n---\n\n# CodeVF Engineer Chat\n\nPlease start an extended debugging session with a CodeVF engineer using the `codevf-chat` MCP tool.\n\n**Current context (include relevant logs, errors, and recent changes):**\n{{PROMPT}}\n\n---\n\n**Instructions for Claude:**\n\n1. Ask a short clarifying question if needed: \"What's the issue?\"\n2. Call `codevf-chat` with:\n - `message`: include the user's issue and any gathered context\n - `maxCredits`: suggest 240 (or adjust if user specifies)\n3. Return the engineer response or session link directly.\n";
|
|
3
|
+
export declare const perfCommandContent = "---\ndescription: Get performance-focused review or optimization guidance from a CodeVF engineer\n---\n\n# CodeVF Performance Review\n\nPlease help me improve performance by consulting a CodeVF engineer using the appropriate MCP tool.\n\n**Current context (include benchmarks, profiler output, metrics, and hot paths):**\n{{PROMPT}}\n\n---\n\n**Instructions for Claude:**\n\n1. **Clarify the goal** quickly if needed:\n - Target metric (latency, throughput, memory, CPU, bundle size)\n - Expected vs current numbers\n - Environment (prod/dev, hardware, dataset size)\n\n2. **Pick the right tool:**\n - Use `codevf-instant` for:\n - Single bottleneck checks\n - Quick sanity check on a proposed optimization\n - Small profiling/benchmark interpretation\n - Use `codevf-chat` for:\n - Multi-step profiling/measurement plans\n - Architecture or algorithm changes\n - End-to-end tuning across layers\n\n3. **Provide actionable context to the engineer:**\n - Exact code paths or files\n - Repro steps and dataset sizes\n - Any profiling data or flamegraphs\n - Deployment/runtime constraints\n\n4. **Ask for measurable outcomes:**\n - Request concrete steps and expected impact\n - Ask for validation approach (before/after metrics)\n";
|
|
4
|
+
//# sourceMappingURL=cvf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cvf.d.ts","sourceRoot":"","sources":["../../src/prompts/cvf.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,+8JAgH1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,8nBAoB9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,gwCAuC9B,CAAC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
export const commandContent = `---
|
|
2
|
+
description: Ask a CodeVF engineer for help with code validation, debugging, or technical questions
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CodeVF Engineer Assistance
|
|
6
|
+
|
|
7
|
+
Please help me with the following question or task by consulting a CodeVF engineer using the appropriate MCP tool:
|
|
8
|
+
|
|
9
|
+
**My request:**
|
|
10
|
+
{{PROMPT}}
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
**Available CodeVF Commands:**
|
|
15
|
+
- \`codevf setup\` - Configure MCP server for Claude Code, Codex, and Gemini
|
|
16
|
+
- \`codevf mcp stdio\` - Start MCP server over stdio
|
|
17
|
+
- \`codevf mcp http --port 3333\` - Start MCP server over HTTP/SSE
|
|
18
|
+
|
|
19
|
+
**Instructions for Claude:**
|
|
20
|
+
|
|
21
|
+
1. **Analyze the request** to determine which CodeVF tool is most appropriate:
|
|
22
|
+
- Use \`codevf-instant\` for:
|
|
23
|
+
- Quick validation questions (1-10 credits, ~2 min response)
|
|
24
|
+
- "Does this fix work?"
|
|
25
|
+
- "Is this approach correct?"
|
|
26
|
+
- "Can you identify the error?"
|
|
27
|
+
- UI/visual verification and feedback
|
|
28
|
+
- Simple technical questions
|
|
29
|
+
|
|
30
|
+
- Use \`codevf-chat\` for:
|
|
31
|
+
- Complex debugging requiring back-and-forth (4-1920 credits, 2 credits/min)
|
|
32
|
+
- Multi-step troubleshooting
|
|
33
|
+
- Architecture discussions
|
|
34
|
+
- Extended collaboration
|
|
35
|
+
|
|
36
|
+
- Use \`codevf-tunnel\` for:
|
|
37
|
+
- Creating secure tunnels to expose local dev servers
|
|
38
|
+
- Testing webhooks, OAuth callbacks, or external integrations
|
|
39
|
+
- Sharing local development environment with engineers
|
|
40
|
+
- No credits required - tunnel remains active for session
|
|
41
|
+
|
|
42
|
+
2. **For UI/Visual Development Tasks** (Pain-Free Experience):
|
|
43
|
+
|
|
44
|
+
When implementing UI changes or visual features, follow this iterative flow:
|
|
45
|
+
|
|
46
|
+
**Step 1 - Initial Implementation:**
|
|
47
|
+
- Make the requested changes to code/styles
|
|
48
|
+
- Create tunnel if needed: \`codevf-tunnel\` with dev server port
|
|
49
|
+
- Share tunnel URL for visual verification
|
|
50
|
+
|
|
51
|
+
**Step 2 - Engineer Verification:**
|
|
52
|
+
- Use \`codevf-instant\` with message like:
|
|
53
|
+
"Please verify this UI change via [tunnel-url] (password: [password]). Does it match the requested design/functionality?"
|
|
54
|
+
- **Always include both URL and password** - localtunnel requires password to bypass landing page
|
|
55
|
+
- Include specific areas of focus (layout, spacing, colors, interactions)
|
|
56
|
+
- Allow 5-8 credits for visual review and feedback
|
|
57
|
+
|
|
58
|
+
**Step 3 - Iterative Refinement:**
|
|
59
|
+
- Apply engineer feedback immediately
|
|
60
|
+
- Use \`codevf-instant\` again for re-verification:
|
|
61
|
+
"Applied your feedback (reduced padding to 16px). Please check if this looks better now at [tunnel-url] (same password)."
|
|
62
|
+
- Continue this cycle until engineer confirms it looks right
|
|
63
|
+
- Each feedback cycle: 3-5 credits
|
|
64
|
+
|
|
65
|
+
**Example UI Flow:**
|
|
66
|
+
\`\`\`
|
|
67
|
+
User: "Make the UI look like a modern card layout"
|
|
68
|
+
|
|
69
|
+
Claude:
|
|
70
|
+
1. Implements card styling
|
|
71
|
+
2. Creates tunnel → https://abc123.loca.lt (password: xyz789)
|
|
72
|
+
3. codevf-instant: "Please review the card layout at https://abc123.loca.lt
|
|
73
|
+
(password: xyz789). Does it look modern and clean? Any spacing/styling issues?" (5 credits)
|
|
74
|
+
|
|
75
|
+
Engineer: "Cards look good but margins are too large, reduce to 16px"
|
|
76
|
+
|
|
77
|
+
Claude:
|
|
78
|
+
4. Updates margins to 16px
|
|
79
|
+
5. codevf-instant: "Applied 16px margins. Please verify the spacing
|
|
80
|
+
looks better now at https://abc123.loca.lt (password: xyz789)." (3 credits)
|
|
81
|
+
|
|
82
|
+
Engineer: "Perfect! The spacing looks much cleaner now."
|
|
83
|
+
\`\`\`
|
|
84
|
+
|
|
85
|
+
3. **Use the appropriate tool:**
|
|
86
|
+
- For instant queries: Call \`codevf-instant\` with the message and appropriate maxCredits (1-10)
|
|
87
|
+
- For extended sessions: Call \`codevf-chat\` with the message and appropriate maxCredits (suggest 240 for ~2 hours)
|
|
88
|
+
- For tunnel access: Call \`codevf-tunnel\` with the port number (e.g., { "port": 3000 })
|
|
89
|
+
|
|
90
|
+
4. **Present the response:**
|
|
91
|
+
- For instant queries: Share the engineer's response directly
|
|
92
|
+
- For chat sessions: Provide the session URL so the user can monitor the conversation
|
|
93
|
+
- For tunnels: Share the public URL that was created
|
|
94
|
+
|
|
95
|
+
**Credit Guidelines:**
|
|
96
|
+
- Instant validation: 1-10 credits (typically 3-5 credits per question)
|
|
97
|
+
- UI verification: 5-8 credits for initial review, 3-5 credits for follow-up checks
|
|
98
|
+
- Extended chat: 2 credits per minute (240 credits = 2 hours)
|
|
99
|
+
- Tunnel creation: Free (no credits required)
|
|
100
|
+
|
|
101
|
+
**Planning Integration for Complex Tasks:**
|
|
102
|
+
When Claude is planning multi-step implementations, especially UI-heavy tasks:
|
|
103
|
+
- Always include "Engineer verification checkpoints" in the plan
|
|
104
|
+
- Budget credits for iterative feedback (typically 15-25 credits total for UI refinement)
|
|
105
|
+
- Create tunnel early in the process for continuous visual validation
|
|
106
|
+
- Plan for 2-4 feedback cycles to achieve the desired result
|
|
107
|
+
|
|
108
|
+
**Example Usage:**
|
|
109
|
+
- \`/cvf Does this authentication fix prevent the timing attack?\` → Use codevf-instant
|
|
110
|
+
- \`/cvf Complex race condition in WebSocket reconnection needs debugging\` → Use codevf-chat
|
|
111
|
+
- \`/cvf Create tunnel to my dev server on port 3000\` → Use codevf-tunnel
|
|
112
|
+
- \`/cvf Make the login form look more modern and user-friendly\` → Use tunnel + iterative codevf-instant feedback
|
|
113
|
+
`;
|
|
114
|
+
export const chatCommandContent = `---
|
|
115
|
+
description: Start an extended CodeVF engineer chat session with full context
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
# CodeVF Engineer Chat
|
|
119
|
+
|
|
120
|
+
Please start an extended debugging session with a CodeVF engineer using the \`codevf-chat\` MCP tool.
|
|
121
|
+
|
|
122
|
+
**Current context (include relevant logs, errors, and recent changes):**
|
|
123
|
+
{{PROMPT}}
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
**Instructions for Claude:**
|
|
128
|
+
|
|
129
|
+
1. Ask a short clarifying question if needed: "What's the issue?"
|
|
130
|
+
2. Call \`codevf-chat\` with:
|
|
131
|
+
- \`message\`: include the user's issue and any gathered context
|
|
132
|
+
- \`maxCredits\`: suggest 240 (or adjust if user specifies)
|
|
133
|
+
3. Return the engineer response or session link directly.
|
|
134
|
+
`;
|
|
135
|
+
export const perfCommandContent = `---
|
|
136
|
+
description: Get performance-focused review or optimization guidance from a CodeVF engineer
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
# CodeVF Performance Review
|
|
140
|
+
|
|
141
|
+
Please help me improve performance by consulting a CodeVF engineer using the appropriate MCP tool.
|
|
142
|
+
|
|
143
|
+
**Current context (include benchmarks, profiler output, metrics, and hot paths):**
|
|
144
|
+
{{PROMPT}}
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
**Instructions for Claude:**
|
|
149
|
+
|
|
150
|
+
1. **Clarify the goal** quickly if needed:
|
|
151
|
+
- Target metric (latency, throughput, memory, CPU, bundle size)
|
|
152
|
+
- Expected vs current numbers
|
|
153
|
+
- Environment (prod/dev, hardware, dataset size)
|
|
154
|
+
|
|
155
|
+
2. **Pick the right tool:**
|
|
156
|
+
- Use \`codevf-instant\` for:
|
|
157
|
+
- Single bottleneck checks
|
|
158
|
+
- Quick sanity check on a proposed optimization
|
|
159
|
+
- Small profiling/benchmark interpretation
|
|
160
|
+
- Use \`codevf-chat\` for:
|
|
161
|
+
- Multi-step profiling/measurement plans
|
|
162
|
+
- Architecture or algorithm changes
|
|
163
|
+
- End-to-end tuning across layers
|
|
164
|
+
|
|
165
|
+
3. **Provide actionable context to the engineer:**
|
|
166
|
+
- Exact code paths or files
|
|
167
|
+
- Repro steps and dataset sizes
|
|
168
|
+
- Any profiling data or flamegraphs
|
|
169
|
+
- Deployment/runtime constraints
|
|
170
|
+
|
|
171
|
+
4. **Ask for measurable outcomes:**
|
|
172
|
+
- Request concrete steps and expected impact
|
|
173
|
+
- Ask for validation approach (before/after metrics)
|
|
174
|
+
`;
|
|
175
|
+
//# sourceMappingURL=cvf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cvf.js","sourceRoot":"","sources":["../../src/prompts/cvf.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgH7B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;CAoBjC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCjC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type UpdateCheckResult = {
|
|
2
|
+
currentVersion: string;
|
|
3
|
+
latestVersion: string;
|
|
4
|
+
isOutdated: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function checkForUpdates(options: {
|
|
7
|
+
packageName?: string;
|
|
8
|
+
currentVersion: string;
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
}): Promise<UpdateCheckResult | null>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAyBF,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAsCpC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
function normalizeVersion(version) {
|
|
2
|
+
const cleaned = version.trim().replace(/^v/, '').split('-')[0];
|
|
3
|
+
if (!cleaned)
|
|
4
|
+
return null;
|
|
5
|
+
const parts = cleaned.split('.').map((segment) => Number(segment));
|
|
6
|
+
if (parts.some((part) => Number.isNaN(part)))
|
|
7
|
+
return null;
|
|
8
|
+
return parts;
|
|
9
|
+
}
|
|
10
|
+
function compareSemver(current, latest) {
|
|
11
|
+
const currentParts = normalizeVersion(current);
|
|
12
|
+
const latestParts = normalizeVersion(latest);
|
|
13
|
+
if (!currentParts || !latestParts)
|
|
14
|
+
return null;
|
|
15
|
+
const length = Math.max(currentParts.length, latestParts.length);
|
|
16
|
+
for (let i = 0; i < length; i += 1) {
|
|
17
|
+
const a = currentParts[i] ?? 0;
|
|
18
|
+
const b = latestParts[i] ?? 0;
|
|
19
|
+
if (a < b)
|
|
20
|
+
return -1;
|
|
21
|
+
if (a > b)
|
|
22
|
+
return 1;
|
|
23
|
+
}
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
export async function checkForUpdates(options) {
|
|
27
|
+
if (process.env.CODEVF_DISABLE_UPDATE_CHECK) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const packageName = options.packageName ?? 'codevf';
|
|
31
|
+
const currentVersion = options.currentVersion;
|
|
32
|
+
const timeoutMs = options.timeoutMs ?? 1500;
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
35
|
+
try {
|
|
36
|
+
const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`, {
|
|
37
|
+
headers: { accept: 'application/json' },
|
|
38
|
+
signal: controller.signal,
|
|
39
|
+
});
|
|
40
|
+
if (!response.ok)
|
|
41
|
+
return null;
|
|
42
|
+
const data = (await response.json());
|
|
43
|
+
if (!data.latest || typeof data.latest !== 'string')
|
|
44
|
+
return null;
|
|
45
|
+
const comparison = compareSemver(currentVersion, data.latest);
|
|
46
|
+
if (comparison === null)
|
|
47
|
+
return null;
|
|
48
|
+
return {
|
|
49
|
+
currentVersion,
|
|
50
|
+
latestVersion: data.latest,
|
|
51
|
+
isOutdated: comparison === -1,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
clearTimeout(timeout);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=version-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"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"}
|