clavix 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +35 -8
  3. package/dist/cli/commands/init.d.ts.map +1 -1
  4. package/dist/cli/commands/init.js +82 -28
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/core/adapters/agents-md-generator.d.ts +26 -0
  7. package/dist/core/adapters/agents-md-generator.d.ts.map +1 -0
  8. package/dist/core/adapters/agents-md-generator.js +102 -0
  9. package/dist/core/adapters/agents-md-generator.js.map +1 -0
  10. package/dist/core/adapters/amp-adapter.d.ts +26 -0
  11. package/dist/core/adapters/amp-adapter.d.ts.map +1 -0
  12. package/dist/core/adapters/amp-adapter.js +39 -0
  13. package/dist/core/adapters/amp-adapter.js.map +1 -0
  14. package/dist/core/adapters/base-adapter.d.ts +40 -0
  15. package/dist/core/adapters/base-adapter.d.ts.map +1 -0
  16. package/dist/core/adapters/base-adapter.js +125 -0
  17. package/dist/core/adapters/base-adapter.js.map +1 -0
  18. package/dist/core/adapters/claude-code-adapter.d.ts +9 -10
  19. package/dist/core/adapters/claude-code-adapter.d.ts.map +1 -1
  20. package/dist/core/adapters/claude-code-adapter.js +12 -26
  21. package/dist/core/adapters/claude-code-adapter.js.map +1 -1
  22. package/dist/core/adapters/cursor-adapter.d.ts +24 -0
  23. package/dist/core/adapters/cursor-adapter.d.ts.map +1 -0
  24. package/dist/core/adapters/cursor-adapter.js +37 -0
  25. package/dist/core/adapters/cursor-adapter.js.map +1 -0
  26. package/dist/core/adapters/droid-adapter.d.ts +32 -0
  27. package/dist/core/adapters/droid-adapter.d.ts.map +1 -0
  28. package/dist/core/adapters/droid-adapter.js +54 -0
  29. package/dist/core/adapters/droid-adapter.js.map +1 -0
  30. package/dist/core/adapters/opencode-adapter.d.ts +32 -0
  31. package/dist/core/adapters/opencode-adapter.d.ts.map +1 -0
  32. package/dist/core/adapters/opencode-adapter.js +53 -0
  33. package/dist/core/adapters/opencode-adapter.js.map +1 -0
  34. package/dist/core/agent-manager.d.ts +15 -1
  35. package/dist/core/agent-manager.d.ts.map +1 -1
  36. package/dist/core/agent-manager.js +38 -1
  37. package/dist/core/agent-manager.js.map +1 -1
  38. package/dist/templates/agents/agents.md +173 -0
  39. package/dist/templates/slash-commands/amp/deep.md +147 -0
  40. package/dist/templates/slash-commands/amp/fast.md +136 -0
  41. package/dist/templates/slash-commands/amp/prd.md +90 -0
  42. package/dist/templates/slash-commands/amp/start.md +66 -0
  43. package/dist/templates/slash-commands/amp/summarize.md +99 -0
  44. package/dist/templates/slash-commands/claude-code/deep.md +1 -1
  45. package/dist/templates/slash-commands/claude-code/fast.md +1 -1
  46. package/dist/templates/slash-commands/cursor/deep.md +147 -0
  47. package/dist/templates/slash-commands/cursor/fast.md +136 -0
  48. package/dist/templates/slash-commands/cursor/prd.md +90 -0
  49. package/dist/templates/slash-commands/cursor/start.md +66 -0
  50. package/dist/templates/slash-commands/cursor/summarize.md +99 -0
  51. package/dist/templates/slash-commands/droid/deep.md +147 -0
  52. package/dist/templates/slash-commands/droid/fast.md +136 -0
  53. package/dist/templates/slash-commands/droid/prd.md +90 -0
  54. package/dist/templates/slash-commands/droid/start.md +66 -0
  55. package/dist/templates/slash-commands/droid/summarize.md +99 -0
  56. package/dist/templates/slash-commands/opencode/deep.md +147 -0
  57. package/dist/templates/slash-commands/opencode/fast.md +136 -0
  58. package/dist/templates/slash-commands/opencode/prd.md +90 -0
  59. package/dist/templates/slash-commands/opencode/start.md +66 -0
  60. package/dist/templates/slash-commands/opencode/summarize.md +99 -0
  61. package/dist/types/agent.d.ts +17 -1
  62. package/dist/types/agent.d.ts.map +1 -1
  63. package/dist/types/config.d.ts +19 -0
  64. package/dist/types/config.d.ts.map +1 -1
  65. package/dist/types/config.js +27 -2
  66. package/dist/types/config.js.map +1 -1
  67. package/package.json +1 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Mike
3
+ Copyright (c) 2025 Bob5k
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -60,11 +60,26 @@ Lo, L. S. (2023). "The CLEAR Path: A Framework for Enhancing Information Literac
60
60
  - **CLEAR Extraction** - Extract and optimize prompts using CLEAR framework, display both raw and CLEAR-enhanced versions
61
61
  - **Search & Filter** - Find sessions by project, agent, status, tags, keywords, or date range
62
62
 
63
- ### 🤖 AI Agent Integration
63
+ ### 🤖 Multi-Provider AI Agent Integration
64
64
 
65
- - **Claude Code Support** - Slash commands (`/clavix:fast`, `/clavix:deep`, `/clavix:prd`, `/clavix:plan`, `/clavix:implement`, `/clavix:start`, `/clavix:summarize`) with auto-detection
65
+ **Supported Tools:**
66
+
67
+ | Tool | Slash Commands | Directory | Status |
68
+ |------|----------------|-----------|--------|
69
+ | **Claude Code** | ✅ | `.claude/commands/clavix/` | Fully Supported |
70
+ | **Cursor** | ✅ | `.cursor/commands/` | Fully Supported |
71
+ | **Droid CLI** | ✅ | `.factory/commands/` | Fully Supported |
72
+ | **OpenCode** | ✅ | `.opencode/command/` | Fully Supported |
73
+ | **Amp** | ✅ | `.agents/commands/` | Fully Supported |
74
+ | **Universal (agents.md)** | ⚡ No slash commands | `AGENTS.md` | Fully Supported |
75
+
76
+ **Features:**
77
+ - **Multi-Select Support** - Choose multiple tools during `clavix init` (Space to select, Enter to confirm)
78
+ - **Provider-Specific Formatting** - Automatically generates commands in each tool's native format
79
+ - **Universal Fallback** - `agents.md` provides workflow instructions for tools without slash command support
80
+ - **Slash Commands** - `/clavix:fast`, `/clavix:deep`, `/clavix:prd`, `/clavix:start`, `/clavix:summarize` available in all supported tools
66
81
  - **Managed Documentation** - Auto-inject and update instructions in `AGENTS.md` and `CLAUDE.md` with safe managed blocks
67
- - **Extensible Architecture** - Adapter pattern ready for future Cursor, Windsurf, and other agent integrations
82
+ - **Extensible Architecture** - Plugin-based adapter pattern for easy addition of new providers
68
83
 
69
84
  ### ⚙️ Configuration & Management
70
85
 
@@ -82,7 +97,7 @@ Lo, L. S. (2023). "The CLEAR Path: A Framework for Enhancing Information Literac
82
97
 
83
98
  ### 🔧 CLI Commands
84
99
 
85
- - `clavix init` - Initialize Clavix in your project with agent selection
100
+ - `clavix init` - Initialize Clavix in your project with multi-provider selection (checkbox UI)
86
101
  - `clavix fast <prompt>` - CLEAR-guided quick improvements (C, L, E components)
87
102
  - `--clear-only` - Show only CLEAR scores without improved prompt
88
103
  - `--framework-info` - Display CLEAR framework information
@@ -120,10 +135,22 @@ cd your-project
120
135
  clavix init
121
136
  ```
122
137
 
138
+ You'll be prompted to select which AI tools to support:
139
+ ```
140
+ ? Which AI tools are you using? (Space to select, Enter to confirm)
141
+ ◉ Claude Code (.claude/commands/clavix/)
142
+ ◉ Cursor (.cursor/commands/)
143
+ ◯ Droid CLI (.factory/commands/)
144
+ ◉ OpenCode (.opencode/command/)
145
+ ◯ Amp (.agents/commands/)
146
+ ◉ agents.md (Universal)
147
+ ```
148
+
123
149
  This will:
124
150
  - Create `.clavix/` directory with configuration
125
- - Generate slash commands for your AI agent
126
- - Inject managed blocks into AGENTS.md and CLAUDE.md
151
+ - Generate slash commands for all selected providers
152
+ - Create universal `AGENTS.md` for tools without slash commands
153
+ - Inject managed blocks into documentation files
127
154
 
128
155
  ### 2. Improve a Prompt with CLEAR Framework
129
156
 
@@ -150,9 +177,9 @@ Output:
150
177
  - **Adaptive Variations** - Alternative phrasings and structures (deep mode)
151
178
  - **Reflection Checklist** - Validation steps and edge cases (deep mode)
152
179
 
153
- ### 3. Use Slash Commands (Claude Code)
180
+ ### 3. Use Slash Commands (All Providers)
154
181
 
155
- After initialization, use these CLEAR-enhanced commands in Claude Code:
182
+ After initialization, use these CLEAR-enhanced commands in your AI tool:
156
183
 
157
184
  - `/clavix:fast [prompt]` - CLEAR-guided quick improvements (C, L, E)
158
185
  - `/clavix:deep [prompt]` - Full CLEAR framework analysis (C, L, E, A, R)
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAWtC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,QAAQ,WAEb;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAgGZ,wBAAwB;YAaxB,cAAc;YAWd,oBAAoB;YAqDpB,qBAAqB;YAoBrB,mBAAmB;YAYnB,kBAAkB;IAoChC,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,kBAAkB;CAI3B"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAYtC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,QAAQ,WAEb;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAoKZ,wBAAwB;YAaxB,cAAc;YAWd,oBAAoB;YAqDpB,qBAAqB;YAoBrB,mBAAmB;YAYnB,kBAAkB;IAoChC,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,kBAAkB;CAI3B"}
@@ -43,6 +43,7 @@ const path = __importStar(require("path"));
43
43
  const json5_1 = __importDefault(require("json5"));
44
44
  const agent_manager_1 = require("../../core/agent-manager");
45
45
  const doc_injector_1 = require("../../core/doc-injector");
46
+ const agents_md_generator_1 = require("../../core/adapters/agents-md-generator");
46
47
  const file_system_1 = require("../../utils/file-system");
47
48
  const config_1 = require("../../types/config");
48
49
  class Init extends core_1.Command {
@@ -64,35 +65,54 @@ class Init extends core_1.Command {
64
65
  return;
65
66
  }
66
67
  }
67
- // Select agent
68
+ // Select providers (multi-select)
68
69
  const agentManager = new agent_manager_1.AgentManager();
69
- // const agents = agentManager.getAvailableAgents();
70
- console.log(chalk_1.default.gray('Select your AI agent:\n'));
71
- const { selectedAgent } = await inquirer_1.default.prompt([
70
+ console.log(chalk_1.default.gray('Select AI development tools to support:\n'));
71
+ console.log(chalk_1.default.gray('(Space to select, Enter to confirm)\n'));
72
+ const { selectedProviders } = await inquirer_1.default.prompt([
72
73
  {
73
- type: 'list',
74
- name: 'selectedAgent',
75
- message: 'Which AI agent are you using?',
74
+ type: 'checkbox',
75
+ name: 'selectedProviders',
76
+ message: 'Which AI tools are you using?',
76
77
  choices: [
77
78
  {
78
- name: 'Claude Code - AI-powered CLI for Claude',
79
+ name: 'Claude Code (.claude/commands/clavix/)',
79
80
  value: 'claude-code',
81
+ checked: true,
80
82
  },
81
83
  {
82
- name: chalk_1.default.gray('Cursor (coming soon)'),
83
- value: null,
84
- disabled: true,
84
+ name: 'Cursor (.cursor/commands/)',
85
+ value: 'cursor',
85
86
  },
86
87
  {
87
- name: chalk_1.default.gray('Windsurf (coming soon)'),
88
- value: null,
89
- disabled: true,
88
+ name: 'Droid CLI (.factory/commands/)',
89
+ value: 'droid',
90
+ },
91
+ {
92
+ name: 'OpenCode (.opencode/command/)',
93
+ value: 'opencode',
94
+ },
95
+ {
96
+ name: 'Amp (.agents/commands/)',
97
+ value: 'amp',
98
+ },
99
+ new inquirer_1.default.Separator(),
100
+ {
101
+ name: 'agents.md (Universal - for tools without slash commands)',
102
+ value: 'agents-md',
103
+ checked: true,
90
104
  },
91
105
  ],
106
+ validate: (answer) => {
107
+ if (answer.length === 0) {
108
+ return 'You must select at least one provider.';
109
+ }
110
+ return true;
111
+ },
92
112
  },
93
113
  ]);
94
- if (!selectedAgent) {
95
- console.log(chalk_1.default.red('\n✗ No agent selected\n'));
114
+ if (!selectedProviders || selectedProviders.length === 0) {
115
+ console.log(chalk_1.default.red('\n✗ No providers selected\n'));
96
116
  return;
97
117
  }
98
118
  // Create .clavix directory structure
@@ -100,18 +120,52 @@ class Init extends core_1.Command {
100
120
  await this.createDirectoryStructure();
101
121
  // Generate config
102
122
  console.log(chalk_1.default.cyan('⚙️ Generating configuration...'));
103
- await this.generateConfig(selectedAgent);
123
+ await this.generateConfig(selectedProviders);
104
124
  // Generate INSTRUCTIONS.md
105
125
  await this.generateInstructions();
106
- // Migrate from old command structure if needed
107
- const adapter = agentManager.requireAdapter(selectedAgent);
108
- await this.migrateOldCommands(adapter);
109
- // Generate slash commands
110
- console.log(chalk_1.default.cyan(`📝 Generating ${adapter.displayName} slash commands...`));
111
- await this.generateSlashCommands(adapter);
112
- // Inject documentation blocks
113
- console.log(chalk_1.default.cyan('📄 Injecting documentation blocks...'));
114
- await this.injectDocumentation(adapter);
126
+ // Generate commands for each selected provider
127
+ console.log(chalk_1.default.cyan(`\n📝 Generating commands for ${selectedProviders.length} provider(s)...\n`));
128
+ for (const providerName of selectedProviders) {
129
+ // Handle agents-md separately (it's not an adapter)
130
+ if (providerName === 'agents-md') {
131
+ console.log(chalk_1.default.gray(' ✓ Generating AGENTS.md...'));
132
+ await agents_md_generator_1.AgentsMdGenerator.generate();
133
+ continue;
134
+ }
135
+ const adapter = agentManager.requireAdapter(providerName);
136
+ console.log(chalk_1.default.gray(` ✓ Generating ${adapter.displayName} commands...`));
137
+ // Validate before generating
138
+ if (adapter.validate) {
139
+ const validation = await adapter.validate();
140
+ if (!validation.valid) {
141
+ console.log(chalk_1.default.yellow(` ⚠ Validation warnings for ${adapter.displayName}:`));
142
+ validation.errors?.forEach((err) => console.log(chalk_1.default.yellow(` - ${err}`)));
143
+ const { continueAnyway } = await inquirer_1.default.prompt([
144
+ {
145
+ type: 'confirm',
146
+ name: 'continueAnyway',
147
+ message: 'Continue anyway?',
148
+ default: false,
149
+ },
150
+ ]);
151
+ if (!continueAnyway) {
152
+ console.log(chalk_1.default.yellow(` ⊗ Skipped ${adapter.displayName}`));
153
+ continue;
154
+ }
155
+ }
156
+ }
157
+ // Migrate from old command structure if needed (Claude Code only)
158
+ if (providerName === 'claude-code') {
159
+ await this.migrateOldCommands(adapter);
160
+ }
161
+ // Generate slash commands
162
+ await this.generateSlashCommands(adapter);
163
+ // Inject documentation blocks (Claude Code only)
164
+ if (providerName === 'claude-code') {
165
+ console.log(chalk_1.default.gray(' ✓ Injecting CLAUDE.md documentation...'));
166
+ await this.injectDocumentation(adapter);
167
+ }
168
+ }
115
169
  // Success message
116
170
  console.log(chalk_1.default.bold.green('\n✅ Clavix initialized successfully!\n'));
117
171
  console.log(chalk_1.default.gray('Next steps:'));
@@ -140,10 +194,10 @@ class Init extends core_1.Command {
140
194
  await file_system_1.FileSystem.ensureDir(dir);
141
195
  }
142
196
  }
143
- async generateConfig(agent) {
197
+ async generateConfig(providers) {
144
198
  const config = {
145
199
  ...config_1.DEFAULT_CONFIG,
146
- agent,
200
+ providers,
147
201
  };
148
202
  const configPath = '.clavix/config.json';
149
203
  const configContent = json5_1.default.stringify(config, null, 2);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,wDAAgC;AAChC,kDAA0B;AAC1B,2CAA6B;AAC7B,kDAA0B;AAC1B,4DAAwD;AACxD,0DAAsD;AACtD,iFAA4E;AAC5E,yDAAqD;AACrD,+CAAkE;AAGlE,MAAqB,IAAK,SAAQ,cAAO;IAOvC,KAAK,CAAC,GAAG;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,+BAA+B;YAC/B,IAAI,MAAM,wBAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;oBACvC;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,8CAA8C;wBACvD,OAAO,EAAE,KAAK;qBACf;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBAC5D,OAAO;gBACT,CAAC;YACH,CAAC;YAED,kCAAkC;YAClC,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;YAExC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAEjE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAClD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,+BAA+B;oBACxC,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,wCAAwC;4BAC9C,KAAK,EAAE,aAAa;4BACpB,OAAO,EAAE,IAAI;yBACd;wBACD;4BACE,IAAI,EAAE,4BAA4B;4BAClC,KAAK,EAAE,QAAQ;yBAChB;wBACD;4BACE,IAAI,EAAE,gCAAgC;4BACtC,KAAK,EAAE,OAAO;yBACf;wBACD;4BACE,IAAI,EAAE,+BAA+B;4BACrC,KAAK,EAAE,UAAU;yBAClB;wBACD;4BACE,IAAI,EAAE,yBAAyB;4BAC/B,KAAK,EAAE,KAAK;yBACb;wBACD,IAAI,kBAAQ,CAAC,SAAS,EAAE;wBACxB;4BACE,IAAI,EAAE,0DAA0D;4BAChE,KAAK,EAAE,WAAW;4BAClB,OAAO,EAAE,IAAI;yBACd;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAgB,EAAE,EAAE;wBAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACxB,OAAO,wCAAwC,CAAC;wBAClD,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YAED,qCAAqC;YACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAEtC,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAE7C,2BAA2B;YAC3B,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAElC,+CAA+C;YAC/C,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,gCAAgC,iBAAiB,CAAC,MAAM,mBAAmB,CAC5E,CACF,CAAC;YAEF,KAAK,MAAM,YAAY,IAAI,iBAAiB,EAAE,CAAC;gBAC7C,oDAAoD;gBACpD,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;oBACvD,MAAM,uCAAiB,CAAC,QAAQ,EAAE,CAAC;oBACnC,SAAS;gBACX,CAAC;gBAED,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBAE1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,WAAW,cAAc,CAAC,CAAC,CAAC;gBAE7E,6BAA6B;gBAC7B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC5C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,iCAAiC,OAAO,CAAC,WAAW,GAAG,CAAC,CACtE,CAAC;wBACF,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAC5C,CAAC;wBAEF,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;4BAC/C;gCACE,IAAI,EAAE,SAAS;gCACf,IAAI,EAAE,gBAAgB;gCACtB,OAAO,EAAE,kBAAkB;gCAC3B,OAAO,EAAE,KAAK;6BACf;yBACF,CAAC,CAAC;wBAEH,IAAI,CAAC,cAAc,EAAE,CAAC;4BACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iBAAiB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;4BAClE,SAAS;wBACX,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,kEAAkE;gBAClE,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;oBACnC,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;gBAED,0BAA0B;gBAC1B,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAE1C,iDAAiD;gBACjD,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;oBACpE,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC5G,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAChH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,MAAM,IAAI,GAAG;YACX,SAAS;YACT,kBAAkB;YAClB,iBAAiB;YACjB,mBAAmB;SACpB,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,wBAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,SAAmB;QAC9C,MAAM,MAAM,GAAiB;YAC3B,GAAG,uBAAc;YACjB,SAAS;SACV,CAAC;QAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC;QACzC,MAAM,aAAa,GAAG,eAAK,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,wBAAU,CAAC,eAAe,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CxB,CAAC;QAEE,MAAM,wBAAU,CAAC,eAAe,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,OAAY;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4CAA4C,CAAC,CAAC;QACvF,MAAM,YAAY,GAAG,MAAM,wBAAU,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEtE,MAAM,SAAS,GAAsB,EAAE,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,wBAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAErC,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI;gBACJ,OAAO;gBACP,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAAY;QAC5C,mBAAmB;QACnB,MAAM,aAAa,GAAG,0BAAW,CAAC,uBAAuB,EAAE,CAAC;QAC5D,MAAM,0BAAW,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;QAEnF,2CAA2C;QAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG,0BAAW,CAAC,uBAAuB,EAAE,CAAC;YAC5D,MAAM,0BAAW,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAa;QAC5C,iEAAiE;QACjE,MAAM,eAAe,GAAG,kBAAkB,CAAC;QAE3C,IAAI,CAAC,MAAM,wBAAU,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,wBAAU,CAAC,SAAS,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;YAE7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAEjE,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;gBAClD,IAAI,MAAM,wBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtC,MAAM,wBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC5D,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,OAAO,sBAAsB,CAAC,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,OAAe;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,CAAC;IAEO,kBAAkB,CAAC,OAAe;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;;AAnUM,gBAAW,GAAG,0CAA0C,CAAC;AAEzD,aAAQ,GAAG;IAChB,qCAAqC;CACtC,CAAC;kBALiB,IAAI"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Generator for universal AGENTS.md file
3
+ * Provides workflow instructions for AI tools without slash command support
4
+ */
5
+ export declare class AgentsMdGenerator {
6
+ static readonly TARGET_FILE = "AGENTS.md";
7
+ static readonly START_MARKER = "<!-- CLAVIX:START -->";
8
+ static readonly END_MARKER = "<!-- CLAVIX:END -->";
9
+ /**
10
+ * Generate or update AGENTS.md with Clavix workflows
11
+ */
12
+ static generate(): Promise<void>;
13
+ /**
14
+ * Inject or update managed block in AGENTS.md
15
+ */
16
+ private static injectManagedBlock;
17
+ /**
18
+ * Escape special regex characters
19
+ */
20
+ private static escapeRegex;
21
+ /**
22
+ * Check if AGENTS.md has Clavix block
23
+ */
24
+ static hasClavixBlock(): Promise<boolean>;
25
+ }
26
+ //# sourceMappingURL=agents-md-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md-generator.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/agents-md-generator.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,WAAW,eAAe;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,2BAA2B;IACvD,MAAM,CAAC,QAAQ,CAAC,UAAU,yBAAyB;IAEnD;;OAEG;WACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBtC;;OAEG;mBACkB,kBAAkB;IAkCvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAQhD"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AgentsMdGenerator = void 0;
37
+ const file_system_1 = require("../../utils/file-system");
38
+ const path = __importStar(require("path"));
39
+ /**
40
+ * Generator for universal AGENTS.md file
41
+ * Provides workflow instructions for AI tools without slash command support
42
+ */
43
+ class AgentsMdGenerator {
44
+ /**
45
+ * Generate or update AGENTS.md with Clavix workflows
46
+ */
47
+ static async generate() {
48
+ const templatePath = path.join(__dirname, '../../templates/agents/agents.md');
49
+ // Check if template exists
50
+ if (!(await file_system_1.FileSystem.exists(templatePath))) {
51
+ throw new Error(`AGENTS.md template not found at ${templatePath}`);
52
+ }
53
+ const template = await file_system_1.FileSystem.readFile(templatePath);
54
+ // Inject into AGENTS.md using managed blocks
55
+ await this.injectManagedBlock(this.TARGET_FILE, template);
56
+ }
57
+ /**
58
+ * Inject or update managed block in AGENTS.md
59
+ */
60
+ static async injectManagedBlock(filePath, content) {
61
+ let fileContent = '';
62
+ // Read existing file or start with empty content
63
+ if (await file_system_1.FileSystem.exists(filePath)) {
64
+ fileContent = await file_system_1.FileSystem.readFile(filePath);
65
+ }
66
+ const blockRegex = new RegExp(`${this.escapeRegex(this.START_MARKER)}[\\s\\S]*?${this.escapeRegex(this.END_MARKER)}`, 'g');
67
+ const wrappedContent = `${this.START_MARKER}\n${content}\n${this.END_MARKER}`;
68
+ if (blockRegex.test(fileContent)) {
69
+ // Replace existing block
70
+ fileContent = fileContent.replace(blockRegex, wrappedContent);
71
+ }
72
+ else {
73
+ // Append new block
74
+ if (fileContent && !fileContent.endsWith('\n\n')) {
75
+ fileContent += '\n\n';
76
+ }
77
+ fileContent += wrappedContent + '\n';
78
+ }
79
+ await file_system_1.FileSystem.writeFileAtomic(filePath, fileContent);
80
+ }
81
+ /**
82
+ * Escape special regex characters
83
+ */
84
+ static escapeRegex(str) {
85
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
86
+ }
87
+ /**
88
+ * Check if AGENTS.md has Clavix block
89
+ */
90
+ static async hasClavixBlock() {
91
+ if (!(await file_system_1.FileSystem.exists(this.TARGET_FILE))) {
92
+ return false;
93
+ }
94
+ const content = await file_system_1.FileSystem.readFile(this.TARGET_FILE);
95
+ return content.includes(this.START_MARKER);
96
+ }
97
+ }
98
+ exports.AgentsMdGenerator = AgentsMdGenerator;
99
+ AgentsMdGenerator.TARGET_FILE = 'AGENTS.md';
100
+ AgentsMdGenerator.START_MARKER = '<!-- CLAVIX:START -->';
101
+ AgentsMdGenerator.END_MARKER = '<!-- CLAVIX:END -->';
102
+ //# sourceMappingURL=agents-md-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md-generator.js","sourceRoot":"","sources":["../../../src/core/adapters/agents-md-generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAqD;AACrD,2CAA6B;AAE7B;;;GAGG;AACH,MAAa,iBAAiB;IAK5B;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,SAAS,EACT,kCAAkC,CACnC,CAAC;QAEF,2BAA2B;QAC3B,IAAI,CAAC,CAAC,MAAM,wBAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,mCAAmC,YAAY,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,wBAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEzD,6CAA6C;QAC7C,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACrC,QAAgB,EAChB,OAAe;QAEf,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,iDAAiD;QACjD,IAAI,MAAM,wBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,WAAW,GAAG,MAAM,wBAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,MAAM,CAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,CAAC,WAAW,CACjE,IAAI,CAAC,UAAU,CAChB,EAAE,EACH,GAAG,CACJ,CAAC;QAEF,MAAM,cAAc,GAAG,GAAG,IAAI,CAAC,YAAY,KAAK,OAAO,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QAE9E,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,yBAAyB;YACzB,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,WAAW,IAAI,MAAM,CAAC;YACxB,CAAC;YACD,WAAW,IAAI,cAAc,GAAG,IAAI,CAAC;QACvC,CAAC;QAED,MAAM,wBAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW,CAAC,GAAW;QACpC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC,CAAC,MAAM,wBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,wBAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;;AAjFH,8CAkFC;AAjFiB,6BAAW,GAAG,WAAW,CAAC;AAC1B,8BAAY,GAAG,uBAAuB,CAAC;AACvC,4BAAU,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { BaseAdapter } from './base-adapter';
2
+ /**
3
+ * Amp adapter
4
+ * Commands stored in .agents/commands/ (simple markdown, no frontmatter)
5
+ * Supports executable commands (experimental)
6
+ */
7
+ export declare class AmpAdapter extends BaseAdapter {
8
+ readonly name = "amp";
9
+ readonly displayName = "Amp";
10
+ readonly directory = ".agents/commands";
11
+ readonly fileExtension = ".md";
12
+ readonly features: {
13
+ supportsSubdirectories: boolean;
14
+ supportsFrontmatter: boolean;
15
+ supportsExecutableCommands: boolean;
16
+ };
17
+ /**
18
+ * Detect if Amp is available in the project
19
+ */
20
+ detectProject(): Promise<boolean>;
21
+ /**
22
+ * Get command path for Amp
23
+ */
24
+ getCommandPath(): string;
25
+ }
26
+ //# sourceMappingURL=amp-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amp-adapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/amp-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,WAAW,SAAS;IAC7B,QAAQ,CAAC,SAAS,sBAAsB;IACxC,QAAQ,CAAC,aAAa,SAAS;IAC/B,QAAQ,CAAC,QAAQ;;;;MAIf;IAEF;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIvC;;OAEG;IACH,cAAc,IAAI,MAAM;CAKzB"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AmpAdapter = void 0;
4
+ const base_adapter_1 = require("./base-adapter");
5
+ const file_system_1 = require("../../utils/file-system");
6
+ /**
7
+ * Amp adapter
8
+ * Commands stored in .agents/commands/ (simple markdown, no frontmatter)
9
+ * Supports executable commands (experimental)
10
+ */
11
+ class AmpAdapter extends base_adapter_1.BaseAdapter {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.name = 'amp';
15
+ this.displayName = 'Amp';
16
+ this.directory = '.agents/commands';
17
+ this.fileExtension = '.md';
18
+ this.features = {
19
+ supportsSubdirectories: false,
20
+ supportsFrontmatter: false,
21
+ supportsExecutableCommands: true,
22
+ };
23
+ // Uses default formatCommand from BaseAdapter (no special formatting)
24
+ }
25
+ /**
26
+ * Detect if Amp is available in the project
27
+ */
28
+ async detectProject() {
29
+ return await file_system_1.FileSystem.exists('.agents');
30
+ }
31
+ /**
32
+ * Get command path for Amp
33
+ */
34
+ getCommandPath() {
35
+ return this.directory;
36
+ }
37
+ }
38
+ exports.AmpAdapter = AmpAdapter;
39
+ //# sourceMappingURL=amp-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amp-adapter.js","sourceRoot":"","sources":["../../../src/core/adapters/amp-adapter.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAC7C,yDAAqD;AAErD;;;;GAIG;AACH,MAAa,UAAW,SAAQ,0BAAW;IAA3C;;QACW,SAAI,GAAG,KAAK,CAAC;QACb,gBAAW,GAAG,KAAK,CAAC;QACpB,cAAS,GAAG,kBAAkB,CAAC;QAC/B,kBAAa,GAAG,KAAK,CAAC;QACtB,aAAQ,GAAG;YAClB,sBAAsB,EAAE,KAAK;YAC7B,mBAAmB,EAAE,KAAK;YAC1B,0BAA0B,EAAE,IAAI;SACjC,CAAC;QAgBF,sEAAsE;IACxE,CAAC;IAfC;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,MAAM,wBAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CAGF;AA1BD,gCA0BC"}
@@ -0,0 +1,40 @@
1
+ import { AgentAdapter, CommandTemplate, ManagedBlock, ProviderFeatures, ValidationResult } from '../../types/agent';
2
+ /**
3
+ * Base adapter class with shared logic for all providers
4
+ * Ensures consistency and reduces code duplication
5
+ */
6
+ export declare abstract class BaseAdapter implements AgentAdapter {
7
+ abstract readonly name: string;
8
+ abstract readonly displayName: string;
9
+ abstract readonly directory: string;
10
+ abstract readonly fileExtension: string;
11
+ readonly features?: ProviderFeatures;
12
+ abstract detectProject(): Promise<boolean>;
13
+ abstract getCommandPath(): string;
14
+ /**
15
+ * Default validation logic - can be overridden
16
+ * Checks if directory can be created and is writable
17
+ */
18
+ validate(): Promise<ValidationResult>;
19
+ /**
20
+ * Generate commands - default implementation
21
+ * Creates command files in the provider's directory
22
+ */
23
+ generateCommands(templates: CommandTemplate[]): Promise<void>;
24
+ /**
25
+ * Format command content for this provider
26
+ * Default: return content as-is
27
+ * Override for provider-specific formatting (frontmatter, placeholders, etc.)
28
+ */
29
+ protected formatCommand(template: CommandTemplate): string;
30
+ /**
31
+ * Default documentation injection - no-op
32
+ * Override if provider needs doc injection (like Claude Code)
33
+ */
34
+ injectDocumentation(_blocks: ManagedBlock[]): Promise<void>;
35
+ /**
36
+ * Escape special regex characters
37
+ */
38
+ protected escapeRegex(str: string): string;
39
+ }
40
+ //# sourceMappingURL=base-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/base-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAI3B;;;GAGG;AACH,8BAAsB,WAAY,YAAW,YAAY;IACvD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAErC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAC1C,QAAQ,CAAC,cAAc,IAAI,MAAM;IAEjC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAsC3C;;;OAGG;IACG,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnE;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM;IAI1D;;;OAGG;IACG,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAG3C"}