@walkeros/mcp 4.8.0 → 4.9.0-next-1791925945414
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/dist/index.d.ts +14 -11
- package/dist/index.js +19 -14
- package/dist/index.js.map +1 -1
- package/dist/stdio.js +21 -16
- package/dist/stdio.js.map +1 -1
- package/package.json +4 -4
- package/src/surface.json +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -292,11 +292,13 @@ interface PlanRectWire {
|
|
|
292
292
|
w: number;
|
|
293
293
|
h: number;
|
|
294
294
|
}
|
|
295
|
-
|
|
295
|
+
/**
|
|
296
|
+
* One frame shown on another: the rectangle it takes, in fractions of the
|
|
297
|
+
* frame that shows it, and the id of the frame shown there.
|
|
298
|
+
*/
|
|
299
|
+
interface FrameLinkWire extends PlanRectWire {
|
|
296
300
|
id: string;
|
|
297
|
-
|
|
298
|
-
selector?: string;
|
|
299
|
-
anchor?: Record<string, unknown>;
|
|
301
|
+
frameId: string;
|
|
300
302
|
}
|
|
301
303
|
type FrameSourceWire = {
|
|
302
304
|
kind: 'page';
|
|
@@ -320,12 +322,13 @@ interface FrameLeanWire {
|
|
|
320
322
|
id: string;
|
|
321
323
|
projectId: string;
|
|
322
324
|
name: string;
|
|
323
|
-
parentId: string | null;
|
|
324
|
-
placements: FramePlacementWire[];
|
|
325
325
|
size: PlanSizeWire;
|
|
326
|
-
|
|
327
|
-
source: FrameSourceWire | null;
|
|
326
|
+
source: FrameSourceWire;
|
|
328
327
|
origin: 'drawn' | 'imported' | 'observed';
|
|
328
|
+
/** The frames this one shows, in paint order. */
|
|
329
|
+
links: FrameLinkWire[];
|
|
330
|
+
/** The group the frame shares with its variants, null for a frame with none. */
|
|
331
|
+
variantSetId: string | null;
|
|
329
332
|
flowId: string;
|
|
330
333
|
screenshot: FrameScreenshotWire | null;
|
|
331
334
|
version: number;
|
|
@@ -1150,10 +1153,10 @@ declare const FRAME_MANAGE_INPUT_SCHEMA: {
|
|
|
1150
1153
|
declare const FRAME_HINT_OPEN_PAGE_OR_GET = "Use action \"page\" with a pageKey (a frame\u2019s source.key) to read a page with marks, or action \"get\" with a frameId.";
|
|
1151
1154
|
declare const FRAME_HINT_NAMES_ARE_DOCUMENTATION = "Frame names are documentation; the marks inside a frame carry the meaning.";
|
|
1152
1155
|
declare const FRAME_HINT_NONE_YET = "This flow has no frames yet. Frames are drawn in Tag Mode or the app, not through this tool.";
|
|
1153
|
-
declare const FRAME_HINT_MARK_SPACE = "Tag geometry is fractional: a rect is 0..1 of its frame, and an at is 0..1 of its parent tag\u2019s box, or of the frame for a root tag; a
|
|
1156
|
+
declare const FRAME_HINT_MARK_SPACE = "Tag geometry is fractional: a rect is 0..1 of its frame, and an at is 0..1 of its parent tag\u2019s box, or of the frame for a root tag; a link\u2019s x, y, w and h are fractions of the frame that shows it.";
|
|
1154
1157
|
declare const FRAME_HINT_READ_KNOWLEDGE = "Use hub_manage action \"knowledge\" with frameId (and markId) to read what people wrote here. A markId is a tag id from these marks, and a tag\u2019s threadRef is the id of its thread entry there.";
|
|
1155
1158
|
declare const FRAME_HINT_NONE_ON_PAGE = "No frames on this page. Check the pageKey against the source.key values from action \"list\".";
|
|
1156
|
-
declare const
|
|
1159
|
+
declare const FRAME_HINT_FOLLOW_LINKS = "This frame shows other frames: each entry of links names one by frameId. Use action \"get\" with that frameId to read it.";
|
|
1157
1160
|
declare const FRAME_NOT_FOUND_HINT = "Use action \"list\" or \"page\" to find frame ids.";
|
|
1158
1161
|
|
|
1159
1162
|
/** The code every door answers a plan or project gate with. */
|
|
@@ -1399,4 +1402,4 @@ declare module '@walkeros/core' {
|
|
|
1399
1402
|
*/
|
|
1400
1403
|
declare function createToolHandlers(client: ToolClient, packageVersion?: string, runtime?: FlowRuntime): Record<string, ToolSpec>;
|
|
1401
1404
|
|
|
1402
|
-
export { type BundleOptions, type CreateServerOptions, type CreateStreamableHttpHandlerOptions, type DeploymentLinkTarget, FEATURE_NOT_AVAILABLE,
|
|
1405
|
+
export { type BundleOptions, type CreateServerOptions, type CreateStreamableHttpHandlerOptions, type DeploymentLinkTarget, FEATURE_NOT_AVAILABLE, FRAME_HINT_FOLLOW_LINKS, FRAME_HINT_MARK_SPACE, FRAME_HINT_NAMES_ARE_DOCUMENTATION, FRAME_HINT_NONE_ON_PAGE, FRAME_HINT_NONE_YET, FRAME_HINT_OPEN_PAGE_OR_GET, FRAME_HINT_READ_KNOWLEDGE, FRAME_MANAGE_DESCRIPTION, FRAME_MANAGE_INPUT_SCHEMA, FRAME_NOT_FOUND_HINT, type FlowCanvasPayload, type FlowCanvasToolResult, type FlowLinkTarget, type FlowRuntime, type FrameLeanListWire, type FrameLeanWire, type FrameListWire, type FrameWire, type GatedFeature, HINT_EMPTY_FEED, HINT_ENDED, HINT_NO_WINDOW, HINT_PREVIEW_STREAMS, HINT_READ, HINT_SIMULATE_FIRST, HINT_STOP, HUB_HINT_CONFIRM_INDEX, HUB_HINT_ENTRY_NAMES_FLOW, HUB_HINT_KEEP_ONE_THREAD, HUB_HINT_KNOWLEDGE_INDEX, HUB_HINT_KNOWLEDGE_PAGE_CAPPED, HUB_HINT_KNOWLEDGE_READ_ONLY, HUB_HINT_MASKED_ONLY, HUB_HINT_MESSAGES_TRUNCATED, HUB_HINT_MESSAGE_VISIBLE, HUB_HINT_NOTHING_DISCUSSED, HUB_HINT_NOTHING_WRITTEN, HUB_HINT_NO_MATCH, HUB_HINT_NO_THREAD_ON_ANCHOR, HUB_HINT_OPEN_RELEASE, HUB_HINT_RATIONALE_VISIBLE, HUB_HINT_READ_BACK, HUB_HINT_READ_FRAME, HUB_HINT_RELEASE_GET, HUB_HINT_REPLY_OR_OPEN, HUB_HINT_RESOLVE_IN_APP, HUB_HINT_ROWS_ARE_DEPLOYMENTS, HUB_HINT_SCAN_CAPPED, HUB_HINT_STAYS_RESOLVED, HUB_HINT_STEP_HISTORY, HUB_HINT_THREADS_INDEX, HUB_HINT_THREADS_PAGE_CAPPED, HUB_HINT_THREAD_OPEN, HUB_HINT_TRACE_STEP, HUB_HINT_WRITE_RATIONALE, HUB_MANAGE_DESCRIPTION, HUB_MANAGE_INPUT_SCHEMA, HUB_NOT_FOUND_HINT, HttpToolClient, type HubThreadWire, type JourneysResult, type KnowledgeEntryWire, type ListKnowledgeWire, type ListThreadsWire, type Logger, DESCRIPTION as OBSERVE_SESSION_DESCRIPTION, type PushOptions, type RedactOptions, type ReleaseDetailWire, type ReleaseIndexWire, type ReleaseRef, RuntimeRefusal, type SimulateOptions, type SimulateStepType, type StepHistoryWire, type StepLinkTarget, type SuggestionTile, TOOL_DEFINITIONS, type ThreadLinkTarget, type ToolAnnotations, type ToolClient, type ToolDefinition, type ToolSpec, type VersionAnnotationWire, createHostedRuntime, createLocalRuntime, createStreamableHttpHandler, createToolHandlers, createWalkerOSMcpServer, featureDenialHint, flowCanvasResult, isFeatureDenial, isFlowCanvasResult, links, redactNestedStrings, wrapUserData };
|
package/dist/index.js
CHANGED
|
@@ -2152,7 +2152,7 @@ var HUB_MANAGE_INPUT_SCHEMA = {
|
|
|
2152
2152
|
'Read only threads in this state. Action "threads" only; omit for both.'
|
|
2153
2153
|
),
|
|
2154
2154
|
pageKey: z9.string().min(1).max(MAX_SOURCE_KEY_LENGTH).optional().describe(
|
|
2155
|
-
'The page a note was left on, as Tag Mode addressed it, usually the page URL. Narrows action "knowledge" to
|
|
2155
|
+
'The page a note was left on, as Tag Mode addressed it, usually the page URL. Narrows action "knowledge" to the frames of that page; a shown frame that is not of that page is not included. Omit it to read the whole project.'
|
|
2156
2156
|
),
|
|
2157
2157
|
frameId: z9.string().regex(FRAME_ID_PATTERN).optional().describe(
|
|
2158
2158
|
'One frame (frm_...), the named rectangle a note hangs on. Action "knowledge" only. Narrower than pageKey, since a page holds several frames.'
|
|
@@ -2689,7 +2689,7 @@ import { mcpResult as mcpResult9, mcpError as mcpError10 } from "@walkeros/core"
|
|
|
2689
2689
|
var FRAME_ID_PATTERN2 = /^frm_[A-Za-z0-9_-]{21}$/;
|
|
2690
2690
|
var MAX_PAGE_KEY_CHARS = 1024;
|
|
2691
2691
|
var TITLE9 = "Frames";
|
|
2692
|
-
var FRAME_MANAGE_DESCRIPTION = 'Read the frames of a measurement plan: named rectangles with marks inside them, drawn in Tag Mode or in the app. Frames belong to a flow: every action takes the flowId of the flow they live in; use flow_manage action "list" to find one. Actions: list (every frame of the flow, without marks), page (the flow\u2019s frames
|
|
2692
|
+
var FRAME_MANAGE_DESCRIPTION = 'Read the frames of a measurement plan: named rectangles with marks inside them, drawn in Tag Mode or in the app. Frames belong to a flow: every action takes the flowId of the flow they live in; use flow_manage action "list" to find one. Actions: list (every frame of the flow, without marks), page (the flow\u2019s frames of one page, with marks), get (one frame with its marks). Read-only: frames are drawn and edited in Tag Mode or the app, never here. A frame name is documentation; the marks inside it carry the meaning. A frame shows other frames through links: each link is a rectangle on the frame and the frameId of the frame shown there. A page read returns the frames of that page; a shown frame that is not of that page is not in the answer, only named by frameId in links. Frames that share a variantSetId are variants of one another, and each is a complete frame. Marks are { tags, note }: tags is one flat list of tags, each with an id, a kind such as entity, property or action, a name, and a parentId naming the tag it sits under; note is the frame\u2019s own description and thread. Use hub_manage action "knowledge" with a frameId or markId to read what people wrote on a frame. A markId is a tag id: a tag\u2019s id, parentId and threadRef come back literal when they have the shape the app mints, so they can be passed straight back; every other string value in the marks is wrapped as data, and so is an object key that is not a plain identifier.';
|
|
2693
2693
|
var FRAME_MANAGE_INPUT_SCHEMA = {
|
|
2694
2694
|
action: z10.enum(["list", "page", "get"]).describe(
|
|
2695
2695
|
"list the flow\u2019s frames, read one page with marks, or read one frame"
|
|
@@ -2716,12 +2716,13 @@ var annotations9 = {
|
|
|
2716
2716
|
var FRAME_HINT_OPEN_PAGE_OR_GET = 'Use action "page" with a pageKey (a frame\u2019s source.key) to read a page with marks, or action "get" with a frameId.';
|
|
2717
2717
|
var FRAME_HINT_NAMES_ARE_DOCUMENTATION = "Frame names are documentation; the marks inside a frame carry the meaning.";
|
|
2718
2718
|
var FRAME_HINT_NONE_YET = "This flow has no frames yet. Frames are drawn in Tag Mode or the app, not through this tool.";
|
|
2719
|
-
var FRAME_HINT_MARK_SPACE = "Tag geometry is fractional: a rect is 0..1 of its frame, and an at is 0..1 of its parent tag\u2019s box, or of the frame for a root tag; a
|
|
2719
|
+
var FRAME_HINT_MARK_SPACE = "Tag geometry is fractional: a rect is 0..1 of its frame, and an at is 0..1 of its parent tag\u2019s box, or of the frame for a root tag; a link\u2019s x, y, w and h are fractions of the frame that shows it.";
|
|
2720
2720
|
var FRAME_HINT_READ_KNOWLEDGE = 'Use hub_manage action "knowledge" with frameId (and markId) to read what people wrote here. A markId is a tag id from these marks, and a tag\u2019s threadRef is the id of its thread entry there.';
|
|
2721
2721
|
var FRAME_HINT_NONE_ON_PAGE = 'No frames on this page. Check the pageKey against the source.key values from action "list".';
|
|
2722
|
-
var
|
|
2722
|
+
var FRAME_HINT_FOLLOW_LINKS = 'This frame shows other frames: each entry of links names one by frameId. Use action "get" with that frameId to read it.';
|
|
2723
2723
|
var FRAME_NOT_FOUND_HINT = 'Use action "list" or "page" to find frame ids.';
|
|
2724
2724
|
var FRAME_FLOW_NOT_FOUND_HINT = 'Use flow_manage action "list" to find a live flow of the project.';
|
|
2725
|
+
var FRAME_LINKS_NOT_SERVED = "This app does not serve frame links yet, so this client cannot read its frames. It needs the app release that serves links.";
|
|
2725
2726
|
function frameRefusalHint(error) {
|
|
2726
2727
|
switch (codeOf(error)) {
|
|
2727
2728
|
case "FLOW_NOT_FOUND":
|
|
@@ -2734,17 +2735,21 @@ function frameRefusalHint(error) {
|
|
|
2734
2735
|
}
|
|
2735
2736
|
var keepSourceAddress = (key) => key === "kind" || key === "key";
|
|
2736
2737
|
function serializeLean(frame) {
|
|
2738
|
+
if (!Array.isArray(frame.links)) throw new Error(FRAME_LINKS_NOT_SERVED);
|
|
2737
2739
|
return {
|
|
2738
2740
|
id: frame.id,
|
|
2739
2741
|
name: wrapUserData(frame.name),
|
|
2740
|
-
parentId: frame.parentId,
|
|
2741
|
-
extends: frame.extends,
|
|
2742
2742
|
source: redactNestedStrings(frame.source, { skip: keepSourceAddress }),
|
|
2743
2743
|
origin: frame.origin,
|
|
2744
|
-
|
|
2745
|
-
id:
|
|
2746
|
-
|
|
2744
|
+
links: frame.links.map((link) => ({
|
|
2745
|
+
id: link.id,
|
|
2746
|
+
frameId: link.frameId,
|
|
2747
|
+
x: link.x,
|
|
2748
|
+
y: link.y,
|
|
2749
|
+
w: link.w,
|
|
2750
|
+
h: link.h
|
|
2747
2751
|
})),
|
|
2752
|
+
variantSetId: frame.variantSetId,
|
|
2748
2753
|
size: frame.size,
|
|
2749
2754
|
screenshot: frame.screenshot ? {
|
|
2750
2755
|
assetId: frame.screenshot.assetId,
|
|
@@ -2885,7 +2890,7 @@ async function frameManageHandler(client, rawInput) {
|
|
|
2885
2890
|
return mcpResult9(
|
|
2886
2891
|
{ frame: serializeFrame(frame) },
|
|
2887
2892
|
{
|
|
2888
|
-
next: frame.
|
|
2893
|
+
next: frame.links.length > 0 ? [FRAME_HINT_FOLLOW_LINKS, FRAME_HINT_READ_KNOWLEDGE] : [FRAME_HINT_READ_KNOWLEDGE]
|
|
2889
2894
|
}
|
|
2890
2895
|
);
|
|
2891
2896
|
}
|
|
@@ -2969,7 +2974,7 @@ async function feedbackHandlerBody(client, input) {
|
|
|
2969
2974
|
const isAnonymous = explicitAnonymous ?? anonymous ?? true;
|
|
2970
2975
|
await client.submitFeedback(text, {
|
|
2971
2976
|
anonymous: isAnonymous,
|
|
2972
|
-
version: "4.
|
|
2977
|
+
version: "4.9.0-next-1791925945414"
|
|
2973
2978
|
});
|
|
2974
2979
|
return mcpResult10({ ok: true });
|
|
2975
2980
|
} catch (error) {
|
|
@@ -3761,7 +3766,7 @@ var NPM_SEARCH_URL = "https://registry.npmjs.org/-/v1/search";
|
|
|
3761
3766
|
var JSDELIVR_BASE = "https://cdn.jsdelivr.net/npm";
|
|
3762
3767
|
var WALKEROS_JSON_PATH = "dist/walkerOS.json";
|
|
3763
3768
|
var CACHE_TTL = 5 * 60 * 1e3;
|
|
3764
|
-
var CLIENT_HEADER = "walkeros-mcp/4.
|
|
3769
|
+
var CLIENT_HEADER = "walkeros-mcp/4.9.0-next-1791925945414";
|
|
3765
3770
|
function getPackageBaseUrl() {
|
|
3766
3771
|
return process.env.WALKEROS_APP_URL || void 0;
|
|
3767
3772
|
}
|
|
@@ -5439,7 +5444,7 @@ var HttpToolClient = class {
|
|
|
5439
5444
|
async checkContract() {
|
|
5440
5445
|
return compareContract({
|
|
5441
5446
|
baseUrl: this.appBaseUrl(),
|
|
5442
|
-
client: { type: "mcp", version: "4.
|
|
5447
|
+
client: { type: "mcp", version: "4.9.0-next-1791925945414" }
|
|
5443
5448
|
});
|
|
5444
5449
|
}
|
|
5445
5450
|
/** The live public OpenAPI document of `appBaseUrl()`, without a credential. */
|
|
@@ -6034,7 +6039,7 @@ function createToolHandlers(client, packageVersion = "0.0.0", runtime = createHo
|
|
|
6034
6039
|
}
|
|
6035
6040
|
export {
|
|
6036
6041
|
FEATURE_NOT_AVAILABLE,
|
|
6037
|
-
|
|
6042
|
+
FRAME_HINT_FOLLOW_LINKS,
|
|
6038
6043
|
FRAME_HINT_MARK_SPACE,
|
|
6039
6044
|
FRAME_HINT_NAMES_ARE_DOCUMENTATION,
|
|
6040
6045
|
FRAME_HINT_NONE_ON_PAGE,
|