@bradheitmann/odin-sentinel 0.4.4 → 0.4.6
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/AGENTS.md +64 -0
- package/CLAUDE.md +43 -0
- package/README.md +102 -335
- package/dist/src/mcp/server.js +43 -12
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/protocol/schemas.d.ts +2529 -4
- package/dist/src/protocol/schemas.js +214 -18
- package/dist/src/protocol/schemas.js.map +1 -1
- package/dist/src/protocol/service.d.ts +96 -2
- package/dist/src/protocol/service.js +516 -4
- package/dist/src/protocol/service.js.map +1 -1
- package/dist/src/protocol/surface-layout.d.ts +40 -1
- package/dist/src/protocol/surface-layout.js +98 -1
- package/dist/src/protocol/surface-layout.js.map +1 -1
- package/dist/src/protocol/validators.d.ts +3 -0
- package/dist/src/protocol/validators.js +28 -0
- package/dist/src/protocol/validators.js.map +1 -1
- package/dist/src/protocol/version.d.ts +3 -0
- package/dist/src/protocol/version.js +3 -0
- package/dist/src/protocol/version.js.map +1 -1
- package/dist/src/telemetry/config.d.ts +8 -0
- package/dist/src/telemetry/config.js +24 -0
- package/dist/src/telemetry/config.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +5 -5
- package/dist/src/telemetry/index.js +3 -3
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/redactor.js +25 -7
- package/dist/src/telemetry/redactor.js.map +1 -1
- package/dist/src/telemetry/report.d.ts +108 -0
- package/dist/src/telemetry/report.js +83 -3
- package/dist/src/telemetry/report.js.map +1 -1
- package/dist/src/telemetry/submit.d.ts +2 -0
- package/dist/src/telemetry/submit.js +79 -6
- package/dist/src/telemetry/submit.js.map +1 -1
- package/docs/guides/quick-start.md +112 -44
- package/docs/guides/quickstart-prompts.md +65 -0
- package/docs/guides/recommended-starter-team.md +45 -27
- package/docs/reference/client-compatibility.md +20 -43
- package/docs/reference/cost-and-privacy.md +26 -23
- package/docs/reference/distribution.md +40 -55
- package/docs/reference/public-surface-audit.md +35 -114
- package/package.json +19 -4
- package/protocol/SCP.md +8 -1
- package/protocol/bootstrap-skill.md +16 -11
- package/protocol/closeout.yaml +7 -1
- package/protocol/delegation.yaml +1 -1
- package/protocol/model-profiles.yaml +55 -1
- package/protocol/receipts/boot-receipt.yaml +42 -0
- package/protocol/receipts/team-manifest.yaml +41 -0
- package/protocol/roles.yaml +69 -1
- package/protocol/topology.yaml +78 -36
- package/scripts/audit/public-surface.mjs +48 -19
- package/scripts/audit/verify-pack.mjs +294 -27
- package/templates/dev-slice-template.md +56 -0
- package/templates/pm-role-template.md +61 -0
- package/templates/qa-slice-template.md +46 -0
- package/templates/team-manifest-template.yaml +163 -0
package/dist/src/mcp/server.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import YAML from "yaml";
|
|
3
|
-
import { VERSION, exportProtocolSnapshot, getCloseoutChecklist, getDelegationPacket, getRoleProfile, getRuntimeNotice, getStartupPacket, loadProtocolData, validateBootReceipt, validateDelegationPacket, validateTeamManifest } from "../protocol/service.js";
|
|
4
|
-
import { computeSurfaceLayout, computeSurfaceLayoutGate, renderSurfaceLayoutAscii } from "../protocol/surface-layout.js";
|
|
5
|
-
import { compileSessionReport, readTelemetryConfig, redactPayload, submitSessionReport } from "../telemetry/index.js";
|
|
6
|
-
import { bootReceiptInputShape, closeoutChecklistInputShape, delegationPacketInputShape, recordInputShape,
|
|
3
|
+
import { VERSION, evaluateReadinessGate, exportProtocolSnapshot, getActiveWatchPacket, getBootReceiptExamples, getBootReceiptSchema, getCloseoutChecklist, getDelegationPacket, getHarnessProbeMatrix, getRoleProfile, getRuntimeNotice, getStartupPacket, getVersionMetadata, loadProtocolData, validateBootReceipt, validateDelegationPacket, validateTeamManifest } from "../protocol/service.js";
|
|
4
|
+
import { computeSurfaceLayout, computeSurfaceLayoutGate, computeHumanCmuxQuadLayout, renderSurfaceLayoutAscii } from "../protocol/surface-layout.js";
|
|
5
|
+
import { compileSessionReport, publicTelemetryConfig, readTelemetryConfig, redactPayload, submitSessionReport } from "../telemetry/index.js";
|
|
6
|
+
import { bootReceiptInputShape, activeWatchPacketInputShape, closeoutChecklistInputShape, delegationPacketInputShape, harnessProbeInputShape, recordInputShape, readinessGateInputShape, reportRecordInputSchema, roleProfileInputShape, sessionReportInputShape, submitSessionReportInputSchema, startupPacketInputShape, surfaceLayoutGateInputShape, surfaceLayoutInputShape, teamManifestInputShape } from "../protocol/schemas.js";
|
|
7
7
|
function jsonText(value) {
|
|
8
8
|
return {
|
|
9
9
|
content: [
|
|
@@ -130,7 +130,15 @@ export function createServer() {
|
|
|
130
130
|
server.registerTool("odin.get_version", {
|
|
131
131
|
title: "Get ODIN Sentinel Version",
|
|
132
132
|
description: "Return server and protocol version metadata."
|
|
133
|
-
}, () => jsonText(
|
|
133
|
+
}, () => jsonText(getVersionMetadata()));
|
|
134
|
+
server.registerTool("odin.get_boot_receipt_schema", {
|
|
135
|
+
title: "Get Boot Receipt Schema",
|
|
136
|
+
description: "Return canonical boot receipt fields, types, lifecycle states, examples, and minimum MCP version."
|
|
137
|
+
}, () => jsonText(getBootReceiptSchema()));
|
|
138
|
+
server.registerTool("odin.get_boot_receipt_examples", {
|
|
139
|
+
title: "Get Boot Receipt Examples",
|
|
140
|
+
description: "Return valid PM, ODIN, DEV waiting-for-scope, QA, and SHADOW receipt examples."
|
|
141
|
+
}, () => jsonText(getBootReceiptExamples()));
|
|
134
142
|
server.registerTool("odin.get_runtime_notice", {
|
|
135
143
|
title: "Get Runtime Notice",
|
|
136
144
|
description: "Return cost, privacy, inference, telemetry, and standalone runtime boundaries."
|
|
@@ -155,6 +163,21 @@ export function createServer() {
|
|
|
155
163
|
description: "Check a team manifest for required ODIN/SCP topology fields.",
|
|
156
164
|
inputSchema: teamManifestInputShape
|
|
157
165
|
}, (input) => jsonText(validateTeamManifest(input.manifest)));
|
|
166
|
+
server.registerTool("odin.evaluate_readiness_gate", {
|
|
167
|
+
title: "Evaluate Governed Launch Readiness Gate",
|
|
168
|
+
description: "Return the governed launch readiness matrix before occupant launch. Output is zero-secret and classifies MCP, SCP skill, auth, permission, model, and role-compatibility blockers.",
|
|
169
|
+
inputSchema: readinessGateInputShape
|
|
170
|
+
}, (input) => jsonText(evaluateReadinessGate(input)));
|
|
171
|
+
server.registerTool("odin.get_active_watch_packet", {
|
|
172
|
+
title: "Get ODIN Active Watch Packet",
|
|
173
|
+
description: "Return exact ACTIVE_WATCH prompt text, watch targets, cadence, blocker taxonomy, interventions, and terminal states for an ODIN role.",
|
|
174
|
+
inputSchema: activeWatchPacketInputShape
|
|
175
|
+
}, (input) => jsonText(getActiveWatchPacket(input)));
|
|
176
|
+
server.registerTool("odin.get_harness_probe_matrix", {
|
|
177
|
+
title: "Get Harness Probe Matrix",
|
|
178
|
+
description: "Classify harness readiness, auth/login/permission blockers, local inference visible-output smoke results, and skill/MCP capability flags without emitting secret values.",
|
|
179
|
+
inputSchema: harnessProbeInputShape
|
|
180
|
+
}, (input) => jsonText(getHarnessProbeMatrix(input)));
|
|
158
181
|
server.registerTool("odin.get_closeout_checklist", {
|
|
159
182
|
title: "Get Closeout Checklist",
|
|
160
183
|
description: "Return the checklist for continuity parking or full session shutdown.",
|
|
@@ -169,17 +192,25 @@ export function createServer() {
|
|
|
169
192
|
description: "Return the deterministic CMUX surface layout for a given team count. EXEC PM must call this before any spawn beyond A/EXEC to honor the surface custodianship contract.",
|
|
170
193
|
inputSchema: surfaceLayoutInputShape
|
|
171
194
|
}, (input) => {
|
|
172
|
-
const
|
|
195
|
+
const profile = input.profile ?? "human_cmux_quad";
|
|
196
|
+
const layout = profile === "human_cmux_quad"
|
|
197
|
+
? computeHumanCmuxQuadLayout(input.teamCount)
|
|
198
|
+
: computeSurfaceLayout(input.teamCount);
|
|
173
199
|
return jsonText({
|
|
174
200
|
...layout,
|
|
175
|
-
ascii: renderSurfaceLayoutAscii(layout)
|
|
201
|
+
ascii: "columns" in layout ? renderSurfaceLayoutAscii(layout) : "[EXEC] [TEAM-B] [TEAM-C] [BLOCKERS]"
|
|
176
202
|
});
|
|
177
203
|
});
|
|
204
|
+
server.registerTool("odin.compute_human_cmux_quad_layout", {
|
|
205
|
+
title: "Compute Human CMUX Quad Layout",
|
|
206
|
+
description: "Return the canonical human_cmux_quad governed team layout with one workspace, four panes, explicit role-slot surfaces, empty pre-launch slots, and machine CMUX instructions.",
|
|
207
|
+
inputSchema: surfaceLayoutInputShape
|
|
208
|
+
}, (input) => jsonText(computeHumanCmuxQuadLayout(input.teamCount)));
|
|
178
209
|
server.registerTool("odin.compute_surface_layout_gate", {
|
|
179
210
|
title: "Compute Surface Layout Gate",
|
|
180
211
|
description: "Return the pre-staffing checklist EXEC PM must complete when growing the team roster from fromTeamCount to toTeamCount.",
|
|
181
212
|
inputSchema: surfaceLayoutGateInputShape
|
|
182
|
-
}, (input) => jsonText(computeSurfaceLayoutGate(input.fromTeamCount, input.toTeamCount)));
|
|
213
|
+
}, (input) => jsonText(computeSurfaceLayoutGate(input.fromTeamCount, input.toTeamCount, input)));
|
|
183
214
|
server.registerTool("odin.get_bootstrap_skill", {
|
|
184
215
|
title: "Get Bootstrap Skill",
|
|
185
216
|
description: "Return the full Sentinel Coordination Protocol skill content. Agents on any MCP-capable host can invoke this at session start to load the SCP governance contract, self-bootstrap procedure, and role topology rules without needing a Claude Code skill installed locally."
|
|
@@ -194,7 +225,7 @@ export function createServer() {
|
|
|
194
225
|
server.registerTool("odin.get_telemetry_config", {
|
|
195
226
|
title: "Get Telemetry Config",
|
|
196
227
|
description: "Return current telemetry configuration. Telemetry is opt-in; reports are never sent unless ODIN_TELEMETRY_ENDPOINT is set in the environment."
|
|
197
|
-
}, () => jsonText(readTelemetryConfig()));
|
|
228
|
+
}, () => jsonText(publicTelemetryConfig(readTelemetryConfig())));
|
|
198
229
|
server.registerTool("odin.compile_session_report", {
|
|
199
230
|
title: "Compile Session Report",
|
|
200
231
|
description: "Build a structured end-of-session report from counts and class labels. EXEC PM should call this at closeout. The compiled report is returned to the caller; user review and explicit submission are required before any network transmission.",
|
|
@@ -203,13 +234,13 @@ export function createServer() {
|
|
|
203
234
|
server.registerTool("odin.preview_telemetry_redaction", {
|
|
204
235
|
title: "Preview Telemetry Redaction",
|
|
205
236
|
description: "Return the redacted form of a report payload (file paths, emails, and common secret tokens replaced). Use this for user-facing consent flows before any submission.",
|
|
206
|
-
inputSchema:
|
|
237
|
+
inputSchema: reportRecordInputSchema
|
|
207
238
|
}, (input) => jsonText(redactPayload(input.report)));
|
|
208
239
|
server.registerTool("odin.submit_session_report", {
|
|
209
240
|
title: "Submit Session Report",
|
|
210
241
|
description: "Submit a redacted session report to the configured telemetry endpoint. Telemetry is disabled by default; this tool returns {submitted: false, reason: ...} unless ODIN_TELEMETRY_ENDPOINT is set. Only invoke after explicit user consent for the current session.",
|
|
211
|
-
inputSchema:
|
|
212
|
-
}, async (input) => jsonText(await submitSessionReport(input.report)));
|
|
242
|
+
inputSchema: submitSessionReportInputSchema
|
|
243
|
+
}, async (input) => jsonText(await submitSessionReport(input.report, { userConsentConfirmed: input.userConsentConfirmed === true })));
|
|
213
244
|
return server;
|
|
214
245
|
}
|
|
215
246
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,OAAO,EACP,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|