delimit-cli 4.1.14 → 4.1.16

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
@@ -1,4 +1,8 @@
1
- # `</>` Delimit\n\nStop re-explaining your codebase every session. Memory, tasks, and governance that persist across Claude Code, Codex, Cursor, and Gemini CLI.\n\n
1
+ # `</>` Delimit
2
+
3
+ Stop re-explaining your codebase every session. Memory, tasks, and governance that persist across Claude Code, Codex, Cursor, and Gemini CLI.
4
+
5
+
2
6
  ---
3
7
 
4
8
  ## Think and Build
@@ -10,5 +14,255 @@ The universal command for the Delimit Swarm. When you say **"Think and Build"**,
10
14
  - **"Vault"**: Manage local secrets and API keys (AES-256 encrypted).
11
15
 
12
16
  Works across any configuration — from a single model on a budget to an enterprise swarm of 4+ models.
13
- \n[![npm](https://img.shields.io/npm/v/delimit-cli)](https://www.npmjs.com/package/delimit-cli)\n[![GitHub Action](https://img.shields.io/badge/GitHub%20Action-v1.6.0-blue)](https://github.com/marketplace/actions/delimit-api-governance)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Glama](https://glama.ai/mcp/servers/delimit-ai/delimit/badge)](https://glama.ai/mcp/servers/delimit-ai/delimit)\n[![API Governance](https://delimit-ai.github.io/badge/pass.svg)](https://github.com/marketplace/actions/delimit-api-governance)\n\n<p align="center">\n <img src="docs/demo.gif" alt="Delimit detecting breaking API changes" width="700">\n</p>\n\n---\n\n## Try it in 2 minutes\n\n```bash\nnpx delimit-cli demo # See governance in action — no setup needed\nnpx delimit-cli init # Set up governance for your project\nnpx delimit-cli setup # Configure your AI assistants\n```\n\nNo API keys. No account. No config files.\n\n### Pick your first win\n\n**Protect my API** — catch breaking changes before merge:\n```bash\nnpx delimit-cli try\n# Creates a sample API, introduces breaking changes, shows what gets blocked.\n# Saves a governance report to delimit-report.md\n```\n\n**Watch for drift** — detect spec changes without review:\n```bash\nnpx delimit-cli init # Sets up governance + drift baseline\n# Weekly drift checks run automatically via GitHub Action\n```\n\n**Run PR copilot** — governance gates on every pull request:\n```yaml\n# .github/workflows/api-governance.yml\n- uses: delimit-ai/delimit-action@v1\n with:\n spec: api/openapi.yaml\n# Posts gate status, violations, and remediation in PR comments\n```\n\n---\n\n## What's New in v4.1\n\n- **TUI** -- terminal-native Ventures panel, real `delimit think` and `delimit build` commands\n- **Security hardening** -- notify.py stubbed in npm, axios pinned against supply chain attacks\n- **Free tier restructure** -- deliberations use Gemini Flash + GPT-4o-mini (cost: <$20/mo)\n- **Zero-config onboarding** -- auto-detect framework, scan, and first evidence in one command\n- **Auto-approve tools** -- `delimit setup` configures permissions for Claude Code, Codex, and Gemini CLI\n\n### v4.0\n\n- **Toolcard Delta Cache** -- SHA256 schema hashing, delta-only transmission, saves tokens\n- **Session Phoenix** -- cross-model session resurrection with soul capture\n- **Handoff Receipts** -- structured acknowledgment protocol between agents\n- **Cross-Model Audit** -- 3 lenses (security, correctness, governance) with deterministic synthesis\n- **4-model deliberation** -- Claude + Grok + Gemini + Codex debate until consensus\n- **Universal Swarm Triggers** -- "Think and Build", "Keep building", "Ask Delimit"
14
- - **176 MCP tools** -- governance, context, shipping, observability, orchestration, and swarm\n\n---\n\n## GitHub Action\n\nZero-config -- auto-detects your OpenAPI spec:\n\n```yaml\n- uses: delimit-ai/delimit-action@v1\n```\n\nOr with full configuration:\n\n```yaml\nname: API Contract Check\non: pull_request\n\njobs:\n delimit:\n runs-on: ubuntu-latest\n permissions:\n pull-requests: write\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: delimit-ai/delimit-action@v1\n with:\n spec: api/openapi.yaml\n```\n\nThat's it. Delimit auto-fetches the base branch spec, diffs it, and posts a PR comment with breaking changes, semver classification, migration guides, and governance gate results.\n\n[View on GitHub Marketplace](https://github.com/marketplace/actions/delimit-api-governance) | [See a live demo (23 breaking changes)](https://github.com/delimit-ai/delimit-action-demo/pull/2)\n\n### Example PR comment\n\n> **Breaking Changes Detected**\n>\n> | Change | Path | Severity |\n> |--------|------|----------|\n> | endpoint_removed | `DELETE /pets/{petId}` | error |\n> | type_changed | `/pets:GET:200[].id` (string -> integer) | warning |\n> | enum_value_removed | `/pets:GET:200[].status` | warning |\n>\n> **Semver**: MAJOR (1.0.0 -> 2.0.0)\n>\n> **Migration Guide**: 3 steps to update your integration\n>\n> ### Governance Gates\n> | Gate | Status | Chain |\n> |------|--------|-------|\n> | API Lint | Pass/Fail | lint -> semver -> gov_evaluate |\n> | Policy Compliance | Pass/Fail | policy -> evidence_collect |\n> | Security Audit | Pass | security_audit -> evidence_collect |\n> | Deploy Readiness | Ready/Blocked | deploy_plan -> security_audit |\n\n---\n\n## CLI commands\n\n```bash\nnpx delimit-cli quickstart # Clone demo project + guided walkthrough\nnpx delimit-cli try # Zero-risk demo — saves governance report\nnpx delimit-cli demo # Self-contained governance demo\nnpx delimit-cli init # Guided wizard with compliance templates\nnpx delimit-cli init --preset strict # Initialize with strict policy\nnpx delimit-cli setup # Install into all AI assistants\nnpx delimit-cli setup --dry-run # Preview changes first\nnpx delimit-cli lint api/openapi.yaml # Check for breaking changes\nnpx delimit-cli diff old.yaml new.yaml # Compare two specs\nnpx delimit-cli explain old.yaml new.yaml # Generate migration guide\nnpx delimit-cli doctor # Check setup health\nnpx delimit-cli uninstall --dry-run # Preview removal\n```\n\n### What the MCP toolkit adds\n\nWhen installed into your AI coding assistant, Delimit provides tools across two tiers:\n\n#### Free (no account needed)\n\n- **API governance** -- lint, diff, policy enforcement, semver classification\n- **Persistent ledger** -- track tasks across sessions, shared between all AI assistants\n- **Zero-spec extraction** -- generate OpenAPI specs from FastAPI, Express, or NestJS source\n- **Project scan** -- auto-detect specs, frameworks, security issues, and tests\n- **Quickstart** -- guided first-run that proves value in 60 seconds\n\n#### Pro\n\n- **Multi-model deliberation** -- AI models debate until they agree (free: Gemini Flash + GPT-4o-mini; BYOK: any models)\n- **Security audit** -- dependency scanning, secret detection, SAST analysis\n- **Test verification** -- confirms tests ran, measures coverage, generates new tests\n- **Memory & vault** -- persistent context and encrypted secrets across sessions\n- **Evidence collection** -- governance audit trail for compliance\n- **Deploy pipeline** -- governed build, publish, and rollback\n- **OS layer** -- agent identity, execution plans, approval gates\n\n---\n\n## What It Detects\n\n27 change types (17 breaking, 10 non-breaking) -- deterministic rules, not AI inference. Same input always produces the same result.\n\n### Breaking Changes\n\n| # | Change Type | Example |\n|---|-------------|---------|\n| 1 | `endpoint_removed` | `DELETE /users/{id}` removed entirely |\n| 2 | `method_removed` | `PATCH /orders` no longer exists |\n| 3 | `required_param_added` | New required header on `GET /items` |\n| 4 | `param_removed` | `sort` query parameter removed |\n| 5 | `response_removed` | `200 OK` response dropped |\n| 6 | `required_field_added` | Request body now requires `tenant_id` |\n| 7 | `field_removed` | `email` dropped from response object |\n| 8 | `type_changed` | `id` went from `string` to `integer` |\n| 9 | `format_changed` | `date-time` changed to `date` |\n| 10 | `enum_value_removed` | `status: "pending"` no longer valid |\n| 11 | `param_type_changed` | Query param `limit` changed from `integer` to `string` |\n| 12 | `param_required_changed` | `filter` param became required |\n| 13 | `response_type_changed` | Response `data` changed from `array` to `object` |\n| 14 | `security_removed` | OAuth2 security scheme removed |\n| 15 | `security_scope_removed` | `write:pets` scope removed from OAuth2 |\n| 16 | `max_length_decreased` | `name` maxLength reduced from 255 to 100 |\n| 17 | `min_length_increased` | `code` minLength increased from 1 to 5 |\n\n### Non-Breaking Changes\n\n| # | Change Type | Example |\n|---|-------------|---------|\n| 18 | `endpoint_added` | New `POST /webhooks` endpoint |\n| 19 | `method_added` | `PATCH /users/{id}` method added |\n| 20 | `optional_param_added` | Optional `format` query param added |\n| 21 | `response_added` | `201 Created` response added |\n| 22 | `optional_field_added` | Optional `nickname` field added to response |\n| 23 | `enum_value_added` | `status: "archived"` value added |\n| 24 | `description_changed` | Updated description for `/health` endpoint |\n| 25 | `security_added` | API key security scheme added |\n| 26 | `deprecated_added` | `GET /v1/users` marked as deprecated |\n| 27 | `default_changed` | Default value for `page_size` changed from 10 to 20 |\n\n---\n\n## Policy presets\n\n```bash\nnpx delimit-cli init --preset strict # All violations are errors\nnpx delimit-cli init --preset default # Balanced (default)\nnpx delimit-cli init --preset relaxed # All violations are warnings\n```\n\nOr write custom rules in `.delimit/policies.yml`:\n\n```yaml\nrules:\n - id: freeze_v1\n name: Freeze V1 API\n change_types: [endpoint_removed, method_removed, field_removed]\n severity: error\n action: forbid\n conditions:\n path_pattern: "^/v1/.*"\n message: "V1 API is frozen. Changes must be made in V2."\n```\n\n---\n\n## Supported formats\n\n- OpenAPI 3.0 and 3.1\n- Swagger 2.0\n- YAML and JSON\n\n---\n\n## Links\n\n- [delimit.ai](https://delimit.ai) -- homepage\n- [Dashboard](https://app.delimit.ai) -- governance console\n- [Docs](https://delimit.ai/docs) -- full documentation\n- [GitHub Action](https://github.com/marketplace/actions/delimit-api-governance) -- Marketplace listing\n- [Quickstart](https://github.com/delimit-ai/delimit-mcp-server) -- try it in 2 minutes\n- [npm](https://www.npmjs.com/package/delimit-cli) -- CLI package\n- [Pricing](https://delimit.ai/pricing) -- free tier + Pro\n\nMIT License
17
+
18
+ [![npm](https://img.shields.io/npm/v/delimit-cli)](https://www.npmjs.com/package/delimit-cli)
19
+ [![GitHub Action](https://img.shields.io/badge/GitHub%20Action-v1.6.0-blue)](https://github.com/marketplace/actions/delimit-api-governance)
20
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
21
+ [![Glama](https://glama.ai/mcp/servers/delimit-ai/delimit/badge)](https://glama.ai/mcp/servers/delimit-ai/delimit)
22
+ [![API Governance](https://delimit-ai.github.io/badge/pass.svg)](https://github.com/marketplace/actions/delimit-api-governance)
23
+
24
+ <p align="center">
25
+ <img src="docs/demo.gif" alt="Delimit detecting breaking API changes" width="700">
26
+ </p>
27
+
28
+ ---
29
+
30
+ ## Try it in 2 minutes
31
+
32
+ ```bash
33
+ npx delimit-cli demo # See governance in action — no setup needed
34
+ npx delimit-cli init # Set up governance for your project
35
+ npx delimit-cli setup # Configure your AI assistants
36
+ ```
37
+
38
+ No API keys. No account. No config files.
39
+
40
+ ### Pick your first win
41
+
42
+ **Protect my API** — catch breaking changes before merge:
43
+ ```bash
44
+ npx delimit-cli try
45
+ # Creates a sample API, introduces breaking changes, shows what gets blocked.
46
+ # Saves a governance report to delimit-report.md
47
+ ```
48
+
49
+ **Watch for drift** — detect spec changes without review:
50
+ ```bash
51
+ npx delimit-cli init # Sets up governance + drift baseline
52
+ # Weekly drift checks run automatically via GitHub Action
53
+ ```
54
+
55
+ **Run PR copilot** — governance gates on every pull request:
56
+ ```yaml
57
+ # .github/workflows/api-governance.yml
58
+ - uses: delimit-ai/delimit-action@v1
59
+ with:
60
+ spec: api/openapi.yaml
61
+ # Posts gate status, violations, and remediation in PR comments
62
+ ```
63
+
64
+ ---
65
+
66
+ ## What's New in v4.1
67
+
68
+ - **TUI** -- terminal-native Ventures panel, real `delimit think` and `delimit build` commands
69
+ - **Security hardening** -- notify.py stubbed in npm, axios pinned against supply chain attacks
70
+ - **Free tier restructure** -- deliberations use Gemini Flash + GPT-4o-mini (cost: <$20/mo)
71
+ - **Zero-config onboarding** -- auto-detect framework, scan, and first evidence in one command
72
+ - **Auto-approve tools** -- `delimit setup` configures permissions for Claude Code, Codex, and Gemini CLI
73
+
74
+ ### v4.0
75
+
76
+ - **Toolcard Delta Cache** -- SHA256 schema hashing, delta-only transmission, saves tokens
77
+ - **Session Phoenix** -- cross-model session resurrection with soul capture
78
+ - **Handoff Receipts** -- structured acknowledgment protocol between agents
79
+ - **Cross-Model Audit** -- 3 lenses (security, correctness, governance) with deterministic synthesis
80
+ - **4-model deliberation** -- Claude + Grok + Gemini + Codex debate until consensus
81
+ - **Universal Swarm Triggers** -- "Think and Build", "Keep building", "Ask Delimit"
82
+ - **187 MCP tools** -- governance, context, shipping, observability, orchestration, and swarm
83
+
84
+ ---
85
+
86
+ ## GitHub Action
87
+
88
+ Zero-config -- auto-detects your OpenAPI spec:
89
+
90
+ ```yaml
91
+ - uses: delimit-ai/delimit-action@v1
92
+ ```
93
+
94
+ Or with full configuration:
95
+
96
+ ```yaml
97
+ name: API Contract Check
98
+ on: pull_request
99
+
100
+ jobs:
101
+ delimit:
102
+ runs-on: ubuntu-latest
103
+ permissions:
104
+ pull-requests: write
105
+ steps:
106
+ - uses: actions/checkout@v4
107
+ with:
108
+ fetch-depth: 0
109
+ - uses: delimit-ai/delimit-action@v1
110
+ with:
111
+ spec: api/openapi.yaml
112
+ ```
113
+
114
+ That's it. Delimit auto-fetches the base branch spec, diffs it, and posts a PR comment with breaking changes, semver classification, migration guides, and governance gate results.
115
+
116
+ [View on GitHub Marketplace](https://github.com/marketplace/actions/delimit-api-governance) | [See a live demo (23 breaking changes)](https://github.com/delimit-ai/delimit-action-demo/pull/2)
117
+
118
+ ### Example PR comment
119
+
120
+ > **Breaking Changes Detected**
121
+ >
122
+ > | Change | Path | Severity |
123
+ > |--------|------|----------|
124
+ > | endpoint_removed | `DELETE /pets/{petId}` | error |
125
+ > | type_changed | `/pets:GET:200[].id` (string -> integer) | warning |
126
+ > | enum_value_removed | `/pets:GET:200[].status` | warning |
127
+ >
128
+ > **Semver**: MAJOR (1.0.0 -> 2.0.0)
129
+ >
130
+ > **Migration Guide**: 3 steps to update your integration
131
+ >
132
+ > ### Governance Gates
133
+ > | Gate | Status | Chain |
134
+ > |------|--------|-------|
135
+ > | API Lint | Pass/Fail | lint -> semver -> gov_evaluate |
136
+ > | Policy Compliance | Pass/Fail | policy -> evidence_collect |
137
+ > | Security Audit | Pass | security_audit -> evidence_collect |
138
+ > | Deploy Readiness | Ready/Blocked | deploy_plan -> security_audit |
139
+
140
+ ---
141
+
142
+ ## CLI commands
143
+
144
+ ```bash
145
+ npx delimit-cli quickstart # Clone demo project + guided walkthrough
146
+ npx delimit-cli try # Zero-risk demo — saves governance report
147
+ npx delimit-cli demo # Self-contained governance demo
148
+ npx delimit-cli init # Guided wizard with compliance templates
149
+ npx delimit-cli init --preset strict # Initialize with strict policy
150
+ npx delimit-cli setup # Install into all AI assistants
151
+ npx delimit-cli setup --dry-run # Preview changes first
152
+ npx delimit-cli lint api/openapi.yaml # Check for breaking changes
153
+ npx delimit-cli diff old.yaml new.yaml # Compare two specs
154
+ npx delimit-cli explain old.yaml new.yaml # Generate migration guide
155
+ npx delimit-cli doctor # Check setup health
156
+ npx delimit-cli uninstall --dry-run # Preview removal
157
+ ```
158
+
159
+ ### What the MCP toolkit adds
160
+
161
+ When installed into your AI coding assistant, Delimit provides tools across two tiers:
162
+
163
+ #### Free (no account needed)
164
+
165
+ - **API governance** -- lint, diff, policy enforcement, semver classification
166
+ - **Persistent ledger** -- track tasks across sessions, shared between all AI assistants
167
+ - **Zero-spec extraction** -- generate OpenAPI specs from FastAPI, Express, or NestJS source
168
+ - **Project scan** -- auto-detect specs, frameworks, security issues, and tests
169
+ - **Quickstart** -- guided first-run that proves value in 60 seconds
170
+
171
+ #### Pro
172
+
173
+ - **Multi-model deliberation** -- AI models debate until they agree (free: Gemini Flash + GPT-4o-mini; BYOK: any models)
174
+ - **Security audit** -- dependency scanning, secret detection, SAST analysis
175
+ - **Test verification** -- confirms tests ran, measures coverage, generates new tests
176
+ - **Memory & vault** -- persistent context and encrypted secrets across sessions
177
+ - **Evidence collection** -- governance audit trail for compliance
178
+ - **Deploy pipeline** -- governed build, publish, and rollback
179
+ - **OS layer** -- agent identity, execution plans, approval gates
180
+
181
+ ---
182
+
183
+ ## What It Detects
184
+
185
+ 27 change types (17 breaking, 10 non-breaking) -- deterministic rules, not AI inference. Same input always produces the same result.
186
+
187
+ ### Breaking Changes
188
+
189
+ | # | Change Type | Example |
190
+ |---|-------------|---------|
191
+ | 1 | `endpoint_removed` | `DELETE /users/{id}` removed entirely |
192
+ | 2 | `method_removed` | `PATCH /orders` no longer exists |
193
+ | 3 | `required_param_added` | New required header on `GET /items` |
194
+ | 4 | `param_removed` | `sort` query parameter removed |
195
+ | 5 | `response_removed` | `200 OK` response dropped |
196
+ | 6 | `required_field_added` | Request body now requires `tenant_id` |
197
+ | 7 | `field_removed` | `email` dropped from response object |
198
+ | 8 | `type_changed` | `id` went from `string` to `integer` |
199
+ | 9 | `format_changed` | `date-time` changed to `date` |
200
+ | 10 | `enum_value_removed` | `status: "pending"` no longer valid |
201
+ | 11 | `param_type_changed` | Query param `limit` changed from `integer` to `string` |
202
+ | 12 | `param_required_changed` | `filter` param became required |
203
+ | 13 | `response_type_changed` | Response `data` changed from `array` to `object` |
204
+ | 14 | `security_removed` | OAuth2 security scheme removed |
205
+ | 15 | `security_scope_removed` | `write:pets` scope removed from OAuth2 |
206
+ | 16 | `max_length_decreased` | `name` maxLength reduced from 255 to 100 |
207
+ | 17 | `min_length_increased` | `code` minLength increased from 1 to 5 |
208
+
209
+ ### Non-Breaking Changes
210
+
211
+ | # | Change Type | Example |
212
+ |---|-------------|---------|
213
+ | 18 | `endpoint_added` | New `POST /webhooks` endpoint |
214
+ | 19 | `method_added` | `PATCH /users/{id}` method added |
215
+ | 20 | `optional_param_added` | Optional `format` query param added |
216
+ | 21 | `response_added` | `201 Created` response added |
217
+ | 22 | `optional_field_added` | Optional `nickname` field added to response |
218
+ | 23 | `enum_value_added` | `status: "archived"` value added |
219
+ | 24 | `description_changed` | Updated description for `/health` endpoint |
220
+ | 25 | `security_added` | API key security scheme added |
221
+ | 26 | `deprecated_added` | `GET /v1/users` marked as deprecated |
222
+ | 27 | `default_changed` | Default value for `page_size` changed from 10 to 20 |
223
+
224
+ ---
225
+
226
+ ## Policy presets
227
+
228
+ ```bash
229
+ npx delimit-cli init --preset strict # All violations are errors
230
+ npx delimit-cli init --preset default # Balanced (default)
231
+ npx delimit-cli init --preset relaxed # All violations are warnings
232
+ ```
233
+
234
+ Or write custom rules in `.delimit/policies.yml`:
235
+
236
+ ```yaml
237
+ rules:
238
+ - id: freeze_v1
239
+ name: Freeze V1 API
240
+ change_types: [endpoint_removed, method_removed, field_removed]
241
+ severity: error
242
+ action: forbid
243
+ conditions:
244
+ path_pattern: "^/v1/.*"
245
+ message: "V1 API is frozen. Changes must be made in V2."
246
+ ```
247
+
248
+ ---
249
+
250
+ ## Supported formats
251
+
252
+ - OpenAPI 3.0 and 3.1
253
+ - Swagger 2.0
254
+ - YAML and JSON
255
+
256
+ ---
257
+
258
+ ## Links
259
+
260
+ - [delimit.ai](https://delimit.ai) -- homepage
261
+ - [Dashboard](https://app.delimit.ai) -- governance console
262
+ - [Docs](https://delimit.ai/docs) -- full documentation
263
+ - [GitHub Action](https://github.com/marketplace/actions/delimit-api-governance) -- Marketplace listing
264
+ - [Quickstart](https://github.com/delimit-ai/delimit-mcp-server) -- try it in 2 minutes
265
+ - [npm](https://www.npmjs.com/package/delimit-cli) -- CLI package
266
+ - [Pricing](https://delimit.ai/pricing) -- free tier + Pro
267
+
268
+ MIT License
@@ -767,23 +767,44 @@ exit 127
767
767
  fs.chmodSync(shimPath, '755');
768
768
  }
769
769
 
770
- // Add to PATH in shell rc files
770
+ // Add to PATH in shell rc files (create if missing)
771
771
  const pathLine = `export PATH="${shimsDir}:$PATH" # Delimit governance wrapping`;
772
- for (const rc of ['.bashrc', '.zshrc']) {
772
+ let pathWritten = false;
773
+ for (const rc of ['.bashrc', '.zshrc', '.profile']) {
773
774
  const rcPath = path.join(os.homedir(), rc);
774
- if (fs.existsSync(rcPath)) {
775
- const content = fs.readFileSync(rcPath, 'utf-8');
776
- if (!content.includes('.delimit/shims')) {
777
- fs.appendFileSync(rcPath, `\n# Delimit governance wrapping\n${pathLine}\n`);
775
+ try {
776
+ if (fs.existsSync(rcPath)) {
777
+ const content = fs.readFileSync(rcPath, 'utf-8');
778
+ if (!content.includes('.delimit/shims')) {
779
+ fs.appendFileSync(rcPath, `\n# Delimit governance wrapping\n${pathLine}\n`);
780
+ }
781
+ pathWritten = true;
778
782
  }
779
- }
783
+ } catch { /* skip unreadable files */ }
780
784
  }
785
+ // If no rc files exist, create .bashrc with the PATH export
786
+ if (!pathWritten) {
787
+ const bashrc = path.join(os.homedir(), '.bashrc');
788
+ fs.writeFileSync(bashrc, `# Delimit governance wrapping\n${pathLine}\n`);
789
+ pathWritten = true;
790
+ }
791
+ // Also write to /etc/profile.d/ if writable (login shells)
792
+ try {
793
+ const profileD = '/etc/profile.d/delimit-shims.sh';
794
+ if (!fs.existsSync(profileD)) {
795
+ fs.writeFileSync(profileD, `# Delimit governance wrapping\n${pathLine}\n`);
796
+ }
797
+ } catch { /* not writable, skip */ }
781
798
 
782
799
  if (shimsInstalled) {
783
800
  await logp(` ${green('✓')} Governance shims updated`);
784
801
  } else {
785
802
  log(` ${green('✓')} Governance wrapping enabled`);
786
- log(` ${dim(' Restart your terminal or run: source ~/.bashrc')}`);
803
+ log('');
804
+ log(` ${bold('To activate now, run:')}`);
805
+ log(` ${green('source ~/.bashrc')}`);
806
+ log('');
807
+ log(` ${dim('Or restart your terminal. The banner appears before each AI session.')}`);
787
808
  }
788
809
  } else {
789
810
  log(` ${dim(' Skipped. Enable later: delimit shims enable')}`);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "delimit-cli",
3
3
  "mcpName": "io.github.delimit-ai/delimit-mcp-server",
4
- "version": "4.1.14",
4
+ "version": "4.1.16",
5
5
  "description": "Unify Claude Code, Codex, Cursor, and Gemini CLI with persistent context, governance, and multi-model debate.",
6
6
  "main": "index.js",
7
7
  "files": [