@honua/mcp-server 0.1.9-beta.0 → 0.1.11-beta.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.
- package/certification/setup-parity.md +79 -0
- package/dist/src/certification/admin-parity.d.ts +7 -1
- package/dist/src/certification/admin-parity.d.ts.map +1 -1
- package/dist/src/certification/admin-parity.js +9 -2
- package/dist/src/certification/setup-parity.d.ts +86 -0
- package/dist/src/certification/setup-parity.d.ts.map +1 -0
- package/dist/src/certification/setup-parity.js +188 -0
- package/dist/src/eval/cli.js +2 -2
- package/dist/src/eval/corpus.d.ts.map +1 -1
- package/dist/src/eval/corpus.js +6 -5
- package/dist/src/eval/grade.d.ts.map +1 -1
- package/dist/src/eval/grade.js +25 -0
- package/dist/src/eval/report.d.ts +9 -0
- package/dist/src/eval/report.d.ts.map +1 -1
- package/dist/src/eval/report.js +15 -5
- package/dist/src/eval/runner.d.ts.map +1 -1
- package/dist/src/eval/runner.js +16 -1
- package/dist/src/eval/types.d.ts +37 -2
- package/dist/src/eval/types.d.ts.map +1 -1
- package/dist/src/eval/workflow-corpus.d.ts +9 -0
- package/dist/src/eval/workflow-corpus.d.ts.map +1 -0
- package/dist/src/eval/workflow-corpus.js +306 -0
- package/dist/src/proxy.d.ts.map +1 -1
- package/dist/src/proxy.js +7 -1
- package/dist/src/release/zero-to-map-checkpoint.d.ts.map +1 -1
- package/dist/src/release/zero-to-map-checkpoint.js +9 -1
- package/dist/src/release/zero-to-map-cli.d.ts +11 -1
- package/dist/src/release/zero-to-map-cli.d.ts.map +1 -1
- package/dist/src/release/zero-to-map-cli.js +52 -12
- package/dist/src/release/zero-to-map.d.ts +132 -59
- package/dist/src/release/zero-to-map.d.ts.map +1 -1
- package/dist/src/release/zero-to-map.js +459 -167
- package/package.json +7 -4
- package/release/zero-to-map/README.md +76 -79
- package/release/zero-to-map/configs/claude-code.mcp.json +1 -1
- package/release/zero-to-map/configs/claude-desktop.json +1 -1
- package/release/zero-to-map/configs/cursor.json +1 -1
- package/release/zero-to-map/journey.v1.json +965 -502
- package/release/zero-to-map/contracts/esri-gp-mcp.v1.json +0 -73
|
@@ -4,51 +4,33 @@ export declare const ZERO_TO_MAP_CONSOLE_RECEIPT_SCHEMA: "honua.zero-to-map.cons
|
|
|
4
4
|
export declare const ZERO_TO_MAP_CONSOLE_RECEIPT_REQUEST_SCHEMA: "honua.zero-to-map.console-receipt-request/v1";
|
|
5
5
|
export declare const ZERO_TO_MAP_CATALOG_RECEIPT_SCHEMA: "honua.zero-to-map.catalog/v1";
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* `esri-gp`. Each profile is verified independently and the expected catalog
|
|
12
|
-
* total is derived by summing the base roster and the enabled profile rosters;
|
|
13
|
-
* it is never written down as a single magic number, so enabling or retiring a
|
|
14
|
-
* profile cannot silently disagree with the assertion.
|
|
7
|
+
* Stages in the release journey: install, admin, style, geoprocessing, studio,
|
|
8
|
+
* proposal, console, artifact. `style` proves a canonical style applied to a
|
|
9
|
+
* *published* layer reaches rendered pixels. `console` fetches the share URLs
|
|
10
|
+
* the same admin publish returned; it does not import a second-principal receipt.
|
|
15
11
|
*/
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
* repository (the checked-in Esri GP MCP contract and the journey plan).
|
|
23
|
-
* Any further members are counted, digested and reported, but deliberately
|
|
24
|
-
* not name-asserted: naming tools the server has never published would be a
|
|
25
|
-
* fabricated assertion rather than evidence.
|
|
26
|
-
*/
|
|
27
|
-
readonly confirmedMembers: readonly string[];
|
|
28
|
-
/**
|
|
29
|
-
* Tool-name prefixes that attribute an advertised additive tool to this
|
|
30
|
-
* profile. A profile with no prefixes is the fallback bucket for additive
|
|
31
|
-
* tools that no other profile claims.
|
|
32
|
-
*/
|
|
33
|
-
readonly namePrefixes: readonly string[];
|
|
34
|
-
}
|
|
35
|
-
/** Identifier of the always-required default roster. */
|
|
36
|
-
export declare const ZERO_TO_MAP_BASE_PROFILE_ID = "base";
|
|
12
|
+
export declare const ZERO_TO_MAP_STAGE_COUNT = 8;
|
|
13
|
+
/**
|
|
14
|
+
* Receipt id for the closed operator roster: the MCP tools this journey calls,
|
|
15
|
+
* not a 432/441 catalog total and not the `analysis` or `esri-gp` profiles.
|
|
16
|
+
*/
|
|
17
|
+
export declare const ZERO_TO_MAP_CLOSED_ROSTER_ID = "operator";
|
|
37
18
|
/**
|
|
38
|
-
*
|
|
19
|
+
* The reserved `tools/list` view name that opts a request back out of any
|
|
20
|
+
* server-configured or session-negotiated workflow view and returns the
|
|
21
|
+
* complete paginated catalog (honua-server#3428).
|
|
39
22
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
23
|
+
* The candidate may publish a bounded workflow view and may make one the
|
|
24
|
+
* default through {@link ZERO_TO_MAP_WORKFLOW_VIEW_CONFIG_KEY}. Selecting a
|
|
25
|
+
* view can only *narrow* discovery, so a host that configures a default view
|
|
26
|
+
* would hide tools the journey calls. The preflight always selects this escape
|
|
27
|
+
* hatch explicitly rather than relying on the candidate having no default.
|
|
44
28
|
*/
|
|
45
|
-
export declare const
|
|
46
|
-
/**
|
|
47
|
-
export declare const
|
|
48
|
-
/**
|
|
49
|
-
export declare const
|
|
50
|
-
/** Derived candidate total. Never hardcode this; it follows from the enabled profiles. */
|
|
51
|
-
export declare const ZERO_TO_MAP_EXPECTED_TOTAL_TOOL_COUNT: number;
|
|
29
|
+
export declare const ZERO_TO_MAP_FULL_CATALOG_VIEW = "full";
|
|
30
|
+
/** Configuration key whose value would narrow the candidate's default `tools/list`. */
|
|
31
|
+
export declare const ZERO_TO_MAP_WORKFLOW_VIEW_CONFIG_KEY = "Mcp:WorkflowViews:DefaultView";
|
|
32
|
+
/** Environment-variable spelling of {@link ZERO_TO_MAP_WORKFLOW_VIEW_CONFIG_KEY}. */
|
|
33
|
+
export declare const ZERO_TO_MAP_WORKFLOW_VIEW_ENV_KEY = "Mcp__WorkflowViews__DefaultView";
|
|
52
34
|
export interface ZeroToMapProfileReceipt {
|
|
53
35
|
readonly id: string;
|
|
54
36
|
readonly expectedMembers: number;
|
|
@@ -67,27 +49,33 @@ export interface ZeroToMapProfileReceipt {
|
|
|
67
49
|
export interface ZeroToMapCatalogReceipt {
|
|
68
50
|
readonly schemaVersion: typeof ZERO_TO_MAP_CATALOG_RECEIPT_SCHEMA;
|
|
69
51
|
readonly activeProfiles: readonly string[];
|
|
70
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* The `tools/list` view the preflight selected. Always the reserved
|
|
54
|
+
* full-catalog escape hatch, recorded so the receipt states that the roster
|
|
55
|
+
* was judged against the complete catalog rather than a narrowed workflow
|
|
56
|
+
* view the candidate happened to have configured.
|
|
57
|
+
*/
|
|
58
|
+
readonly requestedView: typeof ZERO_TO_MAP_FULL_CATALOG_VIEW;
|
|
59
|
+
/** Distinct MCP tools the plan calls. Not a server-wide catalog total. */
|
|
71
60
|
readonly expectedTotalTools: number;
|
|
72
61
|
readonly advertisedTotalTools: number;
|
|
62
|
+
/** Closed-roster tools that are not `honua_admin_*`. */
|
|
73
63
|
readonly baseStaticTools: number;
|
|
64
|
+
/** Closed-roster `honua_admin_*` tools. */
|
|
74
65
|
readonly baseAdminTools: number;
|
|
66
|
+
/** Retained for checkpoint compatibility. The closed roster does not audit exclusions. */
|
|
75
67
|
readonly auditedExclusions: number;
|
|
76
68
|
readonly profiles: readonly ZeroToMapProfileReceipt[];
|
|
77
69
|
/** SHA-256 over every advertised tool name, sorted. */
|
|
78
70
|
readonly catalogSha256: string;
|
|
79
71
|
/** SHA-256 over the advertised `honua_admin_*` names, sorted. */
|
|
80
72
|
readonly adminRosterSha256: string;
|
|
81
|
-
/**
|
|
82
|
-
* SHA-256 over the advertised non-Admin names that no name-resolvable profile
|
|
83
|
-
* claimed, sorted. This is the base static surface plus the unnamed members
|
|
84
|
-
* of the fallback profile, which the server does not yet let us separate.
|
|
85
|
-
*/
|
|
73
|
+
/** SHA-256 over the advertised non-Admin names, sorted. */
|
|
86
74
|
readonly staticRosterSha256: string;
|
|
87
|
-
/**
|
|
75
|
+
/** SHA-256 over an empty exclusion list. The closed roster does not audit one. */
|
|
88
76
|
readonly exclusionRosterSha256: string;
|
|
89
77
|
}
|
|
90
|
-
export type JourneyActionKind = "cli" | "mcp" | "mcp-resource" | "gpserver" | "receipt" | "http";
|
|
78
|
+
export type JourneyActionKind = "cli" | "mcp" | "mcp-resource" | "mcp-image" | "gpserver" | "receipt" | "http";
|
|
91
79
|
export type JourneyActionStatus = "passed" | "blocked" | "failed" | "skipped";
|
|
92
80
|
export type JourneyStatus = "passed" | "blocked" | "failed";
|
|
93
81
|
export type JourneyTarget = "local-docker" | "aws-ecs";
|
|
@@ -105,7 +93,7 @@ interface JourneyActionBase {
|
|
|
105
93
|
readonly title: string;
|
|
106
94
|
readonly kind: JourneyActionKind;
|
|
107
95
|
readonly captures?: readonly JourneyCapture[];
|
|
108
|
-
/** Response fields that must remain absent
|
|
96
|
+
/** Response fields that must remain absent. */
|
|
109
97
|
readonly forbiddenPointers?: readonly string[];
|
|
110
98
|
}
|
|
111
99
|
export interface JourneyCliAction extends JourneyActionBase {
|
|
@@ -138,6 +126,69 @@ export interface JourneyMcpResourceAction extends JourneyActionBase {
|
|
|
138
126
|
* runner. Parameters stay schema-driven: the Buffer alias keeps Honua's
|
|
139
127
|
* advertised geometry.buffer parameter contract.
|
|
140
128
|
*/
|
|
129
|
+
/**
|
|
130
|
+
* Read a rendered image artifact the server returned by reference and prove it
|
|
131
|
+
* is real pixels rather than an empty or non-image placeholder.
|
|
132
|
+
*
|
|
133
|
+
* `honua_render_map` returns the PNG as a fetchable `resource_link` by default
|
|
134
|
+
* (`image.uri`), inlining base64 only under an explicit `maxInlineBytes`
|
|
135
|
+
* ceiling. Reading that reference and validating the bytes is the difference
|
|
136
|
+
* between "the tool returned 200" and "a styled map was actually drawn", which
|
|
137
|
+
* is the whole point of the published-style render proof.
|
|
138
|
+
*/
|
|
139
|
+
export interface JourneyMcpImageAction extends JourneyActionBase {
|
|
140
|
+
readonly kind: "mcp-image";
|
|
141
|
+
readonly uri: string;
|
|
142
|
+
/** Media type the resource contents must declare, e.g. `image/png`. */
|
|
143
|
+
readonly expectedMediaType: string;
|
|
144
|
+
/** Template resolving to the pixel width the renderer reported. */
|
|
145
|
+
readonly expectedWidth: string | number;
|
|
146
|
+
/** Template resolving to the pixel height the renderer reported. */
|
|
147
|
+
readonly expectedHeight: string | number;
|
|
148
|
+
/**
|
|
149
|
+
* Smallest byte length that can still be a drawn map. A PNG header plus an
|
|
150
|
+
* empty IDAT is a few dozen bytes, so a floor here refuses the degenerate
|
|
151
|
+
* "valid PNG, nothing rendered" result a style/render no-op would produce.
|
|
152
|
+
*/
|
|
153
|
+
readonly minByteLength: number;
|
|
154
|
+
}
|
|
155
|
+
/** Resolved expectations a fetched render artifact is judged against. */
|
|
156
|
+
export interface RenderedImageExpectation {
|
|
157
|
+
readonly uri: string;
|
|
158
|
+
readonly mediaType: string;
|
|
159
|
+
readonly width: number;
|
|
160
|
+
readonly height: number;
|
|
161
|
+
readonly minByteLength: number;
|
|
162
|
+
}
|
|
163
|
+
/** Proven properties of a fetched render artifact, retained as receipt evidence. */
|
|
164
|
+
export interface RenderedImageEvidence {
|
|
165
|
+
readonly uri: string;
|
|
166
|
+
readonly mediaType: string;
|
|
167
|
+
readonly width: number;
|
|
168
|
+
readonly height: number;
|
|
169
|
+
readonly byteLength: number;
|
|
170
|
+
readonly imageSha256: string;
|
|
171
|
+
/** Number of decoded pixels with nonzero alpha, across every Adam7 pass. */
|
|
172
|
+
readonly visiblePixelCount: number;
|
|
173
|
+
/** SHA-256 of row-major RGBA unsigned 16-bit big-endian decoded samples. */
|
|
174
|
+
readonly decodedPixelSha256: string;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Validate that fetched bytes are a PNG of the declared size that actually
|
|
178
|
+
* decodes to a drawn map.
|
|
179
|
+
*
|
|
180
|
+
* A style/render no-op is not a transport failure: the tool answers, the
|
|
181
|
+
* resource resolves, and the bytes may even be a syntactically plausible PNG.
|
|
182
|
+
* Structural checks alone are not enough to tell those apart - a blob whose
|
|
183
|
+
* chunks are merely *labelled* IDAT passes any counter that only sums chunk
|
|
184
|
+
* lengths, and a correctly-sized PNG of uniform background is a valid image
|
|
185
|
+
* that proves nothing about the style under test. So this decodes: every chunk
|
|
186
|
+
* CRC is verified, the stream must terminate in IEND, the concatenated IDAT
|
|
187
|
+
* payload must inflate, the inflated raster must be exactly the size the IHDR
|
|
188
|
+
* geometry implies, and the unfiltered pixels must not be a single flat colour.
|
|
189
|
+
* Each failure names the artifact and the property that was not met.
|
|
190
|
+
*/
|
|
191
|
+
export declare function assertRenderedPng(bytes: Uint8Array, mediaType: string | undefined, expected: RenderedImageExpectation): RenderedImageEvidence;
|
|
141
192
|
export interface JourneyGpServerAction extends JourneyActionBase {
|
|
142
193
|
readonly kind: "gpserver";
|
|
143
194
|
readonly serviceId: string;
|
|
@@ -161,7 +212,7 @@ export interface JourneyHttpAction extends JourneyActionBase {
|
|
|
161
212
|
readonly url: string;
|
|
162
213
|
readonly expectedStatus: number;
|
|
163
214
|
}
|
|
164
|
-
export type JourneyAction = JourneyCliAction | JourneyMcpAction | JourneyMcpResourceAction | JourneyGpServerAction | JourneyReceiptAction | JourneyHttpAction;
|
|
215
|
+
export type JourneyAction = JourneyCliAction | JourneyMcpAction | JourneyMcpResourceAction | JourneyMcpImageAction | JourneyGpServerAction | JourneyReceiptAction | JourneyHttpAction;
|
|
165
216
|
export interface JourneyStage {
|
|
166
217
|
readonly number: number;
|
|
167
218
|
readonly id: string;
|
|
@@ -187,11 +238,21 @@ export interface JourneyMcpToolDescriptor {
|
|
|
187
238
|
readonly name: string;
|
|
188
239
|
readonly inputSchema: Readonly<Record<string, unknown>>;
|
|
189
240
|
}
|
|
241
|
+
/** How the roster preflight asks the candidate for its catalog. */
|
|
242
|
+
export interface JourneyCatalogListOptions {
|
|
243
|
+
/**
|
|
244
|
+
* Workflow view to select on `tools/list`. The preflight always passes
|
|
245
|
+
* {@link ZERO_TO_MAP_FULL_CATALOG_VIEW} so a candidate configured with a
|
|
246
|
+
* default workflow view cannot narrow the roster the preflight judges.
|
|
247
|
+
*/
|
|
248
|
+
readonly view?: string;
|
|
249
|
+
}
|
|
190
250
|
export interface JourneyAdapter {
|
|
191
251
|
runCli(args: readonly string[]): Promise<JourneyExecutionResult>;
|
|
192
|
-
listTools(): Promise<readonly JourneyMcpToolDescriptor[]>;
|
|
252
|
+
listTools(options?: JourneyCatalogListOptions): Promise<readonly JourneyMcpToolDescriptor[]>;
|
|
193
253
|
callTool(tool: string, args: Readonly<Record<string, unknown>>): Promise<JourneyExecutionResult>;
|
|
194
254
|
readResource(action: JourneyMcpResourceAction): Promise<JourneyExecutionResult>;
|
|
255
|
+
readImageResource(action: JourneyMcpImageAction, expected: RenderedImageExpectation): Promise<JourneyExecutionResult>;
|
|
195
256
|
runGpServer(action: JourneyGpServerAction): Promise<JourneyExecutionResult>;
|
|
196
257
|
readReceipt(actionId: string): Promise<JourneyExecutionResult | undefined>;
|
|
197
258
|
checkHttp(url: string, expectedStatus: number): Promise<JourneyExecutionResult>;
|
|
@@ -246,14 +307,12 @@ export interface JourneyResumeState {
|
|
|
246
307
|
readonly completedStages: readonly JourneyStageReceipt[];
|
|
247
308
|
readonly resumeAt: JourneyResumePoint;
|
|
248
309
|
/**
|
|
249
|
-
* Catalog preflight evidence gathered before
|
|
310
|
+
* Catalog preflight evidence gathered before an external-receipt pause.
|
|
250
311
|
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
*
|
|
254
|
-
* the
|
|
255
|
-
* silently drop the active-profile and roster-digest evidence from exactly
|
|
256
|
-
* the runs that succeeded.
|
|
312
|
+
* A resumed run does not list tools again. Without carrying the preflight
|
|
313
|
+
* across that boundary, the final receipt would drop the closed-roster
|
|
314
|
+
* digest. This journey no longer pauses: publication fetches the share URLs
|
|
315
|
+
* the same admin call returned.
|
|
257
316
|
*/
|
|
258
317
|
readonly catalog?: ZeroToMapCatalogReceipt;
|
|
259
318
|
}
|
|
@@ -292,5 +351,19 @@ export declare function runZeroToMapJourney(plan: ZeroToMapPlan, adapter: Journe
|
|
|
292
351
|
* receipts without replaying any mutating action.
|
|
293
352
|
*/
|
|
294
353
|
export declare function validateJourneyResume(plan: ZeroToMapPlan, resume: JourneyResumeState, executionVariables?: Readonly<Record<string, unknown>>, target?: JourneyTarget): number;
|
|
354
|
+
/**
|
|
355
|
+
* Distinct MCP tools the plan calls, sorted. This is the closed operator roster.
|
|
356
|
+
* A server may advertise more; the preflight does not require a catalog total.
|
|
357
|
+
*/
|
|
358
|
+
export declare function zeroToMapClosedRoster(plan: ZeroToMapPlan): readonly string[];
|
|
359
|
+
/**
|
|
360
|
+
* Turn a share URL into an absolute request URL.
|
|
361
|
+
*
|
|
362
|
+
* Admin publication returns `StudioPublishedRoutes.BuildActiveUrl`, a
|
|
363
|
+
* root-relative `/api/v1/studio/published/...` path. Live mode resolves that
|
|
364
|
+
* path against the MCP endpoint origin. Absolute HTTPS is accepted as-is.
|
|
365
|
+
* HTTP is accepted only for a loopback origin, which is the local-install proof.
|
|
366
|
+
*/
|
|
367
|
+
export declare function resolvePublishedShareUrl(url: string, mcpUrl?: string): string;
|
|
295
368
|
export {};
|
|
296
369
|
//# sourceMappingURL=zero-to-map.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zero-to-map.d.ts","sourceRoot":"","sources":["../../../src/release/zero-to-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zero-to-map.d.ts","sourceRoot":"","sources":["../../../src/release/zero-to-map.ts"],"names":[],"mappings":"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"}
|