@intellectronica/ruler 0.3.27 → 0.3.29
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 +50 -43
- package/dist/agents/JetBrainsAiAssistantAgent.js +54 -0
- package/dist/agents/index.js +2 -0
- package/dist/cli/handlers.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -54,43 +54,47 @@ Ruler solves this by providing a **single source of truth** for all your AI agen
|
|
|
54
54
|
|
|
55
55
|
## Supported AI Agents
|
|
56
56
|
|
|
57
|
-
| Agent | Rules File(s)
|
|
58
|
-
| ---------------- |
|
|
59
|
-
| AGENTS.md | `AGENTS.md`
|
|
60
|
-
| GitHub Copilot | `AGENTS.md`
|
|
61
|
-
| Claude Code | `CLAUDE.md`
|
|
62
|
-
| OpenAI Codex CLI | `AGENTS.md`
|
|
63
|
-
| Pi Coding Agent | `AGENTS.md`
|
|
64
|
-
| Jules | `AGENTS.md`
|
|
65
|
-
| Cursor | `AGENTS.md`
|
|
66
|
-
| Windsurf | `AGENTS.md`
|
|
67
|
-
| Cline | `.clinerules`
|
|
68
|
-
| Crush | `CRUSH.md`
|
|
69
|
-
| Amp | `AGENTS.md`
|
|
70
|
-
| Antigravity | `.agent/rules/ruler.md`
|
|
71
|
-
| Amazon Q CLI | `.amazonq/rules/ruler_q_rules.md`
|
|
72
|
-
| Aider | `AGENTS.md`, `.aider.conf.yml`
|
|
73
|
-
| Firebase Studio | `.idx/airules.md`
|
|
74
|
-
| Open Hands | `.openhands/microagents/repo.md`
|
|
75
|
-
| Gemini CLI | `AGENTS.md`
|
|
76
|
-
| Junie | `.junie/guidelines.md`
|
|
77
|
-
| AugmentCode | `.augment/rules/ruler_augment_instructions.md`
|
|
78
|
-
| Kilo Code | `AGENTS.md`
|
|
79
|
-
| OpenCode | `AGENTS.md`
|
|
80
|
-
| Goose | `.goosehints`
|
|
81
|
-
| Qwen Code | `AGENTS.md`
|
|
82
|
-
| RooCode | `AGENTS.md`
|
|
83
|
-
| Zed | `AGENTS.md`
|
|
84
|
-
| Trae AI | `.trae/rules/project_rules.md`
|
|
85
|
-
| Warp | `WARP.md`
|
|
86
|
-
| Kiro | `.kiro/steering/ruler_kiro_instructions.md`
|
|
87
|
-
| Firebender | `firebender.json`
|
|
88
|
-
|
|
|
57
|
+
| Agent | Rules File(s) | MCP Configuration / Notes | Skills Support / Location |
|
|
58
|
+
| ---------------- | ---------------------------------------------- | ------------------------------------------------ | ------------------------- |
|
|
59
|
+
| AGENTS.md | `AGENTS.md` | (pseudo-agent ensuring root `AGENTS.md` exists) | - |
|
|
60
|
+
| GitHub Copilot | `AGENTS.md` | `.vscode/mcp.json` | `.claude/skills/` |
|
|
61
|
+
| Claude Code | `CLAUDE.md` | `.mcp.json` | `.claude/skills/` |
|
|
62
|
+
| OpenAI Codex CLI | `AGENTS.md` | `.codex/config.toml` | `.codex/skills/` |
|
|
63
|
+
| Pi Coding Agent | `AGENTS.md` | - | `.pi/skills/` |
|
|
64
|
+
| Jules | `AGENTS.md` | - | - |
|
|
65
|
+
| Cursor | `AGENTS.md` | `.cursor/mcp.json` | `.cursor/skills/` |
|
|
66
|
+
| Windsurf | `AGENTS.md` | `.windsurf/mcp_config.json` | - |
|
|
67
|
+
| Cline | `.clinerules` | - | - |
|
|
68
|
+
| Crush | `CRUSH.md` | `.crush.json` | - |
|
|
69
|
+
| Amp | `AGENTS.md` | - | `.agents/skills/` |
|
|
70
|
+
| Antigravity | `.agent/rules/ruler.md` | - | `.agent/skills/` |
|
|
71
|
+
| Amazon Q CLI | `.amazonq/rules/ruler_q_rules.md` | `.amazonq/mcp.json` | - |
|
|
72
|
+
| Aider | `AGENTS.md`, `.aider.conf.yml` | `.mcp.json` | - |
|
|
73
|
+
| Firebase Studio | `.idx/airules.md` | `.idx/mcp.json` | - |
|
|
74
|
+
| Open Hands | `.openhands/microagents/repo.md` | `config.toml` | - |
|
|
75
|
+
| Gemini CLI | `AGENTS.md` | `.gemini/settings.json` | `.gemini/skills/` |
|
|
76
|
+
| Junie | `.junie/guidelines.md` | - | - |
|
|
77
|
+
| AugmentCode | `.augment/rules/ruler_augment_instructions.md` | - | - |
|
|
78
|
+
| Kilo Code | `AGENTS.md` | `.kilocode/mcp.json` | `.claude/skills/` |
|
|
79
|
+
| OpenCode | `AGENTS.md` | `opencode.json` | `.opencode/skill/` |
|
|
80
|
+
| Goose | `.goosehints` | - | `.agents/skills/` |
|
|
81
|
+
| Qwen Code | `AGENTS.md` | `.qwen/settings.json` | - |
|
|
82
|
+
| RooCode | `AGENTS.md` | `.roo/mcp.json` | `.roo/skills/` |
|
|
83
|
+
| Zed | `AGENTS.md` | `.zed/settings.json` (project root, never $HOME) | - |
|
|
84
|
+
| Trae AI | `.trae/rules/project_rules.md` | - | - |
|
|
85
|
+
| Warp | `WARP.md` | - | - |
|
|
86
|
+
| Kiro | `.kiro/steering/ruler_kiro_instructions.md` | `.kiro/settings/mcp.json` | - |
|
|
87
|
+
| Firebender | `firebender.json` | `firebender.json` (rules and MCP in same file) | - |
|
|
88
|
+
| Factory Droid | `AGENTS.md` | `.factory/mcp.json` | `.factory/skills/` |
|
|
89
|
+
| Mistral Vibe | `AGENTS.md` | `.vibe/config.toml` | `.vibe/skills/` |
|
|
90
|
+
| JetBrains AI Assistant | `.aiassistant/rules/AGENTS.md` | - | - |
|
|
89
91
|
|
|
90
92
|
## Getting Started
|
|
91
93
|
|
|
92
94
|
### Installation
|
|
93
95
|
|
|
96
|
+
Requires Node.js `^20.19.0 || ^22.12.0 || >=23`.
|
|
97
|
+
|
|
94
98
|
**Global Installation (Recommended for CLI use):**
|
|
95
99
|
|
|
96
100
|
```bash
|
|
@@ -318,15 +322,15 @@ ruler revert [options]
|
|
|
318
322
|
|
|
319
323
|
### Options
|
|
320
324
|
|
|
321
|
-
| Option | Description
|
|
322
|
-
| ------------------------------ |
|
|
323
|
-
| `--project-root <path>` | Path to your project's root (default: current directory)
|
|
324
|
-
| `--agents <agent1,agent2,...>` | Comma-separated list of agent names to revert (agentsmd, aider, amazonqcli, amp, antigravity, augmentcode, claude, cline, codex, copilot, crush, cursor, firebase, firebender, gemini-cli, goose, jules, junie, kilocode, kiro, mistral, opencode, openhands, pi, qwen, roo, trae, warp, windsurf, zed) |
|
|
325
|
-
| `--config <path>` | Path to a custom `ruler.toml` configuration file
|
|
326
|
-
| `--keep-backups` | Keep backup files (.bak) after restoration (default: false)
|
|
327
|
-
| `--dry-run` | Preview changes without actually reverting files
|
|
328
|
-
| `--verbose` / `-v` | Display detailed output during execution
|
|
329
|
-
| `--local-only` | Only search for local .ruler directories, ignore global config
|
|
325
|
+
| Option | Description |
|
|
326
|
+
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
327
|
+
| `--project-root <path>` | Path to your project's root (default: current directory) |
|
|
328
|
+
| `--agents <agent1,agent2,...>` | Comma-separated list of agent names to revert (agentsmd, aider, amazonqcli, amp, antigravity, augmentcode, claude, cline, codex, copilot, crush, cursor, factory, firebase, firebender, gemini-cli, goose, jules, junie, kilocode, kiro, mistral, opencode, openhands, pi, qwen, roo, trae, warp, windsurf, zed) |
|
|
329
|
+
| `--config <path>` | Path to a custom `ruler.toml` configuration file |
|
|
330
|
+
| `--keep-backups` | Keep backup files (.bak) after restoration (default: false) |
|
|
331
|
+
| `--dry-run` | Preview changes without actually reverting files |
|
|
332
|
+
| `--verbose` / `-v` | Display detailed output during execution |
|
|
333
|
+
| `--local-only` | Only search for local .ruler directories, ignore global config |
|
|
330
334
|
|
|
331
335
|
### Common Examples
|
|
332
336
|
|
|
@@ -577,6 +581,7 @@ Skills are specialized knowledge packages that extend AI agent capabilities with
|
|
|
577
581
|
- **Goose**: `.agents/skills/`
|
|
578
582
|
- **Amp**: `.agents/skills/` (shared with Goose)
|
|
579
583
|
- **Antigravity**: `.agent/skills/`
|
|
584
|
+
- **Factory Droid**: `.factory/skills/`
|
|
580
585
|
- **Mistral Vibe**: `.vibe/skills/`
|
|
581
586
|
- **Roo Code**: `.roo/skills/`
|
|
582
587
|
- **Gemini CLI**: `.gemini/skills/`
|
|
@@ -641,6 +646,7 @@ When skills support is enabled and gitignore integration is active, Ruler automa
|
|
|
641
646
|
- `.pi/skills/` (for Pi Coding Agent)
|
|
642
647
|
- `.agents/skills/` (for Goose and Amp)
|
|
643
648
|
- `.agent/skills/` (for Antigravity)
|
|
649
|
+
- `.factory/skills/` (for Factory Droid)
|
|
644
650
|
- `.vibe/skills/` (for Mistral Vibe)
|
|
645
651
|
- `.roo/skills/` (for Roo Code)
|
|
646
652
|
- `.gemini/skills/` (for Gemini CLI)
|
|
@@ -650,7 +656,7 @@ to your `.gitignore` file within the managed Ruler block.
|
|
|
650
656
|
|
|
651
657
|
### Requirements
|
|
652
658
|
|
|
653
|
-
- **For agents with native skills support** (Claude Code, GitHub Copilot, Kilo Code, OpenAI Codex CLI, OpenCode, Pi Coding Agent, Goose, Amp, Antigravity, Mistral Vibe, Roo Code, Gemini CLI, Cursor): No additional requirements.
|
|
659
|
+
- **For agents with native skills support** (Claude Code, GitHub Copilot, Kilo Code, OpenAI Codex CLI, OpenCode, Pi Coding Agent, Goose, Amp, Antigravity, Factory Droid, Mistral Vibe, Roo Code, Gemini CLI, Cursor): No additional requirements.
|
|
654
660
|
|
|
655
661
|
### Validation
|
|
656
662
|
|
|
@@ -699,6 +705,7 @@ ruler apply
|
|
|
699
705
|
# - Pi Coding Agent: .pi/skills/my-skill/
|
|
700
706
|
# - Goose & Amp: .agents/skills/my-skill/
|
|
701
707
|
# - Antigravity: .agent/skills/my-skill/
|
|
708
|
+
# - Factory Droid: .factory/skills/my-skill/
|
|
702
709
|
# - Mistral Vibe: .vibe/skills/my-skill/
|
|
703
710
|
# - Roo Code: .roo/skills/my-skill/
|
|
704
711
|
# - Gemini CLI: .gemini/skills/my-skill/
|
|
@@ -828,7 +835,7 @@ jobs:
|
|
|
828
835
|
- uses: actions/checkout@v4
|
|
829
836
|
- uses: actions/setup-node@v4
|
|
830
837
|
with:
|
|
831
|
-
node-version: '
|
|
838
|
+
node-version: '20'
|
|
832
839
|
cache: 'npm'
|
|
833
840
|
|
|
834
841
|
- name: Install Ruler
|
|
@@ -0,0 +1,54 @@
|
|
|
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.JetBrainsAiAssistantAgent = void 0;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const AbstractAgent_1 = require("./AbstractAgent");
|
|
39
|
+
/**
|
|
40
|
+
* JetBrains AI Assistant agent adapter.
|
|
41
|
+
* Writes rules to .aiassistant/rules/AGENTS.md.
|
|
42
|
+
*/
|
|
43
|
+
class JetBrainsAiAssistantAgent extends AbstractAgent_1.AbstractAgent {
|
|
44
|
+
getIdentifier() {
|
|
45
|
+
return 'jetbrains-ai';
|
|
46
|
+
}
|
|
47
|
+
getName() {
|
|
48
|
+
return 'JetBrains AI Assistant';
|
|
49
|
+
}
|
|
50
|
+
getDefaultOutputPath(projectRoot) {
|
|
51
|
+
return path.join(projectRoot, '.aiassistant', 'rules', 'AGENTS.md');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.JetBrainsAiAssistantAgent = JetBrainsAiAssistantAgent;
|
package/dist/agents/index.js
CHANGED
|
@@ -35,6 +35,7 @@ const FactoryDroidAgent_1 = require("./FactoryDroidAgent");
|
|
|
35
35
|
const AntigravityAgent_1 = require("./AntigravityAgent");
|
|
36
36
|
const MistralVibeAgent_1 = require("./MistralVibeAgent");
|
|
37
37
|
const PiAgent_1 = require("./PiAgent");
|
|
38
|
+
const JetBrainsAiAssistantAgent_1 = require("./JetBrainsAiAssistantAgent");
|
|
38
39
|
exports.allAgents = [
|
|
39
40
|
new CopilotAgent_1.CopilotAgent(),
|
|
40
41
|
new ClaudeAgent_1.ClaudeAgent(),
|
|
@@ -67,6 +68,7 @@ exports.allAgents = [
|
|
|
67
68
|
new AntigravityAgent_1.AntigravityAgent(),
|
|
68
69
|
new MistralVibeAgent_1.MistralVibeAgent(),
|
|
69
70
|
new PiAgent_1.PiAgent(),
|
|
71
|
+
new JetBrainsAiAssistantAgent_1.JetBrainsAiAssistantAgent(),
|
|
70
72
|
];
|
|
71
73
|
/**
|
|
72
74
|
* Generates a comma-separated list of agent identifiers for CLI help text.
|
package/dist/cli/handlers.js
CHANGED
|
@@ -152,7 +152,7 @@ async function initHandler(argv) {
|
|
|
152
152
|
|
|
153
153
|
# --- Agent Specific Configurations ---
|
|
154
154
|
# You can enable/disable agents and override their default output paths here.
|
|
155
|
-
# Use lowercase agent identifiers: aider, amp, claude, cline, codex, copilot, cursor, kilocode, pi, windsurf
|
|
155
|
+
# Use lowercase agent identifiers: aider, amp, claude, cline, codex, copilot, cursor, jetbrains-ai, kilocode, pi, windsurf
|
|
156
156
|
|
|
157
157
|
# [agents.copilot]
|
|
158
158
|
# enabled = true
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intellectronica/ruler",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.29",
|
|
4
4
|
"description": "Ruler — apply the same rules to all coding agents",
|
|
5
5
|
"main": "dist/lib.js",
|
|
6
6
|
"scripts": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://ai.intellectronica.net/ruler",
|
|
38
38
|
"engines": {
|
|
39
|
-
"node": ">=
|
|
39
|
+
"node": "^20.19.0 || ^22.12.0 || >=23"
|
|
40
40
|
},
|
|
41
41
|
"files": [
|
|
42
42
|
"dist",
|