fridayy 1.0.1 → 1.2.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.
package/README.md CHANGED
@@ -76,6 +76,9 @@ npx fridayy init
76
76
  ### 2. The 4-Step Developer Experience
77
77
 
78
78
  ```bash
79
+ # How-To & Architecture guide
80
+ fridayy use
81
+
79
82
  # Step 1: Initialize Fridayy configuration in your project
80
83
  fridayy init
81
84
 
@@ -94,6 +97,15 @@ fridayy start
94
97
 
95
98
  ---
96
99
 
100
+ ### 🤖 Pointing AI Assistants to Your Project
101
+
102
+ Simply point any LLM or AI agent (Cursor, Claude, ChatGPT, Gemini, Antigravity) to:
103
+ 👉 **[`point/AI_INSTRUCTIONS.md`](point/AI_INSTRUCTIONS.md)**
104
+
105
+ The AI will automatically understand your architecture, discover endpoints, generate tools, configure safe permissions, and run the MCP server autonomously!
106
+
107
+ ---
108
+
97
109
  ## 🏗️ Architecture
98
110
 
99
111
  fridayy is built with a modular, extensible architecture designed for future pluggability:
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Fridayy - Start Command
3
- * Boots the MCP server over Stdio or SSE transports.
3
+ * Boots the MCP server with animated startup diagnostics.
4
4
  */
5
5
  import { Command } from 'commander';
6
6
  export declare function registerStartCommand(program: Command): void;
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuD3D"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+D3D"}
@@ -1,19 +1,21 @@
1
1
  /**
2
2
  * Fridayy - Start Command
3
- * Boots the MCP server over Stdio or SSE transports.
3
+ * Boots the MCP server with animated startup diagnostics.
4
4
  */
5
5
  import chalk from 'chalk';
6
6
  import { defaultConfigManager } from '../../config/config-manager.js';
7
7
  import { FridayyMcpServer } from '../../mcp/server/fridayy-server.js';
8
8
  import { defaultAdapterRegistry } from '../../adapters/registry.js';
9
- import { getBanner } from '../ui/banner.js';
9
+ import { printBanner } from '../ui/banner.js';
10
+ import { runStartupAnimation } from '../ui/startup-animation.js';
10
11
  export function registerStartCommand(program) {
11
12
  program
12
13
  .command('start')
13
- .description('Start the Fridayy MCP server')
14
+ .description('Start the Fridayy MCP server with animated runtime diagnostics')
14
15
  .option('-t, --transport <type>', 'Transport mechanism: stdio or sse', 'stdio')
15
16
  .option('-p, --port <port>', 'Port number for SSE transport', '3000')
16
17
  .option('-h, --host <host>', 'Host address for SSE transport', 'localhost')
18
+ .option('--no-animation', 'Skip startup animation')
17
19
  .action(async (options) => {
18
20
  const rootDir = process.cwd();
19
21
  if (!defaultConfigManager.configExists(rootDir)) {
@@ -28,25 +30,32 @@ export function registerStartCommand(program) {
28
30
  adapterRegistry: defaultAdapterRegistry
29
31
  });
30
32
  const exposedTools = server.getToolRegistry().getExposedTools();
33
+ const transport = options.transport || config.server?.transport || 'stdio';
34
+ if (transport === 'sse' || process.stdout.isTTY) {
35
+ printBanner();
36
+ if (options.animation !== false) {
37
+ await runStartupAnimation();
38
+ }
39
+ }
31
40
  if (exposedTools.length === 0) {
32
41
  console.error(chalk.yellow('⚠ Warning: No tools are currently APPROVED. MCP clients will discover 0 tools.'));
33
42
  console.error(chalk.gray(' Run `fridayy review --approve-read` or `fridayy review --approve-all` to approve tools.'));
34
43
  }
35
- const transport = options.transport || config.server?.transport || 'stdio';
36
44
  if (transport === 'sse') {
37
45
  const port = parseInt(options.port || String(config.server?.port || 3000), 10);
38
46
  const host = options.host || config.server?.host || 'localhost';
39
- console.log(getBanner());
40
47
  console.log(chalk.green(`✓ Fridayy MCP Server (SSE) running at http://${host}:${port}`));
41
48
  console.log(chalk.cyan(` - SSE Endpoint: http://${host}:${port}/sse`));
42
49
  console.log(chalk.cyan(` - Messages Post: http://${host}:${port}/messages`));
43
50
  console.log(chalk.cyan(` - Health Check: http://${host}:${port}/health`));
44
- console.log(`\nExposing ${chalk.bold.green(exposedTools.length)} approved tools to MCP clients.`);
51
+ console.log(`\nExposing ${chalk.bold.green(exposedTools.length)} approved tools to MCP clients.\n`);
45
52
  await server.startSse(port, host);
46
53
  }
47
54
  else {
48
- // Stdio transport: Logs must go to stderr to preserve stdout for JSON-RPC
49
- console.error(chalk.cyan(`[fridayy] Stdio MCP Server started with ${exposedTools.length} approved tools.`));
55
+ // Stdio transport: Logs go to stderr to keep stdout pristine for JSON-RPC messages
56
+ if (!process.stdout.isTTY) {
57
+ console.error(chalk.cyan(`[fridayy] Stdio MCP Server active with ${exposedTools.length} approved tools.`));
58
+ }
50
59
  await server.startStdio();
51
60
  }
52
61
  });
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Fridayy - Use Command (How-To Guide & Product Vision)
3
+ * Explains the application motto, architecture, step-by-step usage, and AI client setups.
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare function registerUseCommand(program: Command): void;
7
+ //# sourceMappingURL=use.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/use.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+FzD"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Fridayy - Use Command (How-To Guide & Product Vision)
3
+ * Explains the application motto, architecture, step-by-step usage, and AI client setups.
4
+ */
5
+ import chalk from 'chalk';
6
+ import { printBanner } from '../ui/banner.js';
7
+ export function registerUseCommand(program) {
8
+ program
9
+ .command('use')
10
+ .description('Display detailed how-to guide, product vision, architecture, and client setup instructions')
11
+ .option('--json', 'Output guide in JSON format')
12
+ .action((options) => {
13
+ printBanner();
14
+ if (options.json) {
15
+ const guide = {
16
+ name: 'fridayy',
17
+ tagline: 'Universal Application-to-MCP Platform — Turn existing APIs into AI-ready tools',
18
+ motto: 'Build once. Connect everywhere.',
19
+ author: 'Sabarivasan',
20
+ workflow: [
21
+ { step: 1, command: 'fridayy init', description: 'Initialize Fridayy configuration' },
22
+ { step: 2, command: 'fridayy scan', description: 'Detect APIs, routes, and auth schemes' },
23
+ { step: 3, command: 'fridayy generate', description: 'Generate MCP candidate tools' },
24
+ { step: 4, command: 'fridayy review', description: 'Approve or block candidate tools' },
25
+ { step: 5, command: 'fridayy start', description: 'Start standards-compliant MCP server' }
26
+ ]
27
+ };
28
+ console.log(JSON.stringify(guide, null, 2));
29
+ return;
30
+ }
31
+ console.log(chalk.bold.hex('#00d2ff')('================================================================================'));
32
+ console.log(chalk.bold.hex('#00d2ff')(' 🎯 THE FRIDAYY MOTTO & PRODUCT VISION'));
33
+ console.log(chalk.bold.hex('#00d2ff')('================================================================================\n'));
34
+ console.log(` ${chalk.bold.white('“Turn existing applications and APIs into AI-ready tools with zero code rewriting.”')}\n`);
35
+ console.log(` ${chalk.gray('Existing applications shouldn’t need a complete rewrite to be useful to AI models.')}`);
36
+ console.log(` ${chalk.gray('Fridayy creates a safe, reviewable bridge between your backend and modern AI agents.')}\n`);
37
+ console.log(chalk.bold.hex('#00b4d8')('================================================================================'));
38
+ console.log(chalk.bold.hex('#00b4d8')(' ⚙️ HOW IT WORKS UNDER THE HOOD'));
39
+ console.log(chalk.bold.hex('#00b4d8')('================================================================================\n'));
40
+ console.log(` ${chalk.cyan('1. Capability Discovery:')}`);
41
+ console.log(` Scans OpenAPI specs (v3.0, v3.1, Swagger 2.0) or Node.js Express/Fastify routes.`);
42
+ console.log(` ${chalk.cyan('2. Schema Normalization:')}`);
43
+ console.log(` Merges URL path variables, query parameters, headers, and request bodies into`);
44
+ console.log(` a unified, typed JSON Schema for LLMs.`);
45
+ console.log(` ${chalk.cyan('3. Zero-Trust Security & Risk Engine:')}`);
46
+ console.log(` Classifies actions into ${chalk.green('READ')} (safe), ${chalk.yellow('WRITE')} (mutating), and ${chalk.red.bold('DESTRUCTIVE')} (delete/purge).`);
47
+ console.log(` Destructive tools default to ${chalk.red.bold('BLOCKED')} until you approve them.`);
48
+ console.log(` ${chalk.cyan('4. Zero-Leak Secret Isolation:')}`);
49
+ console.log(` API keys/tokens are loaded strictly from environment variables at execution time`);
50
+ console.log(` and never leaked in LLM prompts or tool schemas.`);
51
+ console.log(` ${chalk.cyan('5. Official MCP Server Transport:')}`);
52
+ console.log(` Exposes tools via standard Stdio & SSE protocols for Claude Desktop, Cursor, etc.\n`);
53
+ console.log(chalk.bold.hex('#7209b7')('================================================================================'));
54
+ console.log(chalk.bold.hex('#7209b7')(' 🚀 STEP-BY-STEP WORKFLOW'));
55
+ console.log(chalk.bold.hex('#7209b7')('================================================================================\n'));
56
+ console.log(` ${chalk.bold.white('Step 1:')} ${chalk.cyan.bold('fridayy init')} ${chalk.gray('→ Creates fridayy.config.json')}`);
57
+ console.log(` ${chalk.bold.white('Step 2:')} ${chalk.cyan.bold('fridayy scan')} ${chalk.gray('→ Inspects your endpoints and auth schemes')}`);
58
+ console.log(` ${chalk.bold.white('Step 3:')} ${chalk.cyan.bold('fridayy generate')} ${chalk.gray('→ Builds candidate MCP tools into fridayy.tools.json')}`);
59
+ console.log(` ${chalk.bold.white('Step 4:')} ${chalk.cyan.bold('fridayy review')} ${chalk.gray('→ Approve safe tools (e.g. fridayy review --approve-read)')}`);
60
+ console.log(` ${chalk.bold.white('Step 5:')} ${chalk.cyan.bold('fridayy start')} ${chalk.gray('→ Launches the live Model Context Protocol server')}\n`);
61
+ console.log(chalk.bold.hex('#b5179e')('================================================================================'));
62
+ console.log(chalk.bold.hex('#b5179e')(' 🤖 CONNECTING TO AI CLIENTS'));
63
+ console.log(chalk.bold.hex('#b5179e')('================================================================================\n'));
64
+ console.log(` ${chalk.bold('1. Claude Desktop')} (add to claude_desktop_config.json):`);
65
+ console.log(chalk.gray(` {`));
66
+ console.log(chalk.gray(` "mcpServers": {`));
67
+ console.log(chalk.gray(` "my-api": {`));
68
+ console.log(chalk.gray(` "command": "npx",`));
69
+ console.log(chalk.gray(` "args": ["fridayy", "start"],`));
70
+ console.log(chalk.gray(` "env": { "FRIDAYY_API_KEY": "your-api-key" }`));
71
+ console.log(chalk.gray(` }`));
72
+ console.log(chalk.gray(` }`));
73
+ console.log(chalk.gray(` }\n`));
74
+ console.log(` ${chalk.bold('2. Cursor IDE')} (Settings → Features → MCP):`);
75
+ console.log(chalk.gray(` Type: command | Command: npx fridayy start\n`));
76
+ console.log(` ${chalk.bold('3. Pointing AI to this Project:')}`);
77
+ console.log(` Simply point your AI agent to ${chalk.cyan.bold('point/AI_INSTRUCTIONS.md')}`);
78
+ console.log(` The AI will automatically understand your architecture and run necessary setup.\n`);
79
+ console.log(chalk.bold.hex('#00f5d4')('================================================================================'));
80
+ console.log(chalk.bold.hex('#00f5d4')(' 💡 PRO TIPS'));
81
+ console.log(chalk.bold.hex('#00f5d4')('================================================================================\n'));
82
+ console.log(` • Run ${chalk.cyan.bold('fridayy doctor')} anytime to check secrets, endpoints, and health.`);
83
+ console.log(` • Use ${chalk.cyan.bold('fridayy tools --approved')} to see active tools exposed to AI.`);
84
+ console.log(` • Use ${chalk.cyan.bold('fridayy start --transport sse --port 3000')} for remote network clients.\n`);
85
+ console.log(` ${chalk.cyan.bold('friday')} - ${chalk.gray('build once. connect everywhere.')}`);
86
+ console.log(` ${chalk.gray('Developed by sabarivasan')}\n`);
87
+ });
88
+ }
89
+ //# sourceMappingURL=use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/cli/commands/use.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,SAAS,IAAI,OAAO,CAmBnC;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAGzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,SAAS,IAAI,OAAO,CAiCnC;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAGzC"}
package/dist/cli/index.js CHANGED
@@ -11,13 +11,30 @@ import { registerStartCommand } from './commands/start.js';
11
11
  import { registerToolsCommand } from './commands/tools.js';
12
12
  import { registerConfigCommand } from './commands/config.js';
13
13
  import { registerDoctorCommand } from './commands/doctor.js';
14
+ import { registerUseCommand } from './commands/use.js';
15
+ import { printBanner } from './ui/banner.js';
16
+ import { runStartupAnimation } from './ui/startup-animation.js';
14
17
  export function createCli() {
15
18
  const program = new Command();
16
19
  program
17
20
  .name('fridayy')
18
21
  .description('Universal Application-to-MCP Platform — Turn existing APIs into AI-ready MCP tools')
19
- .version('1.0.1');
20
- // Register commands
22
+ .version('1.2.0')
23
+ .action(async () => {
24
+ printBanner();
25
+ await runStartupAnimation();
26
+ console.log('Available Commands:');
27
+ console.log(' fridayy use → Show guide, product vision & how it works');
28
+ console.log(' fridayy init → Initialize configuration');
29
+ console.log(' fridayy scan → Scan API endpoints and specs');
30
+ console.log(' fridayy generate → Generate candidate MCP tools');
31
+ console.log(' fridayy review → Review and approve tools');
32
+ console.log(' fridayy start → Start the MCP server');
33
+ console.log(' fridayy tools → List all tools and statuses');
34
+ console.log(' fridayy doctor → Run diagnostics and health check\n');
35
+ });
36
+ // Register subcommands
37
+ registerUseCommand(program);
21
38
  registerInitCommand(program);
22
39
  registerScanCommand(program);
23
40
  registerGenerateCommand(program);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,oFAAoF,CAAC;SACjG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,oBAAoB;IACpB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,uBAAuB;AACvB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IAC9K,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Fridayy - CLI Banner & Styling Helpers
3
- * Rich ASCII branding, animated effects, and author credits.
3
+ * Exact layout and styling matching Fridayy design specifications.
4
4
  */
5
5
  export declare function getBanner(): string;
6
6
  export declare function printBanner(force?: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,SAAS,IAAI,MAAM,CAelC;AAID,wBAAgB,WAAW,CAAC,KAAK,UAAQ,GAAG,IAAI,CAK/C;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,SAAS,IAAI,MAAM,CAgBlC;AAID,wBAAgB,WAAW,CAAC,KAAK,UAAQ,GAAG,IAAI,CAK/C;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -1,20 +1,21 @@
1
1
  /**
2
2
  * Fridayy - CLI Banner & Styling Helpers
3
- * Rich ASCII branding, animated effects, and author credits.
3
+ * Exact layout and styling matching Fridayy design specifications.
4
4
  */
5
5
  import chalk from 'chalk';
6
6
  export function getBanner() {
7
- const line1 = chalk.hex('#00d2ff').bold(' ███████╗██████╗ ██╗██████╗ █████╗ ██╗ ██╗██╗ ██╗');
8
- const line2 = chalk.hex('#00b4d8').bold(' ██╔════╝██╔══██╗██║██╔══██╗██╔══██╗╚██╗ ██╔╝╚██╗ ██╔╝');
9
- const line3 = chalk.hex('#0096c7').bold(' █████╗ ██████╔╝██║██║ ██║███████║ ╚████╔╝ ╚████╔╝ ');
10
- const line4 = chalk.hex('#0077b6').bold(' ██╔══╝ ██╔══██╗██║██║ ██║██╔══██║ ╚██╔╝ ╚██╔╝ ');
11
- const line5 = chalk.hex('#7209b7').bold(' ██║ ██║ ██║██║██████╔╝██║ ██║ ██║ ██║ ');
12
- const line6 = chalk.hex('#b5179e').bold(' ╚═╝ ╚═╝ ╚═╝╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ');
7
+ const line1 = chalk.bold.white(' ███████╗██████╗ ██╗██████╗ █████╗ ██╗ ██╗██╗ ██╗');
8
+ const line2 = chalk.bold.white(' ██╔════╝██╔══██╗██║██╔══██╗██╔══██╗╚██╗ ██╔╝╚██╗ ██╔╝');
9
+ const line3 = chalk.bold.white(' █████╗ ██████╔╝██║██║ ██║███████║ ╚████╔╝ ╚████╔╝ ');
10
+ const line4 = chalk.bold.white(' ██╔══╝ ██╔══██╗██║██║ ██║██╔══██║ ╚██╔╝ ╚██╔╝ ');
11
+ const line5 = chalk.bold.white(' ██║ ██║ ██║██║██████╔╝██║ ██║ ██║ ██║ ');
12
+ const line6 = chalk.bold.white(' ╚═╝ ╚═╝ ╚═╝╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ');
13
13
  const logo = `\n${line1}\n${line2}\n${line3}\n${line4}\n${line5}\n${line6}\n`;
14
- const tagline = ` ${chalk.bold.white('Universal Application-to-MCP Platform')} ${chalk.gray('— Turn existing APIs into AI tools')}`;
15
- const badges = ` ${chalk.bgCyan.black.bold(' v1.0.1 ')} ${chalk.bgHex('#7209b7').white.bold(' MCP Standard ')} ${chalk.gray('•')} ${chalk.hex('#00f5d4').bold('⚡ Developed with ❤️ by Sabarivasan')}`;
16
- const link = ` ${chalk.gray('Repository:')} ${chalk.underline.cyan('https://github.com/Sabari-Vasan-SM/fridayy')}\n`;
17
- return `${logo}\n${tagline}\n${badges}\n${link}`;
14
+ const authorSub = chalk.gray(' sabarivasan\n');
15
+ const tagline = chalk.bold.white(' Universal Application-to-MCP Platform Turn existing APIs into AI tools\n');
16
+ const badges = ` ${chalk.cyan.bold('v1.2.0')} ${chalk.bgHex('#5e17eb').white.bold(' MCP Standard ')} ${chalk.gray('')} ${chalk.yellow('⚡')} Developed with ${chalk.red('❤️')} by ${chalk.hex('#00f5d4').bold('Sabarivasan')}\n`;
17
+ const repo = ` ${chalk.gray('Repository:')} ${chalk.underline.hex('#00d2ff')('https://github.com/Sabari-Vasan-SM/fridayy')}\n`;
18
+ return `${logo}${authorSub}${tagline}${badges}${repo}`;
18
19
  }
19
20
  let bannerPrinted = false;
20
21
  export function printBanner(force = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAEnG,MAAM,IAAI,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;IAE9E,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE,CAAC;IACrI,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE,CAAC;IACvM,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,4CAA4C,CAAC,IAAI,CAAC;IAEtH,OAAO,GAAG,IAAI,KAAK,OAAO,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC;AACnD,CAAC;AAED,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,UAAU,WAAW,CAAC,KAAK,GAAG,KAAK;IACvC,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACzB,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAE1F,MAAM,IAAI,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;IAE9E,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;IAClH,MAAM,MAAM,GAAG,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IAC9O,MAAM,IAAI,GAAG,oBAAoB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,4CAA4C,CAAC,IAAI,CAAC;IAE/I,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,MAAM,UAAU,WAAW,CAAC,KAAK,GAAG,KAAK;IACvC,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACzB,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Fridayy - Startup Animation & Visual Experience
3
+ * Exact terminal animation sequence matching Fridayy brand design.
4
+ */
5
+ export interface StartupAnimationOptions {
6
+ interactive?: boolean;
7
+ onComplete?: () => void;
8
+ }
9
+ export declare function runStartupAnimation(options?: StartupAnimationOptions): Promise<void>;
10
+ //# sourceMappingURL=startup-animation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-animation.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/startup-animation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAID,wBAAsB,mBAAmB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C9F"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Fridayy - Startup Animation & Visual Experience
3
+ * Exact terminal animation sequence matching Fridayy brand design.
4
+ */
5
+ import chalk from 'chalk';
6
+ const SPINNER_FRAMES = ['◐', '◓', '◑', '◒'];
7
+ export async function runStartupAnimation(options = {}) {
8
+ const isTTY = process.stdout.isTTY && !process.env.CI;
9
+ const steps = [
10
+ { text: 'Pulling project context...', color: '#00d2ff' },
11
+ { text: 'Initialising MCP runtime...', color: '#0096c7' },
12
+ { text: 'Turning existing APIs into tools...', color: '#7209b7' },
13
+ { text: 'Orchestrating AI capabilities...', color: '#00f5d4' },
14
+ { text: 'Connecting MCP interface...', color: '#52b788' }
15
+ ];
16
+ console.log(chalk.bold.white('> Starting Fridayy\n'));
17
+ if (!isTTY) {
18
+ // Fast path for non-TTY environments
19
+ for (const step of steps) {
20
+ console.log(` ${chalk.green('✔')} ${step.text}`);
21
+ }
22
+ }
23
+ else {
24
+ // Animated sequence for interactive terminal
25
+ for (let i = 0; i < steps.length; i++) {
26
+ const step = steps[i];
27
+ const frameDelay = 45;
28
+ const totalFrames = 8;
29
+ for (let f = 0; f < totalFrames; f++) {
30
+ const spinner = chalk.hex(step.color)(SPINNER_FRAMES[f % SPINNER_FRAMES.length]);
31
+ process.stdout.write(`\r ${spinner} ${step.text}`);
32
+ await new Promise(r => setTimeout(r, frameDelay));
33
+ }
34
+ // Settle on completed checkmark
35
+ process.stdout.write(`\r ${chalk.green('✔')} ${step.text}\n`);
36
+ }
37
+ }
38
+ console.log('\n' + chalk.bold.green('✔ DONE') + ' ' + chalk.bold.white('Fridayy is ready.\n'));
39
+ // Status block
40
+ console.log(` ${chalk.white('MCP Server')} ${chalk.green('●')} ${chalk.green('Ready')}`);
41
+ console.log(` ${chalk.white('AI Tools')} ${chalk.green('●')} ${chalk.green('Connected')}`);
42
+ console.log(` ${chalk.white('Runtime')} ${chalk.green('●')} ${chalk.green('Active')}\n`);
43
+ // Signature footer
44
+ console.log(` ${chalk.cyan.bold('friday')} - ${chalk.gray('build once. connect everywhere.')}`);
45
+ console.log(` ${chalk.gray('Developed by sabarivasan')}\n`);
46
+ }
47
+ //# sourceMappingURL=startup-animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-animation.js","sourceRoot":"","sources":["../../../src/cli/ui/startup-animation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fridayy",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
4
  "description": "Universal Application-to-MCP Platform — Turn existing applications and APIs into AI-ready MCP tools",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,6 +11,7 @@
11
11
  "files": [
12
12
  "dist",
13
13
  "bin",
14
+ "point",
14
15
  "README.md",
15
16
  "LICENSE"
16
17
  ],
@@ -0,0 +1,130 @@
1
+ # AI Instructions & Autonomous Integration Guide
2
+
3
+ > **Directive for AI / LLM Agents**: When a developer points you to this file (`point/AI_INSTRUCTIONS.md` or `@point`), read these instructions to understand the project architecture, operational rules, and execute the necessary steps automatically to connect their application to MCP.
4
+
5
+ ---
6
+
7
+ ## 🎯 1. What is Fridayy?
8
+
9
+ **fridayy** is a developer-focused, local-first platform that converts existing APIs and applications (REST, OpenAPI, Node.js routes, Manual tools) into **Model Context Protocol (MCP)** tools.
10
+
11
+ ### Core Philosophy:
12
+ * **Build once, connect everywhere.**
13
+ * **Zero code rewriting**: Discovers endpoints from existing specifications or source code.
14
+ * **Zero-trust security**: Granular permission classification (`READ`, `WRITE`, `DESTRUCTIVE`) with destructive actions (`DELETE`, `drop`, `purge`) blocked by default until human developer approval.
15
+ * **Zero secret leakage**: Credentials load strictly from environment variables (`FRIDAYY_*`) at execution time and are never exposed to LLMs.
16
+
17
+ ---
18
+
19
+ ## 🤖 2. Autonomous Action Protocol for AI Assistants
20
+
21
+ When the developer asks you to set up, maintain, or connect their project using Fridayy, execute the following steps in order:
22
+
23
+ ```mermaid
24
+ graph TD
25
+ A[1. Workspace Analysis] --> B[2. Initialize Fridayy]
26
+ B --> C[3. Scan Capabilities]
27
+ C --> D[4. Generate Tool Definitions]
28
+ D --> E[5. Review & Classify Permissions]
29
+ E --> F[6. Run Diagnostics]
30
+ F --> G[7. Connect to MCP Client]
31
+ ```
32
+
33
+ ### Step 1: Analyze the Workspace
34
+ 1. Check if an OpenAPI specification exists (`openapi.yaml`, `openapi.json`, `swagger.yaml`).
35
+ 2. If no OpenAPI spec exists, check for Node.js route definitions (`Express`, `Fastify`, `Koa`).
36
+ 3. Check target backend URL and port (default is `http://localhost:3000` or `http://localhost:4000`).
37
+
38
+ ### Step 2: Initialize Configuration
39
+ Run:
40
+ ```bash
41
+ npx fridayy init --yes
42
+ ```
43
+ *Creates `fridayy.config.json` with detected settings.*
44
+
45
+ ### Step 3: Scan Capabilities & Endpoints
46
+ Run:
47
+ ```bash
48
+ npx fridayy scan
49
+ ```
50
+ *Identifies all candidate endpoints, HTTP methods, and authentication schemes.*
51
+
52
+ ### Step 4: Generate Candidate MCP Tools
53
+ Run:
54
+ ```bash
55
+ npx fridayy generate
56
+ ```
57
+ *Generates `fridayy.tools.json` containing standardized tool schemas, parameters, and risk classifications.*
58
+
59
+ ### Step 5: Review & Classify Permissions
60
+ * **READ Tools** (`GET`): Safe to auto-approve.
61
+ ```bash
62
+ npx fridayy review --approve-read
63
+ ```
64
+ * **WRITE Tools** (`POST`, `PUT`, `PATCH`): Approve based on user intent.
65
+ * **DESTRUCTIVE Tools** (`DELETE`, `purge`, `cancel`): **DO NOT** approve destructive tools without explicitly asking the developer for confirmation.
66
+
67
+ ### Step 6: Run Diagnostic Health Check
68
+ Run:
69
+ ```bash
70
+ npx fridayy doctor
71
+ ```
72
+ *Verifies schema integrity, environment variables, and target API connectivity.*
73
+
74
+ ### Step 7: Configure MCP Client
75
+ Configure the user's AI client (Claude Desktop, Cursor, or Gemini) as follows:
76
+
77
+ #### For Claude Desktop (`claude_desktop_config.json`):
78
+ ```json
79
+ {
80
+ "mcpServers": {
81
+ "fridayy": {
82
+ "command": "npx",
83
+ "args": ["fridayy", "start"],
84
+ "env": {
85
+ "FRIDAYY_API_KEY": "your_api_key_here"
86
+ }
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ #### For Cursor IDE:
93
+ * **Settings** → **Features** → **MCP**
94
+ * **Type**: `command`
95
+ * **Command**: `npx fridayy start`
96
+
97
+ ---
98
+
99
+ ## 🏗️ 3. Architecture & Codebase Map
100
+
101
+ | Directory | Purpose | Key Files |
102
+ |---|---|---|
103
+ | `src/cli/` | Command line interface | `index.ts`, `commands/`, `ui/` |
104
+ | `src/core/schema/` | Schema converter & unifier | `types.ts`, `json-schema.ts` |
105
+ | `src/core/permissions/` | Permission classifier & gatekeeper | `classifier.ts`, `enforcer.ts` |
106
+ | `src/core/authentication/` | Secret isolation & token resolver | `manager.ts`, `secret-resolver.ts` |
107
+ | `src/core/validation/` | Parameter & schema validation | `validator.ts`, `config-schema.ts` |
108
+ | `src/adapters/` | Pluggable source adapters | `openapi/`, `nodejs/`, `rest/`, `manual/`, `registry.ts` |
109
+ | `src/mcp/` | Standards-compliant MCP Server | `server/fridayy-server.ts`, `tools/`, `resources/`, `prompts/` |
110
+ | `src/security/` | Rate limiting & audit logging | `rate-limiter.ts`, `audit-logger.ts`, `sanitizer.ts` |
111
+
112
+ ---
113
+
114
+ ## 🛡️ 4. Security Rules for AI Agents
115
+
116
+ 1. **Never Bypass Destructive Protection**: Never modify `fridayy.tools.json` to approve a `DESTRUCTIVE` tool unless the developer explicitly asked for that specific tool to be enabled.
117
+ 2. **Never Commit Secrets**: Ensure all API tokens, basic auth passwords, and JWTs are loaded through `process.env.FRIDAYY_*` and never written in plaintext into `fridayy.config.json` or committed to Git.
118
+ 3. **Validate Inputs**: Ensure tool arguments sent by models adhere to the JSON Schema generated by Fridayy.
119
+
120
+ ---
121
+
122
+ ## 🔧 5. Extending with New Adapters (AI Guidance)
123
+
124
+ To add a new adapter (e.g. GraphQL, PostgreSQL, Python FastAPI):
125
+ 1. Create `src/adapters/<name>/adapter.ts` extending `BaseAdapter` from `src/adapters/base.ts`.
126
+ 2. Implement:
127
+ - `detect(context)`: Boolean capability check.
128
+ - `generateTools(context)`: Returns `FridayyToolDefinition[]`.
129
+ - `executeTool(tool, input, context)`: Dispatches runtime execution.
130
+ 3. Register the new adapter instance in `src/adapters/registry.ts`.
@@ -0,0 +1,61 @@
1
+ # Fridayy Project Context & Machine-Readable Spec
2
+
3
+ This document provides structured context for AI agents reading the codebase.
4
+
5
+ ---
6
+
7
+ ## 📌 Project Metadata
8
+ * **Name**: `fridayy`
9
+ * **Version**: `1.2.0`
10
+ * **Author**: `Sabarivasan`
11
+ * **Protocol**: Model Context Protocol (MCP) v1.6+
12
+ * **Repository**: `https://github.com/Sabari-Vasan-SM/fridayy`
13
+ * **License**: MIT
14
+
15
+ ---
16
+
17
+ ## 🛠️ Data Model & Schemas
18
+
19
+ ### FridayyToolDefinition
20
+ ```typescript
21
+ interface FridayyToolDefinition {
22
+ id: string; // Unique ID (e.g. tool_get_products)
23
+ name: string; // Valid snake_case tool name (e.g. get_products)
24
+ description: string; // Human & AI-readable description
25
+ inputSchema: { // Unified JSON Schema Draft-7
26
+ type: 'object';
27
+ properties: Record<string, any>;
28
+ required: string[];
29
+ };
30
+ source: { // Source binding
31
+ type: 'openapi' | 'rest' | 'nodejs' | 'manual';
32
+ method?: string;
33
+ path?: string;
34
+ baseUrl?: string;
35
+ };
36
+ permissions: { // Permission classification
37
+ type: 'READ' | 'WRITE' | 'DESTRUCTIVE';
38
+ read: boolean;
39
+ write: boolean;
40
+ destructive: boolean;
41
+ };
42
+ risk: 'low' | 'medium' | 'high'; // Risk scoring
43
+ status: 'APPROVED' | 'PENDING' | 'BLOCKED' | 'REJECTED';
44
+ }
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 🚦 Permission Matrix
50
+
51
+ | HTTP Method / Pattern | Classification | Risk Level | Default Status | Action Required |
52
+ |---|---|---|---|---|
53
+ | `GET`, `HEAD`, `OPTIONS` | `READ` | `low` | `APPROVED` | Ready for AI invocation |
54
+ | `POST`, `PUT`, `PATCH` | `WRITE` | `medium` | `PENDING` | Review before enabling |
55
+ | `DELETE`, `purge`, `erase`, `cancel` | `DESTRUCTIVE` | `high` | `BLOCKED` | Explicit human approval mandatory |
56
+
57
+ ---
58
+
59
+ ## 🔌 Available Transports
60
+ 1. **Stdio Transport**: Default standard I/O stream for local desktop AI clients (Claude Desktop, Cursor IDE).
61
+ 2. **SSE Transport**: Server-Sent Events over HTTP for remote AI agents and web hooks (`--transport sse --port 3000`).
@@ -0,0 +1,27 @@
1
+ # AI Agent Prompt Snippets
2
+
3
+ Copy-paste any of the prompts below into Claude, ChatGPT, Cursor, Gemini, or Antigravity to perform automatic Fridayy tasks:
4
+
5
+ ---
6
+
7
+ ### Prompt 1: Full Automatic API-to-MCP Setup
8
+ ```text
9
+ Please read @point/AI_INSTRUCTIONS.md and automatically analyze my current project.
10
+ Detect my OpenAPI / REST endpoints, generate Fridayy tool definitions, approve all safe read-only tools, verify project health with 'fridayy doctor', and guide me on how to start the MCP server.
11
+ ```
12
+
13
+ ---
14
+
15
+ ### Prompt 2: Safe Tool Review & Selective Approval
16
+ ```text
17
+ Please review @point/PROJECT_CONTEXT.md and my generated fridayy.tools.json.
18
+ List all candidate tools, highlight any WRITE or DESTRUCTIVE tools that require confirmation, and help me approve only the tools needed for my specific task.
19
+ ```
20
+
21
+ ---
22
+
23
+ ### Prompt 3: Add Custom Tool / Adapter Extension
24
+ ```text
25
+ I want to add a custom adapter/tool to Fridayy.
26
+ Please check @point/AI_INSTRUCTIONS.md Section 5 for adapter extension rules, and help me implement a new BaseAdapter subclass for my backend.
27
+ ```