@aperant/framework 0.10.0 → 0.12.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/CHANGELOG.md +236 -1
- package/agents/apt-planner.md +15 -0
- package/agents/apt-verifier.md +15 -10
- package/bin/apt-proof-video.mjs +256 -76
- package/dist/cli/commands/apply-recipe.d.mts +6 -0
- package/dist/cli/commands/apply-recipe.d.mts.map +1 -0
- package/dist/cli/commands/apply-recipe.mjs +98 -0
- package/dist/cli/commands/apply-recipe.mjs.map +1 -0
- package/dist/cli/commands/catch-up.d.mts +9 -0
- package/dist/cli/commands/catch-up.d.mts.map +1 -0
- package/dist/cli/commands/catch-up.mjs +64 -0
- package/dist/cli/commands/catch-up.mjs.map +1 -0
- package/dist/cli/commands/mobile-prepare.d.mts +53 -0
- package/dist/cli/commands/mobile-prepare.d.mts.map +1 -0
- package/dist/cli/commands/mobile-prepare.mjs +139 -0
- package/dist/cli/commands/mobile-prepare.mjs.map +1 -0
- package/dist/cli/commands/pr-review.d.mts +16 -4
- package/dist/cli/commands/pr-review.d.mts.map +1 -1
- package/dist/cli/commands/pr-review.mjs +30 -11
- package/dist/cli/commands/pr-review.mjs.map +1 -1
- package/dist/cli/commands/recipe-diff.d.mts +6 -0
- package/dist/cli/commands/recipe-diff.d.mts.map +1 -0
- package/dist/cli/commands/recipe-diff.mjs +75 -0
- package/dist/cli/commands/recipe-diff.mjs.map +1 -0
- package/dist/cli/commands/roadmap.d.mts.map +1 -1
- package/dist/cli/commands/roadmap.mjs +53 -0
- package/dist/cli/commands/roadmap.mjs.map +1 -1
- package/dist/cli/commands/route.d.mts.map +1 -1
- package/dist/cli/commands/route.mjs +92 -2
- package/dist/cli/commands/route.mjs.map +1 -1
- package/dist/cli/commands/verify-sandbox.d.mts +6 -0
- package/dist/cli/commands/verify-sandbox.d.mts.map +1 -0
- package/dist/cli/commands/verify-sandbox.mjs +200 -0
- package/dist/cli/commands/verify-sandbox.mjs.map +1 -0
- package/dist/cli/config/share-policy.d.mts.map +1 -1
- package/dist/cli/config/share-policy.mjs +1 -0
- package/dist/cli/config/share-policy.mjs.map +1 -1
- package/dist/cli/config/upgrade-gitignore.d.mts.map +1 -1
- package/dist/cli/config/upgrade-gitignore.mjs +1 -0
- package/dist/cli/config/upgrade-gitignore.mjs.map +1 -1
- package/dist/cli/consistency/parse-qa.d.mts.map +1 -1
- package/dist/cli/consistency/parse-qa.mjs +18 -4
- package/dist/cli/consistency/parse-qa.mjs.map +1 -1
- package/dist/cli/consistency/rules/r5-verdict-consistency.d.mts.map +1 -1
- package/dist/cli/consistency/rules/r5-verdict-consistency.mjs +11 -10
- package/dist/cli/consistency/rules/r5-verdict-consistency.mjs.map +1 -1
- package/dist/cli/coordination/catch-up.d.mts +26 -0
- package/dist/cli/coordination/catch-up.d.mts.map +1 -0
- package/dist/cli/coordination/catch-up.mjs +239 -0
- package/dist/cli/coordination/catch-up.mjs.map +1 -0
- package/dist/cli/coordination/last-seen.d.mts +45 -0
- package/dist/cli/coordination/last-seen.d.mts.map +1 -0
- package/dist/cli/coordination/last-seen.mjs +128 -0
- package/dist/cli/coordination/last-seen.mjs.map +1 -0
- package/dist/cli/coordination/store.d.mts +15 -0
- package/dist/cli/coordination/store.d.mts.map +1 -1
- package/dist/cli/coordination/store.mjs +16 -0
- package/dist/cli/coordination/store.mjs.map +1 -1
- package/dist/cli/coverage-check/user-outcomes.d.mts +7 -2
- package/dist/cli/coverage-check/user-outcomes.d.mts.map +1 -1
- package/dist/cli/coverage-check/user-outcomes.mjs +50 -17
- package/dist/cli/coverage-check/user-outcomes.mjs.map +1 -1
- package/dist/cli/dispatch.d.mts.map +1 -1
- package/dist/cli/dispatch.mjs +30 -0
- package/dist/cli/dispatch.mjs.map +1 -1
- package/dist/cli/gate/gates/verify-approved.d.mts +0 -48
- package/dist/cli/gate/gates/verify-approved.d.mts.map +1 -1
- package/dist/cli/gate/gates/verify-approved.mjs +23 -80
- package/dist/cli/gate/gates/verify-approved.mjs.map +1 -1
- package/dist/cli/git/default-branch.d.mts +51 -0
- package/dist/cli/git/default-branch.d.mts.map +1 -0
- package/dist/cli/git/default-branch.mjs +234 -0
- package/dist/cli/git/default-branch.mjs.map +1 -0
- package/dist/cli/git/identity.d.mts +3 -5
- package/dist/cli/git/identity.d.mts.map +1 -1
- package/dist/cli/git/identity.mjs +10 -4
- package/dist/cli/git/identity.mjs.map +1 -1
- package/dist/cli/install/legacy-paths.d.mts.map +1 -1
- package/dist/cli/install/legacy-paths.mjs +2 -0
- package/dist/cli/install/legacy-paths.mjs.map +1 -1
- package/dist/cli/install/mcp-server-specs.d.mts +6 -5
- package/dist/cli/install/mcp-server-specs.d.mts.map +1 -1
- package/dist/cli/install/mcp-server-specs.mjs +22 -4
- package/dist/cli/install/mcp-server-specs.mjs.map +1 -1
- package/dist/cli/roadmap/backend-adapter.d.mts +43 -0
- package/dist/cli/roadmap/backend-adapter.d.mts.map +1 -0
- package/dist/cli/roadmap/backend-adapter.mjs +222 -0
- package/dist/cli/roadmap/backend-adapter.mjs.map +1 -0
- package/dist/cli/util/runtime-capabilities.d.mts +7 -0
- package/dist/cli/util/runtime-capabilities.d.mts.map +1 -1
- package/dist/cli/util/runtime-capabilities.mjs +65 -0
- package/dist/cli/util/runtime-capabilities.mjs.map +1 -1
- package/dist/cli/verify-proof/manifest-validator.mjs +13 -0
- package/dist/cli/verify-proof/manifest-validator.mjs.map +1 -1
- package/dist/cli/verify-proof/resolver.d.mts +10 -7
- package/dist/cli/verify-proof/resolver.d.mts.map +1 -1
- package/dist/cli/verify-proof/resolver.mjs +28 -7
- package/dist/cli/verify-proof/resolver.mjs.map +1 -1
- package/dist/cli/verify-proof/sandbox/apply.d.mts +64 -0
- package/dist/cli/verify-proof/sandbox/apply.d.mts.map +1 -0
- package/dist/cli/verify-proof/sandbox/apply.mjs +379 -0
- package/dist/cli/verify-proof/sandbox/apply.mjs.map +1 -0
- package/dist/cli/verify-proof/sandbox/gate-predicate.d.mts +63 -0
- package/dist/cli/verify-proof/sandbox/gate-predicate.d.mts.map +1 -0
- package/dist/cli/verify-proof/sandbox/gate-predicate.mjs +115 -0
- package/dist/cli/verify-proof/sandbox/gate-predicate.mjs.map +1 -0
- package/dist/cli/verify-proof/sandbox/pattern-matcher.d.mts +57 -0
- package/dist/cli/verify-proof/sandbox/pattern-matcher.d.mts.map +1 -0
- package/dist/cli/verify-proof/sandbox/pattern-matcher.mjs +124 -0
- package/dist/cli/verify-proof/sandbox/pattern-matcher.mjs.map +1 -0
- package/dist/cli/verify-proof/sandbox/recipe-diff.d.mts +28 -0
- package/dist/cli/verify-proof/sandbox/recipe-diff.d.mts.map +1 -0
- package/dist/cli/verify-proof/sandbox/recipe-diff.mjs +190 -0
- package/dist/cli/verify-proof/sandbox/recipe-diff.mjs.map +1 -0
- package/dist/cli/verify-proof/sandbox/sandbox-config.d.mts +25 -0
- package/dist/cli/verify-proof/sandbox/sandbox-config.d.mts.map +1 -0
- package/dist/cli/verify-proof/sandbox/sandbox-config.mjs +85 -0
- package/dist/cli/verify-proof/sandbox/sandbox-config.mjs.map +1 -0
- package/dist/cli/verify-proof/sandbox/self-test.d.mts +39 -0
- package/dist/cli/verify-proof/sandbox/self-test.d.mts.map +1 -0
- package/dist/cli/verify-proof/sandbox/self-test.mjs +248 -0
- package/dist/cli/verify-proof/sandbox/self-test.mjs.map +1 -0
- package/dist/plugin/.claude-plugin/plugin.json +2 -1
- package/dist/plugin/agents/apt-planner.md +15 -0
- package/dist/plugin/agents/apt-verifier.md +15 -10
- package/dist/plugin/skills/apt/SKILL.md +29 -0
- package/dist/plugin/skills/apt-catch-up/SKILL.md +79 -0
- package/dist/plugin/skills/apt-plan/SKILL.md +23 -0
- package/dist/plugin/skills/apt-pr-review/SKILL.md +5 -4
- package/dist/plugin/skills/apt-run/SKILL.md +1 -1
- package/dist/plugin/skills/apt-setup/SKILL.md +132 -0
- package/dist/plugin/skills/apt-verify/SKILL.md +20 -15
- package/dist/plugin/skills/apt-verify-proof/SKILL.md +146 -11
- package/dist/proof-report.d.ts.map +1 -1
- package/dist/proof-report.js +4 -1
- package/dist/proof-report.js.map +1 -1
- package/dist/types/config.d.ts +42 -4
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/qa-scoring.d.ts +45 -9
- package/dist/types/qa-scoring.d.ts.map +1 -1
- package/dist/types/qa-scoring.js +34 -13
- package/dist/types/qa-scoring.js.map +1 -1
- package/dist/types/state.d.ts +7 -2
- package/dist/types/state.d.ts.map +1 -1
- package/dist/types/task-record.d.ts +10 -2
- package/dist/types/task-record.d.ts.map +1 -1
- package/drivers/mobile/README.md +40 -0
- package/drivers/mobile/driver.mjs +106 -0
- package/drivers/mobile/manifest.json +49 -0
- package/package.json +1 -1
- package/prompts/inbox-clarification.md +11 -0
- package/prompts/inbox-triage.md +20 -0
- package/prompts/qa_orchestrator_agentic.md +18 -17
- package/prompts/qa_reviewer.md +17 -15
- package/skills/apt/SKILL.md +29 -0
- package/skills/apt-catch-up/SKILL.md +79 -0
- package/skills/apt-plan/SKILL.md +23 -0
- package/skills/apt-pr-review/SKILL.md +5 -4
- package/skills/apt-run/SKILL.md +1 -1
- package/skills/apt-setup/SKILL.md +132 -0
- package/skills/apt-verifier.md +7 -4
- package/skills/apt-verify/SKILL.md +20 -15
- package/skills/apt-verify-proof/SKILL.md +146 -11
- package/src/cli/commands/apply-recipe.mjs +105 -0
- package/src/cli/commands/catch-up.mjs +67 -0
- package/src/cli/commands/mobile-prepare.mjs +151 -0
- package/src/cli/commands/pr-review.mjs +32 -11
- package/src/cli/commands/recipe-diff.mjs +81 -0
- package/src/cli/commands/roadmap.mjs +54 -0
- package/src/cli/commands/route.mjs +92 -1
- package/src/cli/commands/verify-sandbox.mjs +231 -0
- package/src/cli/config/share-policy.mjs +1 -0
- package/src/cli/config/upgrade-gitignore.mjs +1 -0
- package/src/cli/consistency/parse-qa.mjs +20 -4
- package/src/cli/consistency/rules/r5-verdict-consistency.mjs +11 -13
- package/src/cli/coordination/catch-up.mjs +231 -0
- package/src/cli/coordination/last-seen.mjs +131 -0
- package/src/cli/coordination/store.mjs +18 -0
- package/src/cli/coverage-check/user-outcomes.mjs +52 -17
- package/src/cli/dispatch.mjs +29 -0
- package/src/cli/gate/gates/verify-approved.mjs +22 -81
- package/src/cli/git/default-branch.mjs +250 -0
- package/src/cli/git/identity.mjs +9 -3
- package/src/cli/install/legacy-paths.mjs +2 -0
- package/src/cli/install/mcp-server-specs.mjs +24 -4
- package/src/cli/roadmap/backend-adapter.mjs +231 -0
- package/src/cli/util/runtime-capabilities.mjs +67 -0
- package/src/cli/verify-proof/manifest-validator.mjs +15 -0
- package/src/cli/verify-proof/resolver.mjs +27 -7
- package/src/cli/verify-proof/sandbox/apply.mjs +401 -0
- package/src/cli/verify-proof/sandbox/gate-predicate.mjs +126 -0
- package/src/cli/verify-proof/sandbox/pattern-matcher.mjs +127 -0
- package/src/cli/verify-proof/sandbox/recipe-diff.mjs +208 -0
- package/src/cli/verify-proof/sandbox/sandbox-config.mjs +82 -0
- package/src/cli/verify-proof/sandbox/sandbox-schema.json +33 -0
- package/src/cli/verify-proof/sandbox/self-test.mjs +265 -0
- package/templates/config.json +21 -1
- package/templates/proof-verification.md +27 -8
- package/workflows/verify-proof.md +376 -302
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task 26-05-26 subtask 2.4 — roadmap.backend dispatch adapter.
|
|
3
|
+
*
|
|
4
|
+
* Reads `.aperant/config.json :: roadmap.backend` and either delegates
|
|
5
|
+
* the subcommand to the Aperant Cloud MCP server (`'cloud-mcp'`) or
|
|
6
|
+
* returns a `{ delegated: false }` envelope so the calling subcommand
|
|
7
|
+
* proceeds with the existing markdown-canonical file-write path.
|
|
8
|
+
*
|
|
9
|
+
* Fast Path Guarantee: a missing `roadmap` block, a missing
|
|
10
|
+
* `roadmap.backend` key, or `backend: 'markdown'` ALL return
|
|
11
|
+
* `{ backend: 'markdown', delegated: false }` byte-identically — OSS
|
|
12
|
+
* framework users with zero cloud config see no behaviour change.
|
|
13
|
+
*
|
|
14
|
+
* Token resolution mirrors convex-mirror.mjs (token-source order ID-07):
|
|
15
|
+
* 1. process.env.MCP_ROADMAP_TOKEN
|
|
16
|
+
* 2. .aperant/team.json :: roadmapMcpToken
|
|
17
|
+
*
|
|
18
|
+
* Tool registration on the server side lands in subtask 2.3
|
|
19
|
+
* (apps/web/src/app/api/mcp/_lib/tools.ts). Until 2.3 ships, the
|
|
20
|
+
* adapter will issue the MCP call against whatever endpoint the user
|
|
21
|
+
* configured; a 404 / "unknown tool" response surfaces as a delegated
|
|
22
|
+
* error envelope rather than silently falling back to markdown.
|
|
23
|
+
*/
|
|
24
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
25
|
+
import { join } from 'node:path';
|
|
26
|
+
/**
|
|
27
|
+
* Load `.aperant/config.json` defensively. Returns `{}` for any read
|
|
28
|
+
* or parse failure so callers never throw — the Fast Path branch must
|
|
29
|
+
* hit even when the config file is missing or malformed.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} projectDir
|
|
32
|
+
* @returns {Record<string, unknown>}
|
|
33
|
+
*/
|
|
34
|
+
function loadConfig(projectDir) {
|
|
35
|
+
const p = join(projectDir, '.aperant', 'config.json');
|
|
36
|
+
if (!existsSync(p))
|
|
37
|
+
return {};
|
|
38
|
+
try {
|
|
39
|
+
const parsed = JSON.parse(readFileSync(p, 'utf-8'));
|
|
40
|
+
return parsed && typeof parsed === 'object' ? parsed : {};
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return {};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolve the cloud-mcp bearer token via the documented order. Returns
|
|
48
|
+
* `null` when neither source has a non-empty string.
|
|
49
|
+
*
|
|
50
|
+
* @param {string} projectDir
|
|
51
|
+
* @returns {string | null}
|
|
52
|
+
*/
|
|
53
|
+
function resolveToken(projectDir) {
|
|
54
|
+
const env = process.env.MCP_ROADMAP_TOKEN;
|
|
55
|
+
if (typeof env === 'string' && env.length > 0)
|
|
56
|
+
return env;
|
|
57
|
+
const teamPath = join(projectDir, '.aperant', 'team.json');
|
|
58
|
+
if (!existsSync(teamPath))
|
|
59
|
+
return null;
|
|
60
|
+
try {
|
|
61
|
+
const parsed = JSON.parse(readFileSync(teamPath, 'utf-8'));
|
|
62
|
+
if (typeof parsed.roadmapMcpToken === 'string' && parsed.roadmapMcpToken.length > 0) {
|
|
63
|
+
return parsed.roadmapMcpToken;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Bad JSON — fall through to null
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Map a CLI subcommand to the MCP tool name registered in subtask 2.3.
|
|
73
|
+
* Read-side subcommands are intentionally absent — Phase 2 keeps reads
|
|
74
|
+
* markdown-only (cloud-mcp render is a Phase 3 follow-up per the plan).
|
|
75
|
+
*
|
|
76
|
+
* @param {string} subcommand
|
|
77
|
+
* @returns {string | null}
|
|
78
|
+
*/
|
|
79
|
+
function toolNameFor(subcommand) {
|
|
80
|
+
switch (subcommand) {
|
|
81
|
+
case 'add-milestone':
|
|
82
|
+
return 'roadmap.hierarchy.milestones.create';
|
|
83
|
+
case 'add-phase':
|
|
84
|
+
return 'roadmap.hierarchy.phases.create';
|
|
85
|
+
case 'set-phase-status':
|
|
86
|
+
return 'roadmap.hierarchy.phases.update';
|
|
87
|
+
case 'delete-phase':
|
|
88
|
+
return 'roadmap.hierarchy.phases.remove';
|
|
89
|
+
case 'delete-milestone':
|
|
90
|
+
return 'roadmap.hierarchy.milestones.remove';
|
|
91
|
+
default:
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Dispatch a roadmap write subcommand through the configured backend.
|
|
97
|
+
*
|
|
98
|
+
* Return shapes:
|
|
99
|
+
* - markdown (default) → `{ backend: 'markdown', delegated: false }`
|
|
100
|
+
* The caller proceeds with the existing markdown file-write path.
|
|
101
|
+
* - cloud-mcp success → `{ backend: 'cloud-mcp', delegated: true,
|
|
102
|
+
* result: <MCP response JSON> }`
|
|
103
|
+
* - cloud-mcp error → `{ backend: 'cloud-mcp', delegated: true,
|
|
104
|
+
* error: '<msg>', code?: <http>, status: 'error' }`
|
|
105
|
+
*
|
|
106
|
+
* The `error` branch is still `delegated: true` because the caller MUST
|
|
107
|
+
* NOT silently fall through to the markdown path when the user has
|
|
108
|
+
* opted into cloud-mcp — that would lose writes the user expected to
|
|
109
|
+
* land in Convex.
|
|
110
|
+
*
|
|
111
|
+
* @param {string} projectDir
|
|
112
|
+
* @param {string} subcommand
|
|
113
|
+
* @param {Record<string, unknown>} args
|
|
114
|
+
* @param {{ fetchImpl?: typeof fetch }} [opts]
|
|
115
|
+
* @returns {Promise<
|
|
116
|
+
* | { backend: 'markdown', delegated: false }
|
|
117
|
+
* | { backend: 'cloud-mcp', delegated: true, result: unknown }
|
|
118
|
+
* | { backend: 'cloud-mcp', delegated: true, status: 'error', error: string, code?: number }
|
|
119
|
+
* >}
|
|
120
|
+
*/
|
|
121
|
+
export async function dispatchRoadmapWrite(projectDir, subcommand, args, opts = {}) {
|
|
122
|
+
const config = loadConfig(projectDir);
|
|
123
|
+
const roadmapBlock = config.roadmap && typeof config.roadmap === 'object' ? config.roadmap : null;
|
|
124
|
+
const backend = roadmapBlock && typeof roadmapBlock.backend === 'string' ? roadmapBlock.backend : 'markdown';
|
|
125
|
+
if (backend !== 'cloud-mcp') {
|
|
126
|
+
return { backend: 'markdown', delegated: false };
|
|
127
|
+
}
|
|
128
|
+
const cloudMcp = roadmapBlock && typeof roadmapBlock.cloudMcp === 'object' && roadmapBlock.cloudMcp !== null
|
|
129
|
+
? roadmapBlock.cloudMcp
|
|
130
|
+
: {};
|
|
131
|
+
const teamSlug = typeof cloudMcp.teamSlug === 'string' ? cloudMcp.teamSlug : null;
|
|
132
|
+
if (!teamSlug || teamSlug.length === 0) {
|
|
133
|
+
return {
|
|
134
|
+
backend: 'cloud-mcp',
|
|
135
|
+
delegated: true,
|
|
136
|
+
status: 'error',
|
|
137
|
+
error: 'roadmap.cloudMcp.teamSlug required when roadmap.backend=cloud-mcp',
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
const tool = toolNameFor(subcommand);
|
|
141
|
+
if (!tool) {
|
|
142
|
+
return {
|
|
143
|
+
backend: 'cloud-mcp',
|
|
144
|
+
delegated: true,
|
|
145
|
+
status: 'error',
|
|
146
|
+
error: `cloud-mcp backend does not handle subcommand "${subcommand}" (read-side stays markdown in Phase 2)`,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
const token = resolveToken(projectDir);
|
|
150
|
+
if (!token) {
|
|
151
|
+
return {
|
|
152
|
+
backend: 'cloud-mcp',
|
|
153
|
+
delegated: true,
|
|
154
|
+
status: 'error',
|
|
155
|
+
error: 'No roadmap MCP token (set MCP_ROADMAP_TOKEN or .aperant/team.json::roadmapMcpToken)',
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
const baseUrl = (typeof cloudMcp.mcpServerUrl === 'string' && cloudMcp.mcpServerUrl.length > 0
|
|
159
|
+
? cloudMcp.mcpServerUrl
|
|
160
|
+
: process.env.APERANT_BASE_URL || 'https://app.aperant.com').replace(/\/$/, '');
|
|
161
|
+
const url = `${baseUrl}/api/mcp/${encodeURIComponent(teamSlug)}`;
|
|
162
|
+
// Streamable HTTP MCP body — tools/call envelope per the existing
|
|
163
|
+
// server-factory contract. The wire format mirrors what the
|
|
164
|
+
// MCP SDK clients send; the Aperant route handler dispatches on
|
|
165
|
+
// `params.name` to the matching tool registered in subtask 2.3.
|
|
166
|
+
const body = {
|
|
167
|
+
jsonrpc: '2.0',
|
|
168
|
+
id: 1,
|
|
169
|
+
method: 'tools/call',
|
|
170
|
+
params: {
|
|
171
|
+
name: tool,
|
|
172
|
+
arguments: args,
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
const f = opts.fetchImpl ?? fetch;
|
|
176
|
+
let res;
|
|
177
|
+
try {
|
|
178
|
+
res = await f(url, {
|
|
179
|
+
method: 'POST',
|
|
180
|
+
headers: {
|
|
181
|
+
Authorization: `Bearer ${token}`,
|
|
182
|
+
'Content-Type': 'application/json',
|
|
183
|
+
Accept: 'application/json, text/event-stream',
|
|
184
|
+
},
|
|
185
|
+
body: JSON.stringify(body),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
catch (e) {
|
|
189
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
190
|
+
return {
|
|
191
|
+
backend: 'cloud-mcp',
|
|
192
|
+
delegated: true,
|
|
193
|
+
status: 'error',
|
|
194
|
+
error: `network: ${msg}`,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
if (res.status >= 400) {
|
|
198
|
+
let detail = '';
|
|
199
|
+
try {
|
|
200
|
+
detail = await res.text();
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// ignore body-read failures
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
backend: 'cloud-mcp',
|
|
207
|
+
delegated: true,
|
|
208
|
+
status: 'error',
|
|
209
|
+
code: res.status,
|
|
210
|
+
error: detail || `http ${res.status}`,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
let parsed;
|
|
214
|
+
try {
|
|
215
|
+
parsed = await res.json();
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
parsed = null;
|
|
219
|
+
}
|
|
220
|
+
return { backend: 'cloud-mcp', delegated: true, result: parsed };
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=backend-adapter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-adapter.mjs","sourceRoot":"","sources":["../../../src/cli/roadmap/backend-adapter.mjs"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,13 @@ export type RuntimeCapabilities = {
|
|
|
25
25
|
is_web_frontend: boolean;
|
|
26
26
|
is_expo: boolean;
|
|
27
27
|
is_react_native: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* — optional: always populated by the
|
|
30
|
+
* detector, but optional in the type so partial capability records built by
|
|
31
|
+
* other consumers (and pre-existing test fixtures) stay valid.
|
|
32
|
+
*/
|
|
33
|
+
is_ios_native?: boolean | undefined;
|
|
34
|
+
is_android_native?: boolean | undefined;
|
|
28
35
|
has_node: boolean;
|
|
29
36
|
};
|
|
30
37
|
//# sourceMappingURL=runtime-capabilities.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-capabilities.d.mts","sourceRoot":"","sources":["../../../src/cli/util/runtime-capabilities.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime-capabilities.d.mts","sourceRoot":"","sources":["../../../src/cli/util/runtime-capabilities.mjs"],"names":[],"mappings":"AAoEA;;;;;GAKG;AACH,mDAHW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAC5B,mBAAmB,CAwD/B;AAED;;;;;;;;GAQG;AACH,oDAJW,MAAM,SACN;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,GACzB,mBAAmB,CAuC/B;;iBA1Ia,OAAO;cACP,OAAO;eACP,OAAO;aACP,OAAO;qBACP,OAAO;aACP,OAAO;qBACP,OAAO;;;;;;;;cAKP,OAAO"}
|
|
@@ -21,6 +21,14 @@
|
|
|
21
21
|
* whose monorepo lives elsewhere (e.g. `packages/apps/*`) pass a
|
|
22
22
|
* custom `monorepo_globs`. Setting `monorepo_globs: []` disables the
|
|
23
23
|
* walk entirely (root-only escape hatch).
|
|
24
|
+
*
|
|
25
|
+
* Mobile verify-proof surface — `loadRuntimeCapabilities` ALSO detects
|
|
26
|
+
* pure-native iOS/Android projects (Swift `*.xcodeproj` / Kotlin
|
|
27
|
+
* `build.gradle`) that carry no JS deps, via a shallow fs check on the
|
|
28
|
+
* root + each monorepo dir (`detectNativeProject`). The pure
|
|
29
|
+
* `detectFromPackageJson` is intentionally NOT given fs access — native
|
|
30
|
+
* detection lives ONLY in the fs-walking `loadRuntimeCapabilities` so the
|
|
31
|
+
* pure-function contract holds (decision D-06).
|
|
24
32
|
*/
|
|
25
33
|
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
26
34
|
import { join, resolve } from 'node:path';
|
|
@@ -33,6 +41,10 @@ import { join, resolve } from 'node:path';
|
|
|
33
41
|
* @property {boolean} is_web_frontend
|
|
34
42
|
* @property {boolean} is_expo
|
|
35
43
|
* @property {boolean} is_react_native
|
|
44
|
+
* @property {boolean} [is_ios_native] — optional: always populated by the
|
|
45
|
+
* detector, but optional in the type so partial capability records built by
|
|
46
|
+
* other consumers (and pre-existing test fixtures) stay valid.
|
|
47
|
+
* @property {boolean} [is_android_native]
|
|
36
48
|
* @property {boolean} has_node
|
|
37
49
|
*/
|
|
38
50
|
/** A capability record with every flag defaulted to false. */
|
|
@@ -45,6 +57,8 @@ function emptyCapabilities() {
|
|
|
45
57
|
is_web_frontend: false,
|
|
46
58
|
is_expo: false,
|
|
47
59
|
is_react_native: false,
|
|
60
|
+
is_ios_native: false,
|
|
61
|
+
is_android_native: false,
|
|
48
62
|
has_node: false,
|
|
49
63
|
};
|
|
50
64
|
}
|
|
@@ -126,6 +140,8 @@ export function loadRuntimeCapabilities(projectDir, opts) {
|
|
|
126
140
|
/* fall through with empty caps */
|
|
127
141
|
}
|
|
128
142
|
}
|
|
143
|
+
// Fold in pure-native detection on the root (covers a JS-less iOS/Android app).
|
|
144
|
+
rootCaps = orMergeCapabilities(rootCaps, detectNativeProject(root));
|
|
129
145
|
// Default to the canonical Aperant monorepo layout. Passing `[]`
|
|
130
146
|
// disables the walk entirely (root-only escape hatch per spec ID-05).
|
|
131
147
|
const globs = opts && Array.isArray(opts.monorepo_globs) ? opts.monorepo_globs : ['apps/*'];
|
|
@@ -135,6 +151,9 @@ export function loadRuntimeCapabilities(projectDir, opts) {
|
|
|
135
151
|
for (const glob of globs) {
|
|
136
152
|
const matches = expandSimpleGlob(root, glob);
|
|
137
153
|
for (const dir of matches) {
|
|
154
|
+
// Native detection runs regardless of package.json — a pure-native
|
|
155
|
+
// iOS/Android app in apps/* may carry no package.json at all.
|
|
156
|
+
merged = orMergeCapabilities(merged, detectNativeProject(dir));
|
|
138
157
|
const childPkgPath = join(dir, 'package.json');
|
|
139
158
|
if (!existsSync(childPkgPath))
|
|
140
159
|
continue;
|
|
@@ -208,7 +227,53 @@ function orMergeCapabilities(a, b) {
|
|
|
208
227
|
is_web_frontend: a.is_web_frontend || b.is_web_frontend,
|
|
209
228
|
is_expo: a.is_expo || b.is_expo,
|
|
210
229
|
is_react_native: a.is_react_native || b.is_react_native,
|
|
230
|
+
is_ios_native: a.is_ios_native || b.is_ios_native,
|
|
231
|
+
is_android_native: a.is_android_native || b.is_android_native,
|
|
211
232
|
has_node: a.has_node || b.has_node,
|
|
212
233
|
};
|
|
213
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Shallow fs detection of a pure-native mobile project — a Swift/ObjC iOS
|
|
237
|
+
* app (`*.xcodeproj` / `*.xcworkspace`) or a Kotlin/Java Android app
|
|
238
|
+
* (`build.gradle[.kts]` / `settings.gradle[.kts]`). Checks `dir` itself and
|
|
239
|
+
* the conventional `ios/` + `android/` subdirs (the React Native / Expo
|
|
240
|
+
* prebuild layout). Returns a full capability record so it OR-merges with
|
|
241
|
+
* the package.json-derived caps.
|
|
242
|
+
*
|
|
243
|
+
* This is the ONLY fs-touching detection — `detectFromPackageJson` stays
|
|
244
|
+
* pure (D-06). Fails closed (treats unreadable dirs as absent).
|
|
245
|
+
*
|
|
246
|
+
* @param {string} dir
|
|
247
|
+
* @returns {RuntimeCapabilities}
|
|
248
|
+
*/
|
|
249
|
+
function detectNativeProject(dir) {
|
|
250
|
+
const caps = emptyCapabilities();
|
|
251
|
+
if (dirHasXcodeProject(dir) || dirHasXcodeProject(join(dir, 'ios'))) {
|
|
252
|
+
caps.is_ios_native = true;
|
|
253
|
+
}
|
|
254
|
+
if (dirHasGradle(dir) || dirHasGradle(join(dir, 'android'))) {
|
|
255
|
+
caps.is_android_native = true;
|
|
256
|
+
}
|
|
257
|
+
return caps;
|
|
258
|
+
}
|
|
259
|
+
/** True when `dir` directly contains a `*.xcodeproj` or `*.xcworkspace`. */
|
|
260
|
+
function dirHasXcodeProject(dir) {
|
|
261
|
+
if (!existsSync(dir))
|
|
262
|
+
return false;
|
|
263
|
+
try {
|
|
264
|
+
return readdirSync(dir).some((n) => n.endsWith('.xcodeproj') || n.endsWith('.xcworkspace'));
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/** True when `dir` directly contains a Gradle build/settings file. */
|
|
271
|
+
function dirHasGradle(dir) {
|
|
272
|
+
if (!existsSync(dir))
|
|
273
|
+
return false;
|
|
274
|
+
return (existsSync(join(dir, 'build.gradle')) ||
|
|
275
|
+
existsSync(join(dir, 'build.gradle.kts')) ||
|
|
276
|
+
existsSync(join(dir, 'settings.gradle')) ||
|
|
277
|
+
existsSync(join(dir, 'settings.gradle.kts')));
|
|
278
|
+
}
|
|
214
279
|
//# sourceMappingURL=runtime-capabilities.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-capabilities.mjs","sourceRoot":"","sources":["../../../src/cli/util/runtime-capabilities.mjs"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runtime-capabilities.mjs","sourceRoot":"","sources":["../../../src/cli/util/runtime-capabilities.mjs"],"names":[],"mappings":"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"}
|
|
@@ -170,6 +170,19 @@ function validateNode(value, schema, path, errors) {
|
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
|
+
// additionalProperties: false — reject any key not declared in `properties`.
|
|
174
|
+
if (schema.additionalProperties === false &&
|
|
175
|
+
schema.properties &&
|
|
176
|
+
typeof schema.properties === 'object') {
|
|
177
|
+
for (const key of Object.keys(obj)) {
|
|
178
|
+
if (!(key in schema.properties)) {
|
|
179
|
+
errors.push({
|
|
180
|
+
path: `${path}/${key}`,
|
|
181
|
+
message: `additional property "${key}" is not allowed`,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
173
186
|
}
|
|
174
187
|
// array validation
|
|
175
188
|
if (checkType(value, 'array') && schema.items) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-validator.mjs","sourceRoot":"","sources":["../../../src/cli/verify-proof/manifest-validator.mjs"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest-validator.mjs","sourceRoot":"","sources":["../../../src/cli/verify-proof/manifest-validator.mjs"],"names":[],"mappings":"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"}
|
|
@@ -42,14 +42,17 @@ export function resolveDriver(opts: {
|
|
|
42
42
|
* Map a User Outcomes surface tag to the runtime-capability flag a driver
|
|
43
43
|
* must carry (via `matchesRuntime`) to be eligible for that surface.
|
|
44
44
|
*
|
|
45
|
-
* Closed surface set: `electron | web | cli | api | electron+web`.
|
|
45
|
+
* Closed surface set: `electron | web | cli | api | mobile | electron+web`.
|
|
46
46
|
* `electron+web` is NOT a single flag — it's a cross-surface tag the
|
|
47
|
-
* workflow runner expands into two single-surface dispatches.
|
|
47
|
+
* workflow runner expands into two single-surface dispatches. `mobile`
|
|
48
|
+
* maps to the synthetic `is_mobile` marker, which `maskRuntimeForSurface`
|
|
49
|
+
* expands to the four real mobile flags (the unified mobile-mcp driver
|
|
50
|
+
* targets ios/android/expo/react-native — decision D-08).
|
|
48
51
|
*
|
|
49
|
-
* @param {('electron'|'web'|'cli'|'api')} surface
|
|
50
|
-
* @returns {('is_electron'|'is_web_frontend'|'has_node')}
|
|
52
|
+
* @param {('electron'|'web'|'cli'|'api'|'mobile')} surface
|
|
53
|
+
* @returns {('is_electron'|'is_web_frontend'|'has_node'|'is_mobile')}
|
|
51
54
|
*/
|
|
52
|
-
export function surfaceToRequiredFlag(surface: ("electron" | "web" | "cli" | "api")): ("is_electron" | "is_web_frontend" | "has_node");
|
|
55
|
+
export function surfaceToRequiredFlag(surface: ("electron" | "web" | "cli" | "api" | "mobile")): ("is_electron" | "is_web_frontend" | "has_node" | "is_mobile");
|
|
53
56
|
/**
|
|
54
57
|
* Resolve a driver per outcome surface tag, NOT per verify-proof run
|
|
55
58
|
* (per spec §ID-03). For each input outcome the function returns one
|
|
@@ -75,7 +78,7 @@ export function surfaceToRequiredFlag(surface: ("electron" | "web" | "cli" | "ap
|
|
|
75
78
|
* @param {Object} opts
|
|
76
79
|
* @param {DriverManifest[]} opts.drivers
|
|
77
80
|
* @param {RuntimeCapabilities} opts.runtime
|
|
78
|
-
* @param {Array<{id: string, surface: 'electron'|'web'|'cli'|'api'|'electron+web'}>} opts.outcomes
|
|
81
|
+
* @param {Array<{id: string, surface: 'electron'|'web'|'cli'|'api'|'mobile'|'electron+web'}>} opts.outcomes
|
|
79
82
|
* @param {string[]} [opts.override]
|
|
80
83
|
* @param {string[]} [opts.required_stability]
|
|
81
84
|
* @param {string[]} [opts.required_capabilities] — defaults to ['screenshot']
|
|
@@ -86,7 +89,7 @@ export function resolveDriversForOutcomes(opts: {
|
|
|
86
89
|
runtime: RuntimeCapabilities;
|
|
87
90
|
outcomes: Array<{
|
|
88
91
|
id: string;
|
|
89
|
-
surface: "electron" | "web" | "cli" | "api" | "electron+web";
|
|
92
|
+
surface: "electron" | "web" | "cli" | "api" | "mobile" | "electron+web";
|
|
90
93
|
}>;
|
|
91
94
|
override?: string[] | undefined;
|
|
92
95
|
required_stability?: string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.mts","sourceRoot":"","sources":["../../../src/cli/verify-proof/resolver.mjs"],"names":[],"mappings":"AAyFA;;;;;;;GAOG;AACH,sCALW,cAAc,GAAG;IAAC,QAAQ,CAAC,EAAE,SAAS,GAAC,MAAM,GAAC,UAAU,CAAA;CAAC,WACzD,mBAAmB,YACnB,MAAM,EAAE,GACN;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,CAU9C;
|
|
1
|
+
{"version":3,"file":"resolver.d.mts","sourceRoot":"","sources":["../../../src/cli/verify-proof/resolver.mjs"],"names":[],"mappings":"AAyFA;;;;;;;GAOG;AACH,sCALW,cAAc,GAAG;IAAC,QAAQ,CAAC,EAAE,SAAS,GAAC,MAAM,GAAC,UAAU,CAAA;CAAC,WACzD,mBAAmB,YACnB,MAAM,EAAE,GACN;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,CAU9C;AA4CD;;;;;;;;;;;;GAYG;AACH,oCARG;IAA+B,OAAO,EAA9B,cAAc,EAAE;IACU,OAAO,EAAjC,mBAAmB;IACJ,qBAAqB,EAApC,MAAM,EAAE;IACQ,kBAAkB;IAClB,QAAQ;CAChC,GAAU;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,iBAAiB,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;CAAC,CAqFrG;AAED;;;;;;;;;;;;;GAaG;AACH,+CAHW,CAAC,UAAU,GAAC,KAAK,GAAC,KAAK,GAAC,KAAK,GAAC,QAAQ,CAAC,GACrC,CAAC,aAAa,GAAC,iBAAiB,GAAC,UAAU,GAAC,WAAW,CAAC,CAgBpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,gDARG;IAA+B,OAAO,EAA9B,cAAc,EAAE;IACU,OAAO,EAAjC,mBAAmB;IACsE,QAAQ,EAAjG,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,KAAK,GAAC,KAAK,GAAC,KAAK,GAAC,QAAQ,GAAC,cAAc,CAAA;KAAC,CAAC;IAClE,QAAQ;IACR,kBAAkB;IAClB,qBAAqB;CAC7C,GAAU,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,iBAAiB,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;CAAC,CAAC,CA6C/I;6BA7TY,OAAO,+BAA+B,EAAE,cAAc;kCACtD,OAAO,sBAAsB,EAAE,mBAAmB"}
|
|
@@ -129,6 +129,10 @@ function matchesRuntime(manifest, runtime) {
|
|
|
129
129
|
return true;
|
|
130
130
|
if (stripped === 'react-native' && runtime.is_react_native)
|
|
131
131
|
return true;
|
|
132
|
+
if (stripped === 'ios' && runtime.is_ios_native)
|
|
133
|
+
return true;
|
|
134
|
+
if (stripped === 'android' && runtime.is_android_native)
|
|
135
|
+
return true;
|
|
132
136
|
if (stripped === 'node' && runtime.has_node)
|
|
133
137
|
return true;
|
|
134
138
|
if (stripped === 'cli' && runtime.has_node)
|
|
@@ -243,12 +247,15 @@ export function resolveDriver(opts) {
|
|
|
243
247
|
* Map a User Outcomes surface tag to the runtime-capability flag a driver
|
|
244
248
|
* must carry (via `matchesRuntime`) to be eligible for that surface.
|
|
245
249
|
*
|
|
246
|
-
* Closed surface set: `electron | web | cli | api | electron+web`.
|
|
250
|
+
* Closed surface set: `electron | web | cli | api | mobile | electron+web`.
|
|
247
251
|
* `electron+web` is NOT a single flag — it's a cross-surface tag the
|
|
248
|
-
* workflow runner expands into two single-surface dispatches.
|
|
252
|
+
* workflow runner expands into two single-surface dispatches. `mobile`
|
|
253
|
+
* maps to the synthetic `is_mobile` marker, which `maskRuntimeForSurface`
|
|
254
|
+
* expands to the four real mobile flags (the unified mobile-mcp driver
|
|
255
|
+
* targets ios/android/expo/react-native — decision D-08).
|
|
249
256
|
*
|
|
250
|
-
* @param {('electron'|'web'|'cli'|'api')} surface
|
|
251
|
-
* @returns {('is_electron'|'is_web_frontend'|'has_node')}
|
|
257
|
+
* @param {('electron'|'web'|'cli'|'api'|'mobile')} surface
|
|
258
|
+
* @returns {('is_electron'|'is_web_frontend'|'has_node'|'is_mobile')}
|
|
252
259
|
*/
|
|
253
260
|
export function surfaceToRequiredFlag(surface) {
|
|
254
261
|
switch (surface) {
|
|
@@ -259,6 +266,8 @@ export function surfaceToRequiredFlag(surface) {
|
|
|
259
266
|
case 'cli':
|
|
260
267
|
case 'api':
|
|
261
268
|
return 'has_node';
|
|
269
|
+
case 'mobile':
|
|
270
|
+
return 'is_mobile';
|
|
262
271
|
default:
|
|
263
272
|
throw new Error(`surfaceToRequiredFlag: unknown surface "${surface}"`);
|
|
264
273
|
}
|
|
@@ -288,7 +297,7 @@ export function surfaceToRequiredFlag(surface) {
|
|
|
288
297
|
* @param {Object} opts
|
|
289
298
|
* @param {DriverManifest[]} opts.drivers
|
|
290
299
|
* @param {RuntimeCapabilities} opts.runtime
|
|
291
|
-
* @param {Array<{id: string, surface: 'electron'|'web'|'cli'|'api'|'electron+web'}>} opts.outcomes
|
|
300
|
+
* @param {Array<{id: string, surface: 'electron'|'web'|'cli'|'api'|'mobile'|'electron+web'}>} opts.outcomes
|
|
292
301
|
* @param {string[]} [opts.override]
|
|
293
302
|
* @param {string[]} [opts.required_stability]
|
|
294
303
|
* @param {string[]} [opts.required_capabilities] — defaults to ['screenshot']
|
|
@@ -306,7 +315,8 @@ export function resolveDriversForOutcomes(opts) {
|
|
|
306
315
|
for (const outcome of outcomes) {
|
|
307
316
|
const surfacesToDispatch = outcome.surface === 'electron+web' ? ['electron', 'web'] : [outcome.surface];
|
|
308
317
|
for (const surface of surfacesToDispatch) {
|
|
309
|
-
const flag = surfaceToRequiredFlag(
|
|
318
|
+
const flag = surfaceToRequiredFlag(
|
|
319
|
+
/** @type {'electron'|'web'|'cli'|'api'|'mobile'} */ (surface));
|
|
310
320
|
// Synthesize a per-surface runtime view: only the surface's
|
|
311
321
|
// required flag is on; every other flag is masked off so the
|
|
312
322
|
// scoring prefers per-surface drivers (otherwise, on a
|
|
@@ -337,7 +347,7 @@ export function resolveDriversForOutcomes(opts) {
|
|
|
337
347
|
* single surface during per-outcome dispatch.
|
|
338
348
|
*
|
|
339
349
|
* @param {RuntimeCapabilities} runtime
|
|
340
|
-
* @param {string} flag — one of: is_electron | is_web_frontend | has_node
|
|
350
|
+
* @param {string} flag — one of: is_electron | is_web_frontend | has_node | is_mobile
|
|
341
351
|
* @returns {RuntimeCapabilities}
|
|
342
352
|
*/
|
|
343
353
|
function maskRuntimeForSurface(runtime, flag) {
|
|
@@ -350,6 +360,8 @@ function maskRuntimeForSurface(runtime, flag) {
|
|
|
350
360
|
is_web_frontend: false,
|
|
351
361
|
is_expo: false,
|
|
352
362
|
is_react_native: false,
|
|
363
|
+
is_ios_native: false,
|
|
364
|
+
is_android_native: false,
|
|
353
365
|
has_node: false,
|
|
354
366
|
};
|
|
355
367
|
// Only flip the surface's flag on if the project actually carries it
|
|
@@ -365,6 +377,15 @@ function maskRuntimeForSurface(runtime, flag) {
|
|
|
365
377
|
}
|
|
366
378
|
if (flag === 'has_node')
|
|
367
379
|
masked.has_node = runtime.has_node;
|
|
380
|
+
// `is_mobile` is a synthetic surface marker — expand it to the four real
|
|
381
|
+
// mobile flags so the unified mobile-mcp driver (targets ios/android/
|
|
382
|
+
// expo/react-native) matches whichever the project actually carries.
|
|
383
|
+
if (flag === 'is_mobile') {
|
|
384
|
+
masked.is_ios_native = runtime.is_ios_native;
|
|
385
|
+
masked.is_android_native = runtime.is_android_native;
|
|
386
|
+
masked.is_expo = runtime.is_expo;
|
|
387
|
+
masked.is_react_native = runtime.is_react_native;
|
|
388
|
+
}
|
|
368
389
|
return masked;
|
|
369
390
|
}
|
|
370
391
|
//# sourceMappingURL=resolver.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.mjs","sourceRoot":"","sources":["../../../src/cli/verify-proof/resolver.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,IAAI,kCAAkC,CAAA;AACtC,IAAI,CAAC;IACJ,CAAC;IAAA,CAAC,EAAE,kCAAkC,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAA;AAC1F,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACd,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,GAAG,EAAE,IAAI,KAAK,sBAAsB;QAAE,MAAM,GAAG,CAAA;IACnD,gEAAgE;IAChE,kCAAkC,GAAG,MAAM,kCAAmC,SAAQ,KAAK;QAC1F,YAAY,OAAO,EAAE,UAAU,EAAE,QAAQ,GAAG,EAAE;YAC7C,KAAK,CAAC,OAAO,CAAC,CAAA;YACd,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAA;YAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;YAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACzB,CAAC;KACD,CAAA;AACF,CAAC;AAED,MAAM,cAAc,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;AAC1D,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;AAE1D;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ;IACtD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC3D,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/D,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;IACnE,OAAO,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAA;AAC3E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,QAAQ,EAAE,OAAO;IACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,sEAAsE;QACtE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACtD,IAAI,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAC/D,IAAI,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QACzD,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,eAAe;YAAE,OAAO,IAAI,CAAA;QAC1F,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QACzD,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACvD,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACvD,IAAI,QAAQ,KAAK,cAAc,IAAI,OAAO,CAAC,eAAe;YAAE,OAAO,IAAI,CAAA;QACvE,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QACxD,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QACvD,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QACvD,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,IAAI,CAAA,CAAC,gCAAgC;IACtE,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,cAAc;IACrD,CAAC;IACD,OAAO,CAAC,CAAA;AACT,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,IAAI;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAA;IACjD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;IAEpC,MAAM,QAAQ,GAAG,EAAE,CAAA;IAEnB,wEAAwE;IACxE,MAAM,eAAe,GAAG,EAAE,CAAA;IAC1B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC;YAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrE,MAAM,OAAO,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,SAAS,CAAC,CAAA;IAElD,mEAAmE;IACnE,MAAM,UAAU,GAAG,EAAE,CAAA;IACrB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC;gBACb,SAAS,EAAE,CAAC,CAAC,QAAQ;gBACrB,MAAM,EAAE,aAAa,CAAC,CAAC,SAAS,wBAAwB,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC1F,CAAC,CAAA;YACF,SAAQ;QACT,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,qEAAqE;IACrE,kEAAkE;IAClE,+DAA+D;IAC/D,kEAAkE;IAClE,qEAAqE;IACrE,mEAAmE;IACnE,6CAA6C;IAC7C,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5E,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAA;QAC5D,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACb,SAAS,EAAE,SAAS,CAAC,QAAQ;YAC7B,MAAM,EAAE,sDAAsD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAClF,CAAC,CAAA;IACH,CAAC;IAED,mEAAmE;IACnE,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAE9F,6DAA6D;IAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,GAAG,KAAK,CAAC;YAAE,OAAO,GAAG,CAAA;QACzB,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,sFAAsF;IACtF,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;QAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAA;QACrE,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACb,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ;YACtC,MAAM,EAAE,kCAAkC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC9D,CAAC,CAAA;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM,IAAI,kCAAkC,CAC3C,gEAAgE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACtF,QAAQ,CAAC,CAAC,CAAC,EACX,QAAQ,CACR,CAAA;AACF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"resolver.mjs","sourceRoot":"","sources":["../../../src/cli/verify-proof/resolver.mjs"],"names":[],"mappings":"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"}
|