@bradheitmann/odin-sentinel 0.4.2 → 0.4.4

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
@@ -28,6 +28,132 @@ programming language.
28
28
  For a recommended first team, see
29
29
  [docs/guides/recommended-starter-team.md](docs/guides/recommended-starter-team.md).
30
30
 
31
+ ## Quick Start
32
+
33
+ ### 1. Install
34
+
35
+ ```bash
36
+ npm i -g @bradheitmann/odin-sentinel
37
+ ```
38
+
39
+ Or use `npx` without installing — see the host-specific configs below.
40
+
41
+ ### 2. Configure your MCP host
42
+
43
+ Pick the one you use. Restart the host after editing.
44
+
45
+ **Claude Code**
46
+
47
+ ```bash
48
+ claude mcp add odin-sentinel -- npx -y -p @bradheitmann/odin-sentinel odin-sentinel-mcp
49
+ ```
50
+
51
+ **Codex** (`~/.codex/config.toml`)
52
+
53
+ ```toml
54
+ [mcp_servers.odin-sentinel]
55
+ command = "npx"
56
+ args = ["-y", "-p", "@bradheitmann/odin-sentinel", "odin-sentinel-mcp"]
57
+ ```
58
+
59
+ **Cursor / Cursor CLI / VS Code / Factory (Droid) / Pi** (`mcpServers` JSON)
60
+
61
+ ```json
62
+ {
63
+ "mcpServers": {
64
+ "odin-sentinel": {
65
+ "command": "npx",
66
+ "args": ["-y", "-p", "@bradheitmann/odin-sentinel", "odin-sentinel-mcp"]
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ **Zed** (`~/.config/zed/settings.json` → `context_servers`)
73
+
74
+ ```json
75
+ "odin-sentinel": {
76
+ "source": "custom",
77
+ "command": "npx",
78
+ "args": ["-y", "-p", "@bradheitmann/odin-sentinel", "odin-sentinel-mcp"]
79
+ }
80
+ ```
81
+
82
+ **Goose** (`~/.config/goose/config.yaml` → `extensions`)
83
+
84
+ ```yaml
85
+ odin-sentinel:
86
+ type: stdio
87
+ cmd: npx
88
+ args: ["-y", "-p", "@bradheitmann/odin-sentinel", "odin-sentinel-mcp"]
89
+ enabled: true
90
+ ```
91
+
92
+ **Crush** (`~/.config/crush/crush.json` → `mcp`)
93
+
94
+ ```json
95
+ {
96
+ "mcp": {
97
+ "odin-sentinel": {
98
+ "type": "stdio",
99
+ "command": "npx",
100
+ "args": ["-y", "-p", "@bradheitmann/odin-sentinel", "odin-sentinel-mcp"]
101
+ }
102
+ }
103
+ }
104
+ ```
105
+
106
+ **OpenCode** (`~/.config/opencode/opencode.json` → `mcp`)
107
+
108
+ ```json
109
+ {
110
+ "mcp": {
111
+ "odin-sentinel": {
112
+ "type": "local",
113
+ "command": ["npx", "-y", "-p", "@bradheitmann/odin-sentinel", "odin-sentinel-mcp"],
114
+ "enabled": true
115
+ }
116
+ }
117
+ }
118
+ ```
119
+
120
+ **OpenHands** (`~/.openhands/config.toml`)
121
+
122
+ ```toml
123
+ [mcp.stdio_servers.odin-sentinel]
124
+ name = "odin-sentinel"
125
+ command = "npx"
126
+ args = ["-y", "-p", "@bradheitmann/odin-sentinel", "odin-sentinel-mcp"]
127
+ ```
128
+
129
+ ### 3. Use it
130
+
131
+ After restarting the host, give the agent an instruction like:
132
+
133
+ > Use the `odin-sentinel` MCP server. Call `odin.get_startup_packet`, then bootstrap an executive office and one development pod.
134
+
135
+ The agent will read the protocol resources (`odin://protocol/*`), follow the role contracts, and stay inside the SCP governance rules.
136
+
137
+ ### 4. Verify (optional)
138
+
139
+ A one-line smoke test that works without any host:
140
+
141
+ ```bash
142
+ printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}\n' \
143
+ | npx -y -p @bradheitmann/odin-sentinel odin-sentinel-mcp
144
+ ```
145
+
146
+ A successful response includes `"serverInfo":{"name":"odin-sentinel","version":"0.4.4"}`.
147
+
148
+ ### Claude Code plugin (optional)
149
+
150
+ If you're on Claude Code, you can install the SCP skill + MCP server together as a plugin:
151
+
152
+ ```bash
153
+ claude plugin marketplace add bradheitmann/odin-sentinel
154
+ claude plugin install sentinel-coordination-protocol@odin-sentinel
155
+ ```
156
+
31
157
  ## Terms
32
158
 
33
159
  - ODIN Sentinel: this MCP server and its portable team-coordination protocol.
@@ -82,12 +208,14 @@ For a recommended first team, see
82
208
  - `odin://protocol/delegation` - visible-role delegation contract
83
209
  - `odin://protocol/receipts/boot` - boot receipt template
84
210
  - `odin://protocol/receipts/team-manifest` - team manifest template
211
+ - `odin://protocol/bootstrap-skill` - full Sentinel Coordination Protocol skill
85
212
 
86
213
  ## Provided MCP Tools
87
214
 
88
215
  - `odin.get_version`
89
216
  - `odin.get_startup_packet`
90
217
  - `odin.get_role_profile`
218
+ - `odin.get_bootstrap_skill`
91
219
  - `odin.validate_boot_receipt`
92
220
  - `odin.validate_team_manifest`
93
221
  - `odin.get_delegation_packet`
@@ -95,6 +223,12 @@ For a recommended first team, see
95
223
  - `odin.get_closeout_checklist`
96
224
  - `odin.get_runtime_notice`
97
225
  - `odin.export_protocol_snapshot`
226
+ - `odin.compute_surface_layout`
227
+ - `odin.compute_surface_layout_gate`
228
+ - `odin.compile_session_report`
229
+ - `odin.preview_telemetry_redaction`
230
+ - `odin.submit_session_report`
231
+ - `odin.get_telemetry_config`
98
232
 
99
233
  ## Self-Contained Protocol
100
234
 
@@ -140,16 +274,22 @@ pnpm install
140
274
  pnpm run build
141
275
  ```
142
276
 
143
- After the package is published, MCP clients can use the package directly:
277
+ Or install from npm:
144
278
 
145
279
  ```bash
146
- pnpm dlx odin-sentinel
280
+ npm i -g @bradheitmann/odin-sentinel
147
281
  ```
148
282
 
149
- or:
283
+ Then run the MCP server directly:
150
284
 
151
285
  ```bash
152
- npx -y odin-sentinel
286
+ odin-sentinel-mcp
287
+ ```
288
+
289
+ For zero-install use from any MCP host config:
290
+
291
+ ```bash
292
+ npx -y -p @bradheitmann/odin-sentinel odin-sentinel-mcp
153
293
  ```
154
294
 
155
295
  See [docs/reference/distribution.md](docs/reference/distribution.md).
@@ -271,15 +411,6 @@ pnpm run build
271
411
  pnpm run validate
272
412
  ```
273
413
 
274
- ## Open Source Hygiene
275
-
276
- This repository is intended to become public later. Do not commit:
277
-
278
- - personal file paths
279
- - account names
280
- - tokens, keys, or credentials
281
- - project-specific handoff content
282
- - private account details
414
+ ## License
283
415
 
284
- Keep protocol files generic and put local deployment details in untracked client
285
- configuration.
416
+ MIT. See [LICENSE](LICENSE).
@@ -1,11 +1,8 @@
1
- // Local pre-redaction. Strips file-system paths, email addresses, and common
2
- // secret tokens before any network transmission. Intentionally conservative:
3
- // over-redacts rather than under-redacts. The Worker may perform a second
4
- // redaction pass via GLM if configured.
1
+ // Pre-redaction for outbound payloads. Strips file-system paths, email
2
+ // addresses, and common secret token shapes. Intentionally conservative:
3
+ // over-redacts rather than under-redacts.
5
4
  const SLASH = "/";
6
5
  const BACKSLASH = "\\";
7
- // Constructed from segments to avoid emitting literal home-path strings in
8
- // this source file (the public-surface audit forbids them).
9
6
  const HOME_USERS_RE = new RegExp(`${SLASH}${"U" + "sers"}${SLASH}[^${SLASH}\\s"']+`, "g");
10
7
  const HOME_LINUX_RE = new RegExp(`${SLASH}${"ho" + "me"}${SLASH}[^${SLASH}\\s"']+`, "g");
11
8
  const HOME_WIN_RE = new RegExp(`${BACKSLASH}${BACKSLASH}${"U" + "sers"}${BACKSLASH}${BACKSLASH}[^${BACKSLASH}\\s"']+`, "g");
@@ -1 +1 @@
1
- {"version":3,"file":"redactor.js","sourceRoot":"","sources":["../../../src/telemetry/redactor.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,wCAAwC;AAExC,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB,2EAA2E;AAC3E,4DAA4D;AAC5D,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,KAAK,KAAK,SAAS,EAClD,GAAG,CACJ,CAAC;AACF,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,KAAK,SAAS,EACjD,GAAG,CACJ,CAAC;AACF,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,KAAK,SAAS,SAAS,EACtF,GAAG,CACJ,CAAC;AAEF,MAAM,QAAQ,GAAG,iDAAiD,CAAC;AAEnE,0EAA0E;AAC1E,gEAAgE;AAChE,MAAM,cAAc,GAAa;IAC/B,0BAA0B;IAC1B,+BAA+B;IAC/B,2BAA2B;IAC3B,2BAA2B;IAC3B,6BAA6B;IAC7B,gCAAgC;CACjC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,MAAM,GAAG,KAAK;SACf,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;SAChC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;SAChC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;SAC9B,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,OAAU;IACzC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,OAAO,CAAiB,CAAC;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAiB,CAAC;IAChG,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,EAAE,CAAC;YAC9E,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAsB,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"redactor.js","sourceRoot":"","sources":["../../../src/telemetry/redactor.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,0CAA0C;AAE1C,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,KAAK,KAAK,SAAS,EAClD,GAAG,CACJ,CAAC;AACF,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,KAAK,SAAS,EACjD,GAAG,CACJ,CAAC;AACF,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,KAAK,SAAS,SAAS,EACtF,GAAG,CACJ,CAAC;AAEF,MAAM,QAAQ,GAAG,iDAAiD,CAAC;AAEnE,0EAA0E;AAC1E,gEAAgE;AAChE,MAAM,cAAc,GAAa;IAC/B,0BAA0B;IAC1B,+BAA+B;IAC/B,2BAA2B;IAC3B,2BAA2B;IAC3B,6BAA6B;IAC7B,gCAAgC;CACjC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,MAAM,GAAG,KAAK;SACf,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;SAChC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;SAChC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;SAC9B,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,OAAU;IACzC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,OAAO,CAAiB,CAAC;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAiB,CAAC;IAChG,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,EAAE,CAAC;YAC9E,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAsB,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -5,26 +5,34 @@ an npm package that ships prebuilt JavaScript and protocol files.
5
5
 
6
6
  ## Recommended Install Path
7
7
 
8
- After publishing:
9
-
10
8
  ```bash
11
- pnpm dlx odin-sentinel
9
+ npm i -g @bradheitmann/odin-sentinel
12
10
  ```
13
11
 
14
- MCP client configuration can then use:
12
+ MCP client configuration can then use the installed binary directly:
15
13
 
16
14
  ```json
17
15
  {
18
16
  "mcpServers": {
19
17
  "odin-sentinel": {
20
- "command": "pnpm",
21
- "args": ["dlx", "odin-sentinel"]
18
+ "command": "odin-sentinel-mcp"
22
19
  }
23
20
  }
24
21
  }
25
22
  ```
26
23
 
27
- `npx -y odin-sentinel` is also viable for npm-first clients.
24
+ For zero-install via `npx`:
25
+
26
+ ```json
27
+ {
28
+ "mcpServers": {
29
+ "odin-sentinel": {
30
+ "command": "npx",
31
+ "args": ["-y", "-p", "@bradheitmann/odin-sentinel", "odin-sentinel-mcp"]
32
+ }
33
+ }
34
+ }
35
+ ```
28
36
 
29
37
  ## Local Clone Path
30
38
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bradheitmann/odin-sentinel",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },