@impetik/xeer-mcp 0.2.23 → 0.2.25
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 +19 -11
- package/dist/server.js +5 -3
- package/package.json +3 -3
- package/vendor/spec/actions.d.ts +4 -4
- package/vendor/spec/actions.js +34 -30
- package/vendor/spec/diagnostics.js +1 -1
- package/vendor/spec/template.js +2 -2
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ for an existing project run `xeer agent setup`.
|
|
|
14
14
|
|
|
15
15
|
Start with `xeer://project/context` when the client supports MCP resources. Separate normalized project
|
|
16
16
|
resources live at `xeer://project/manifest`, `xeer://project/operations`, and `xeer://project/tests`;
|
|
17
|
-
`xeer://docs/index` lists installed-version Markdown pages exposed by `xeer://docs/{path}`, and
|
|
17
|
+
`xeer://docs/index` lists installed-version Markdown pages exposed by `xeer://docs/{+path}`, and
|
|
18
18
|
`xeer://diagnostics/{code}` resolves a stable diagnostic definition. Clients without resource support
|
|
19
19
|
can call `xeer_agent_context` and `xeer_docs_search` instead.
|
|
20
20
|
|
|
@@ -61,8 +61,8 @@ The generated registry is the complete MCP tool and exclusion surface:
|
|
|
61
61
|
| Tool | Action | Profiles | Summary | Inputs | Effects | Safety | Path policy | Output | Human prerequisite |
|
|
62
62
|
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
63
63
|
| `xeer_check` | `check` | `author` / `operator` | Validate a project and report structured diagnostics. | `directory?`: `string` | `read-source`<br>`write-generated` | writes; idempotent; reversible; non-destructive | `project-relative` | `xeer.command.v0` | none |
|
|
64
|
-
| `xeer_build` | `build` | `author` / `operator` | Build and verify a content-addressed
|
|
65
|
-
| `xeer_test` | `test` | `author` / `operator` | Run
|
|
64
|
+
| `xeer_build` | `build` | `author` / `operator` | Build and verify a content-addressed project artifact. | `directory?`: `string` | `read-source`<br>`write-generated`<br>`run-local` | writes; idempotent; reversible; non-destructive | `project-relative` | `xeer.command.v0` | none |
|
|
65
|
+
| `xeer_test` | `test` | `author` / `operator` | Run the project test suite and record review evidence. | `directory?`: `string`<br>`timeoutMilliseconds?`: `integer` [1000..1800000] | `read-source`<br>`write-generated`<br>`run-local`<br>`write-state` | writes; idempotent; reversible; non-destructive | `project-relative` | `xeer.dev.v0` | none |
|
|
66
66
|
| `xeer_new` | `new` | `author` / `operator` | Create a new project from a supported scaffold. | `directory`: `string`<br>`template?`: `string`<br>`framework?`: `sveltekit`<br>`ui?`: `preact` / `react` | `write-source`<br>`network-read` | writes; non-idempotent; reversible; non-destructive | `project-relative` | `xeer.command.v0` | none |
|
|
67
67
|
| `xeer_agent_context` | `agent.context` | `author` / `operator` | Read normalized project facts, operations, diagnostics, tests, and safe next actions. | `directory?`: `string` | `read-source` | read-only; idempotent; reversible; non-destructive | `project-relative` | `xeer.agent-context.v0` | none |
|
|
68
68
|
| `xeer_docs_search` | `docs.search` | `author` / `operator` | Search the installed-version Xeer documentation index. | `query`: `string`<br>`limit?`: `integer` [1..20]; default `5` | none | read-only; idempotent; reversible; non-destructive | `none` | `xeer.docs-search.v0` | none |
|
|
@@ -82,7 +82,7 @@ The generated registry is the complete MCP tool and exclusion surface:
|
|
|
82
82
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
83
83
|
| `xeer init` | `init` | Initialize Xeer in an existing SvelteKit project. | `read-source`<br>`write-source`<br>`run-local`<br>`network-read` | writes; idempotent; reversible; non-destructive | `project-relative` | `xeer.command.v0` | Not exposed through MCP v0; use the CLI deliberately. |
|
|
84
84
|
| `xeer agent setup` | `agent.setup` | Install or verify project-confined agent adapters. | `read-source`<br>`write-source` | writes; idempotent; reversible; non-destructive | `project-relative` | `xeer.command.v0` | Not exposed through MCP v0; use the CLI deliberately. |
|
|
85
|
-
| `xeer deploy` | `deploy` | Build and deploy
|
|
85
|
+
| `xeer deploy` | `deploy` | Build and deploy a project artifact. | `read-source`<br>`write-generated`<br>`run-local`<br>`network-read`<br>`network-write`<br>`production-change` | writes; non-idempotent; reversible; non-destructive | `project-relative` | `xeer.command.v0` | MCP exposes a separate preview-only deploy action; direct production deploy stays CLI-only. |
|
|
86
86
|
| `xeer promote` | `promote` | Promote a preview artifact to production. | `network-read`<br>`network-write`<br>`production-change` | writes; non-idempotent; reversible; non-destructive | `project-or-url` | `xeer.command.v0` | MCP promotion is a separate action available only when the server starts in operator profile. |
|
|
87
87
|
| `xeer tunnel` | `tunnel.start` | Expose a loopback HTTP server through an authenticated tunnel. | `run-local`<br>`network-read`<br>`network-write` | writes; non-idempotent; reversible; non-destructive | `none` | `xeer.tunnel.cli.v0` | Not exposed through MCP v0; use the CLI deliberately. |
|
|
88
88
|
| `xeer link` | `link` | Link a checkout to an application the builder owns. | `read-source`<br>`write-source`<br>`network-read`<br>`network-write` | writes; non-idempotent; reversible; non-destructive | `project-relative` | `xeer.command.v0` | Human identity and project ownership decisions are not delegated through MCP. |
|
|
@@ -122,16 +122,22 @@ Every tool returns `{ protocol: "xeer.mcp-result.v0", action, ok, result?, error
|
|
|
122
122
|
`structuredContent` and as a JSON text block. Command tools preserve the CLI's
|
|
123
123
|
`xeer.command.v0` envelope at `result.envelope`, alongside `result.exitCode`. Host argv,
|
|
124
124
|
raw stderr, and absolute directories are omitted. A CLI crash still produces an `XE0000`
|
|
125
|
-
command envelope
|
|
126
|
-
|
|
125
|
+
command envelope. A CLI refusal sets the wrapper and nested envelope `ok` fields to `false`; its
|
|
126
|
+
stable code stays in `result.envelope.diagnostics`. The wrapper `error` field is for adapter, path,
|
|
127
|
+
URL, session, and tool-level failures.
|
|
127
128
|
|
|
128
129
|
`xeer_test` is the exception, because `xeer test --json` streams `xeer.dev.v0` events rather
|
|
129
|
-
than printing an envelope. It
|
|
130
|
-
|
|
130
|
+
than printing an envelope. It returns
|
|
131
|
+
`{ exitCode, ok, reason?, total, passed, failed, durationMs?, files, cases, diagnostics, events }`.
|
|
132
|
+
The `events` array retains the first 2,000 events. Each failed case carries a
|
|
133
|
+
`Diagnostic`-shaped `failure` (`XE1904`
|
|
131
134
|
assertion, `XE1905` throw or unexpectedly refused call, `XE1906` timeout) that includes the
|
|
132
135
|
matcher, expected and actual values, and the project-relative test location. It needs no
|
|
133
136
|
session handle: unlike `dev`, a test run is short-lived and terminal.
|
|
134
137
|
|
|
138
|
+
`xeer_diagnostics` also returns a direct result rather than a command envelope:
|
|
139
|
+
`{ protocol: "xeer.diagnostic.v0", code, family?, means, repair, surfaces }`.
|
|
140
|
+
|
|
135
141
|
## Why dev is three tools
|
|
136
142
|
|
|
137
143
|
An MCP tool call is request/response; `xeer dev` is a long-lived JSONL stream. The session
|
|
@@ -145,15 +151,17 @@ xeer_dev_status → { result: { events: [compile.start, compile.diagnostic?, com
|
|
|
145
151
|
xeer_dev_stop → { result: { status: 'stopped' } }
|
|
146
152
|
```
|
|
147
153
|
|
|
148
|
-
|
|
149
|
-
|
|
154
|
+
The server retains the latest 2,000 dev events and reports earlier loss in `droppedEvents`.
|
|
155
|
+
Each status call returns at most `limit` events, using the newest matching events when more are
|
|
156
|
+
available. Advance the cursor only to an event you received. Repairing diagnostics needs none of this,
|
|
157
|
+
because `xeer_check` runs the same compiler. The
|
|
150
158
|
session exists for when the preview, the inspector, or rebuild/rollback behaviour matters.
|
|
151
159
|
|
|
152
160
|
## Configuration
|
|
153
161
|
|
|
154
162
|
| Variable | Effect |
|
|
155
163
|
| --- | --- |
|
|
156
|
-
| `XEER_MCP_PROFILE` | `author` (default) exposes no production-changing action. `operator` additionally exposes exact-
|
|
164
|
+
| `XEER_MCP_PROFILE` | `author` (default) exposes no production-changing action. `operator` additionally exposes exact-review-receipt `xeer_promote`; any other value refuses server startup. |
|
|
157
165
|
| `XEER_MCP_ROOT` | Confinement root for every `directory` argument. Defaults to the server's working directory; paths that escape it are refused. |
|
|
158
166
|
| `XEER_CLI` | Absolute path to `dist/cli.js`, overriding resolution through this package's dependencies. |
|
|
159
167
|
| `XEER_MCP_CONTROL_ORIGINS` | Comma-separated additional exact HTTPS or loopback development control-plane origins that MCP may send builder credentials to. Only hosted `https://control.xeer.run` is allowed by default; plaintext non-loopback origins are always refused. |
|
package/dist/server.js
CHANGED
|
@@ -224,7 +224,7 @@ export function createXeerMcpServer(options = {}) {
|
|
|
224
224
|
'Loop: xeer_new to scaffold, xeer_check after every edit, xeer_test to prove behaviour,',
|
|
225
225
|
'xeer_build, then xeer_deploy_preview. A green check means it compiles; only a green test means it works.',
|
|
226
226
|
'The author profile cannot change production. Promotion is available only when a human starts',
|
|
227
|
-
'the server with XEER_MCP_PROFILE=operator, and then requires an exact
|
|
227
|
+
'the server with XEER_MCP_PROFILE=operator, and then requires an exact review receipt.',
|
|
228
228
|
'Tools return xeer.mcp-result.v0; command results preserve the CLI xeer.command.v0 envelope',
|
|
229
229
|
'under result.envelope. Dispatch on that envelope\'s diagnostics[].code',
|
|
230
230
|
'and use xeer_diagnostics to learn what a code means and which edit closes it.',
|
|
@@ -551,8 +551,9 @@ export function createXeerMcpServer(options = {}) {
|
|
|
551
551
|
server.registerTool('xeer_diagnostics', {
|
|
552
552
|
...toolPolicy('diagnostics'),
|
|
553
553
|
outputSchema: wrappedOutput(z.object({
|
|
554
|
+
protocol: z.literal('xeer.diagnostic.v0').optional(),
|
|
554
555
|
code: z.string().optional(),
|
|
555
|
-
family: z.string().optional(),
|
|
556
|
+
family: z.object({ prefix: z.string(), title: z.string(), summary: z.string() }).optional(),
|
|
556
557
|
means: z.string().optional(),
|
|
557
558
|
repair: z.string().optional(),
|
|
558
559
|
surfaces: z.array(z.string()).optional(),
|
|
@@ -565,8 +566,9 @@ export function createXeerMcpServer(options = {}) {
|
|
|
565
566
|
}
|
|
566
567
|
const family = DIAGNOSTIC_FAMILIES.find((candidate) => candidate.prefix === definition.prefix);
|
|
567
568
|
return structured('diagnostics', {
|
|
569
|
+
protocol: 'xeer.diagnostic.v0',
|
|
568
570
|
code: definition.code,
|
|
569
|
-
family: family
|
|
571
|
+
...(family ? { family: { prefix: family.prefix, title: family.title, summary: family.summary } } : {}),
|
|
570
572
|
means: definition.means,
|
|
571
573
|
repair: definition.repair,
|
|
572
574
|
surfaces: [...definition.surfaces],
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@impetik/xeer-mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.25",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "Model Context Protocol server for Xeer
|
|
5
|
+
"description": "Model Context Protocol server for Xeer project context, diagnostics, scaffold, check, test, dev, build, and preview deployment.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
49
49
|
"zod": "^4.0.10",
|
|
50
|
-
"@impetik/xeer": "0.2.
|
|
50
|
+
"@impetik/xeer": "0.2.25"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@types/node": "^24.1.0"
|
package/vendor/spec/actions.d.ts
CHANGED
|
@@ -129,7 +129,7 @@ declare const actions: readonly [{
|
|
|
129
129
|
}, {
|
|
130
130
|
readonly id: "build";
|
|
131
131
|
readonly command: readonly ["build"];
|
|
132
|
-
readonly summary: "Build and verify a content-addressed
|
|
132
|
+
readonly summary: "Build and verify a content-addressed project artifact.";
|
|
133
133
|
readonly usage: readonly ["build [directory] [--json]"];
|
|
134
134
|
readonly helpOrder: 40;
|
|
135
135
|
readonly outputProtocol: "xeer.command.v0";
|
|
@@ -158,7 +158,7 @@ declare const actions: readonly [{
|
|
|
158
158
|
}, {
|
|
159
159
|
readonly id: "test";
|
|
160
160
|
readonly command: readonly ["test"];
|
|
161
|
-
readonly summary: "Run
|
|
161
|
+
readonly summary: "Run the project test suite and record review evidence.";
|
|
162
162
|
readonly usage: readonly ["test [directory] [--host <host>] [--json]"];
|
|
163
163
|
readonly helpOrder: 250;
|
|
164
164
|
readonly outputProtocol: "xeer.dev.v0";
|
|
@@ -369,7 +369,7 @@ declare const actions: readonly [{
|
|
|
369
369
|
}, {
|
|
370
370
|
readonly id: "deploy";
|
|
371
371
|
readonly command: readonly ["deploy"];
|
|
372
|
-
readonly summary: "Build and deploy
|
|
372
|
+
readonly summary: "Build and deploy a project artifact.";
|
|
373
373
|
readonly description: string;
|
|
374
374
|
readonly usage: readonly ["deploy [directory] [--environment prod|preview] [--control-url <url>] [--json]"];
|
|
375
375
|
readonly helpOrder: 50;
|
|
@@ -468,7 +468,7 @@ declare const actions: readonly [{
|
|
|
468
468
|
};
|
|
469
469
|
readonly required: readonly ["receiptId"];
|
|
470
470
|
};
|
|
471
|
-
readonly mcpTitle: "Promote an exact
|
|
471
|
+
readonly mcpTitle: "Promote an exact review receipt (operator)";
|
|
472
472
|
readonly mcpDescription: string;
|
|
473
473
|
readonly cli: false;
|
|
474
474
|
readonly mcpTool: "xeer_promote";
|
package/vendor/spec/actions.js
CHANGED
|
@@ -57,9 +57,9 @@ const MCP_PRESENTATION = {
|
|
|
57
57
|
mcpDescription: [
|
|
58
58
|
'Validate a Xeer project and return its diagnostics as JSON. This is the repair loop:',
|
|
59
59
|
'read diagnostics, apply the smallest edit each one names, run it again, converge on ok: true.',
|
|
60
|
-
'
|
|
61
|
-
'
|
|
62
|
-
'
|
|
60
|
+
'A Xeer application runs manifest, module graph, zone, operation, and type analysis. Its result',
|
|
61
|
+
'is { manifest }. A framework project delegates its check script and returns',
|
|
62
|
+
'{ framework, config, check }. Diagnostic codes are stable. Look one up with xeer_diagnostics.',
|
|
63
63
|
].join(' '),
|
|
64
64
|
},
|
|
65
65
|
build: {
|
|
@@ -67,17 +67,19 @@ const MCP_PRESENTATION = {
|
|
|
67
67
|
mcpDescription: [
|
|
68
68
|
'Build the content-addressed artifact. Runs check first, so build diagnostics are a superset',
|
|
69
69
|
'of check diagnostics plus bundling, budget, and asset codes (XE14xx, XE15xx).',
|
|
70
|
-
'
|
|
71
|
-
'
|
|
70
|
+
'A Xeer application returns { artifactId, outputDirectory, modules, assets, operations }.',
|
|
71
|
+
'A framework project returns { framework, artifactId, outputDirectory, modules, assets }.',
|
|
72
|
+
'Framework results omit operations because the framework owns its routes and build contract.',
|
|
73
|
+
'Run xeer_test before this to prove behavior as well as compilation.',
|
|
72
74
|
].join(' '),
|
|
73
75
|
},
|
|
74
76
|
test: {
|
|
75
77
|
mcpTitle: 'Run a Xeer project\'s tests',
|
|
76
78
|
mcpDescription: [
|
|
77
|
-
'Run the
|
|
78
|
-
'contract,
|
|
79
|
-
'
|
|
80
|
-
'
|
|
79
|
+
'Run the project\'s own tests. A Xeer application builds, type-checks every tests/**/*.ts module',
|
|
80
|
+
'against the generated contract, boots the artifact in workerd with fresh state, runs every',
|
|
81
|
+
'registered test, and tears down. A framework project delegates its package test script.',
|
|
82
|
+
'Returns { exitCode, ok, reason?, total, passed, failed, durationMs?, files, cases, diagnostics, events }.',
|
|
81
83
|
'Each failed case carries a Diagnostic-shaped failure with matcher, expected, actual, and the',
|
|
82
84
|
'project-relative test location: XE1904 assertion, XE1905 threw or unexpectedly refused call,',
|
|
83
85
|
'XE1906 timeout. Compiler diagnostics abort the run before any test boots.',
|
|
@@ -92,13 +94,15 @@ const MCP_PRESENTATION = {
|
|
|
92
94
|
+ 'Every template checks, tests, and builds clean, so use one as the starting point rather '
|
|
93
95
|
+ 'than writing a manifest by hand. "notes" (the default) and "todo" are per-user apps, "blog" '
|
|
94
96
|
+ 'is public to read and private to write, and "personal-site" has no database at all. None of '
|
|
95
|
-
+ 'them scaffolds sign-in UI. "ui" selects
|
|
96
|
-
+ '
|
|
97
|
+
+ 'them scaffolds sign-in UI. "ui" selects "preact" or "react" for a bundled starter only. '
|
|
98
|
+
+ 'Catalog templates own their renderer and reject "ui" with XE3013. '
|
|
97
99
|
+ '"framework" is the other axis and is exclusive with "template": "sveltekit" writes a '
|
|
98
100
|
+ 'SvelteKit project with xeer.config.json instead of xeer.app.json, so it has no UI provider '
|
|
99
|
-
+ 'and no declared database, and
|
|
100
|
-
+ 'install. result is { directory, name, files
|
|
101
|
-
+ '
|
|
101
|
+
+ 'and no declared database. Its check, dev, test, and build commands delegate to package '
|
|
102
|
+
+ 'scripts after an install. A bundled result is { directory, name, files, template, ui }. '
|
|
103
|
+
+ 'A direct framework result replaces template and ui with framework. A catalog result adds '
|
|
104
|
+
+ 'projectKind, platformVersion, and artifactVersion, plus framework when projectKind is '
|
|
105
|
+
+ '"framework". Catalog results never contain "ui". An unknown template is XE3002, an unknown ui '
|
|
102
106
|
+ 'is XE3003, "ui" with "framework" is XE3004, "template" with "framework" is XE3005, an '
|
|
103
107
|
+ 'unknown framework is XE3006, and none of them writes anything.',
|
|
104
108
|
},
|
|
@@ -111,24 +115,24 @@ const MCP_PRESENTATION = {
|
|
|
111
115
|
deploy: {
|
|
112
116
|
mcpTitle: 'Deploy a Xeer preview',
|
|
113
117
|
mcpDescription: 'Build, verify, and upload the artifact to the preview environment. This tool never '
|
|
114
|
-
+ 'changes production.
|
|
115
|
-
+ '
|
|
118
|
+
+ 'changes production. It accepts a credential established by `xeer auth login` or a service '
|
|
119
|
+
+ 'token supplied in XEER_SERVICE_TOKEN. result is '
|
|
116
120
|
+ '{ application, url, ... } for the app\'s side-by-side preview URL; production keeps serving, '
|
|
117
121
|
+ 'and preview has its own disposable state.',
|
|
118
122
|
},
|
|
119
123
|
promote: {
|
|
120
|
-
mcpTitle: 'Promote an exact
|
|
121
|
-
mcpDescription: 'Make the
|
|
122
|
-
+ '
|
|
123
|
-
+ '
|
|
124
|
-
+ '
|
|
124
|
+
mcpTitle: 'Promote an exact review receipt (operator)',
|
|
125
|
+
mcpDescription: 'Make the artifact bound to an exact review receipt live on production. The control '
|
|
126
|
+
+ 'plane verifies that the receipt still names the active preview and its recorded test evidence. '
|
|
127
|
+
+ 'It promotes the same bundle without rebuilding and uses production environment values. '
|
|
128
|
+
+ 'This tool exists only when the server starts '
|
|
125
129
|
+ 'with XEER_MCP_PROFILE=operator. result is { artifactId, replaced, url, ... }.',
|
|
126
130
|
},
|
|
127
131
|
'auth.status': {
|
|
128
132
|
mcpTitle: 'Report builder sign-in status',
|
|
129
|
-
mcpDescription: 'Report whether a builder credential is available for deployment.
|
|
130
|
-
+ '
|
|
131
|
-
+ '
|
|
133
|
+
mcpDescription: 'Report whether a builder credential is available for deployment. A person can '
|
|
134
|
+
+ 'establish it with `xeer auth login`, or a service can use XEER_SERVICE_TOKEN. Interactive '
|
|
135
|
+
+ 'sign-in cannot be completed by an agent.',
|
|
132
136
|
},
|
|
133
137
|
inspect: {
|
|
134
138
|
mcpTitle: 'Inspect a running preview',
|
|
@@ -182,7 +186,7 @@ const actions = [
|
|
|
182
186
|
},
|
|
183
187
|
},
|
|
184
188
|
{
|
|
185
|
-
id: 'build', command: ['build'], summary: 'Build and verify a content-addressed
|
|
189
|
+
id: 'build', command: ['build'], summary: 'Build and verify a content-addressed project artifact.',
|
|
186
190
|
usage: ['build [directory] [--json]'], helpOrder: 40,
|
|
187
191
|
outputProtocol: 'xeer.command.v0', effects: ['read-source', 'write-generated', 'run-local'],
|
|
188
192
|
idempotent: true, reversible: true, destructive: false, humanPrerequisites: [],
|
|
@@ -193,7 +197,7 @@ const actions = [
|
|
|
193
197
|
},
|
|
194
198
|
},
|
|
195
199
|
{
|
|
196
|
-
id: 'test', command: ['test'], summary: 'Run
|
|
200
|
+
id: 'test', command: ['test'], summary: 'Run the project test suite and record review evidence.',
|
|
197
201
|
usage: ['test [directory] [--host <host>] [--json]'], helpOrder: 250, outputProtocol: 'xeer.dev.v0',
|
|
198
202
|
effects: ['read-source', 'write-generated', 'run-local', 'write-state'],
|
|
199
203
|
idempotent: true, reversible: true, destructive: false, humanPrerequisites: [],
|
|
@@ -238,13 +242,13 @@ const actions = [
|
|
|
238
242
|
framework: {
|
|
239
243
|
description: 'Scaffold a fresh project for this framework instead of a Xeer '
|
|
240
244
|
+ 'application: it declares xeer.config.json, owns its own renderer and routes, and '
|
|
241
|
-
+ 'delegates
|
|
245
|
+
+ 'delegates check, dev, test, and build to its package scripts. Exclusive with template and ui.',
|
|
242
246
|
type: 'string', enum: FRAMEWORK_NAMES,
|
|
243
247
|
},
|
|
244
248
|
ui: {
|
|
245
249
|
description: 'Which UI provider the written manifest selects. Defaults to preact, and '
|
|
246
|
-
+ 'omitting it writes no client block at all.
|
|
247
|
-
+ '
|
|
250
|
+
+ 'omitting it writes no client block at all. Applies only to bundled starters. Catalog '
|
|
251
|
+
+ 'templates reject it with XE3013, and frameworks reject it with XE3004.',
|
|
248
252
|
type: 'string', enum: ['preact', 'react'],
|
|
249
253
|
},
|
|
250
254
|
},
|
|
@@ -312,7 +316,7 @@ const actions = [
|
|
|
312
316
|
},
|
|
313
317
|
},
|
|
314
318
|
{
|
|
315
|
-
id: 'deploy', command: ['deploy'], summary: 'Build and deploy
|
|
319
|
+
id: 'deploy', command: ['deploy'], summary: 'Build and deploy a project artifact.',
|
|
316
320
|
description: 'Deploys to production by default. Use --environment preview for a separate preview '
|
|
317
321
|
+ 'Worker, URL, environment values, and disposable data so you can review a release before it goes live.',
|
|
318
322
|
usage: ['deploy [directory] [--environment prod|preview] [--control-url <url>] [--json]'], helpOrder: 50,
|
|
@@ -447,7 +447,7 @@ export const DIAGNOSTIC_DEFINITIONS = [
|
|
|
447
447
|
+ 'Never scaffold a new project over an initialized one.', ['preview', 'inspect', 'state', 'agent']),
|
|
448
448
|
define('XE4001', 'A doctor check failed. `hint` carries the check details as JSON, and result.checks '
|
|
449
449
|
+ 'lists every check with its id and status.', 'Fix the environment problem the failing check names. Doctor never edits the project.', ['doctor']),
|
|
450
|
-
define('XE5000', 'An auth subcommand was invoked with wrong arguments.', 'Use `xeer auth <login|status|logout|as|clear>`; `auth as` takes alice or
|
|
450
|
+
define('XE5000', 'An auth subcommand was invoked with wrong arguments.', 'Use `xeer auth <login|status|logout|as|clear>`; `auth as` takes alice, bob, or carol.', ['auth']),
|
|
451
451
|
define('XE5001', 'The --control-url value is not an exact HTTP(S) origin, or is plain HTTP off localhost.', 'Pass an origin such as https://control.example.com with no path.', ['auth', 'deploy']),
|
|
452
452
|
define('XE5002', 'No valid builder credential is stored.', 'A human must run `xeer auth login` and approve the shown code. An agent cannot complete sign-in.', ['auth', 'deploy']),
|
|
453
453
|
define('XE5003', 'XEER_SERVICE_TOKEN is set to something that is not a service token, so no command '
|
package/vendor/spec/template.js
CHANGED
|
@@ -77,7 +77,7 @@ export const templateManifestJsonSchema = Object.freeze({
|
|
|
77
77
|
...generatedTemplateManifestJsonSchema,
|
|
78
78
|
$id: TEMPLATE_MANIFEST_SCHEMA_URL,
|
|
79
79
|
title: 'Xeer template manifest v0',
|
|
80
|
-
description: 'Authored metadata for one
|
|
80
|
+
description: 'Authored metadata for one project in the Xeer template catalog.',
|
|
81
81
|
properties: {
|
|
82
82
|
...generatedProperties,
|
|
83
83
|
$schema: {
|
|
@@ -103,7 +103,7 @@ export const templateManifestJsonSchema = Object.freeze({
|
|
|
103
103
|
},
|
|
104
104
|
capabilities: {
|
|
105
105
|
...generatedProperties.capabilities,
|
|
106
|
-
description: '
|
|
106
|
+
description: 'Project capabilities, verified against the template root contract when the catalog is generated.',
|
|
107
107
|
uniqueItems: true,
|
|
108
108
|
},
|
|
109
109
|
previewAppId: {
|