@jimhoyd/urlcode 0.5.8 → 0.5.9

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 CHANGED
@@ -110,7 +110,7 @@ it. Cross-repository acceptance is tracked in
110
110
  ## Status
111
111
 
112
112
  <!-- urlcode-current-version:start -->
113
- This checkout prepares the coordinated `0.5.8` core, UI, auth, admin and store
113
+ This checkout prepares the coordinated `0.5.9` core, UI, auth, admin and store
114
114
  release. Package availability remains a live registry fact: use `npm run
115
115
  release:status` or the release's signed `train.json` before selecting an
116
116
  install combination. Independent package versioning remains enabled, and a
@@ -2,7 +2,7 @@
2
2
  "node": "v26.9.0",
3
3
  "files": {
4
4
  "dist/adapters.js": "a7153ec52f2ed7e0cdd8ed7d433504815f402ec53b2b1c3d38d0cf0e2fcf6509",
5
- "dist/agent-context.js": "1e4e9c7b85d155c06d99d8b70f625bd7ab31330a0207aef6ed1803243b759611",
5
+ "dist/agent-context.js": "cdad0c535ea2771d993f5d9b10bc35aee563d3a6db9618cf97ed072f610164df",
6
6
  "dist/agent-lists.js": "35ab484198897501d011cb6cc00b5a6787192e19df29c97646e8c118fcc19eef",
7
7
  "dist/agents-guide.js": "307d92879034ef019213ab5c15ff5806de3333da4bb263d46fa87049d1a85d5c",
8
8
  "dist/assets.js": "85d8e379dab466bc406b2ea1a9385f1fcecb35d05d825eb83089c55a62f6d1a4",
@@ -16,7 +16,7 @@
16
16
  "dist/capabilities.js": "f14c17de63764f6f4686fc1404bf21aa5cf56125ad81e6d6157a429438fc0cbf",
17
17
  "dist/capability-query.js": "00fbd8b592dea05de7487f3de21e6aa8808a6d2a90e8808811abeb843375dab3",
18
18
  "dist/catalog.js": "629ed1d3580d5c5e238a4293e5b8491ba99d6948accda316bbd2ee3d7902cc0f",
19
- "dist/cli.js": "5a99ca3f3d7c374f809a214e453b9b634c4057702b5ac92090b45e12c126fa34",
19
+ "dist/cli.js": "98f0209fab9204401ad6950a3b9fea9f6029546ca905977ee5492d33b390b6f1",
20
20
  "dist/client-address.js": "9d0d01466aab23124330605c5a0e0f981f87c897858acfad909f546a63df165b",
21
21
  "dist/cloudflare.js": "b236918e499215ee42c2865181b3ed92decba0bf9d604f17f8b08736c86751d9",
22
22
  "dist/compliance-rules/baseline.js": "6296dea6bcb9f9bb80ed6ed5ab2f456e7f74e6de2be5d2d98ca8c983fb4df3ab",
@@ -54,7 +54,7 @@
54
54
  "dist/manifest.js": "83eed0d59621039ef364cf6e7b54c5bd47e0d8cf0a5abe7b07344bfc1db56ed8",
55
55
  "dist/match.js": "9069dfc59d485c7ed3b618d4ab4cfabcd67299ea4c45c646565e44a57b4bd51d",
56
56
  "dist/mcp-authoring.js": "0753fb4f330ab710c7ee115315d7beb33b11faa80ca1b4fc114f5561c8abf7a7",
57
- "dist/mcp.js": "f5cc0992b4e595fa36e33f84cb83e5917409ae7875c2f7a4686208cecaf5e671",
57
+ "dist/mcp.js": "fe94c09e0e57d18fa23ecb79b872c267f3644fc4ab3e00f9167f9ad9035b418c",
58
58
  "dist/object-guards.js": "5af6012c803e9d587cb4270f52011bd2ba3e4655f73198dddc4ca327cdf89675",
59
59
  "dist/observability.js": "f4b1ab496f051fe3ef2ed36b2b2e469c63a8940700e2df852e6ff2d9cccdd5ae",
60
60
  "dist/operator-host.js": "e3dac9d43a83beb775202b4ab9eeeba7ac63cebfc5dcc669be38d825be587bd0",
@@ -7,6 +7,15 @@ import {listExamples} from './examples.js';
7
7
  * Fixed, package-owned agent material. This is intentionally a manifest rather
8
8
  * than an arbitrary file reader: MCP clients cannot use it to enumerate or
9
9
  * exfiltrate a local project.
10
+ *
11
+ * Every export here is public API, published as `@jimhoyd/urlcode/agent-context`
12
+ * (see docs/TOOLING.md and docs/TYPESCRIPT.md) so a host building its own MCP
13
+ * server or agent-tooling surface can reuse the same deterministic docs
14
+ * search, YAML validation and error-remediation guidance this package's own
15
+ * `serveMcp` (mcp.ts) uses, rather than re-implementing it or reaching into
16
+ * `dist/` directly. Signatures take only plain strings and return plain data;
17
+ * keep them that way so the subpath stays stable independent of internal
18
+ * types like `validateDocument`'s return shape.
10
19
  */
11
20
  const packageRoot=fileURLToPath(new URL('../',import.meta.url));
12
21
  const docs=[
package/dist/cli.js CHANGED
@@ -30,7 +30,7 @@ import { readFile } from 'node:fs/promises';
30
30
  import { installArtifact, inspectArtifacts } from './extension-artifacts.js';
31
31
  import { installBundle, readBundleLock } from './extension-bundles.js';
32
32
 
33
- const usage = `URLCode 0.5.8 — local/self-hosted runtime
33
+ const usage = `URLCode 0.5.9 — local/self-hosted runtime
34
34
  urlcode init <directory> [--with ui,auth,admin] [--bundle-release extension-bundles@vX.Y.Z] [--ack extension:id] [--manifest|--no-manifest] [--pin @scope/pkg=specifier]
35
35
  # Writes one bare project scaffold (urlcode.yaml, empty fixtures, AGENTS.md, .mcp.json and project CI). Add routes deliberately after asking the local MCP for task-scoped context.
36
36
  # init works in place in a directory holding only package.json, package-lock.json, node_modules or .git; an existing package.json is preserved, any other existing file is refused
package/dist/mcp.js CHANGED
@@ -7,7 +7,10 @@ import {loadOperatorHost} from './operator-host.js';
7
7
  import {buildManifest} from './manifest.js';
8
8
 
9
9
  import {authoringDefinitions,callAuthoringTool} from './mcp-authoring.js';
10
- import {listSkills,getSkill,searchDocs,getExample,validateYaml,explainError} from './agent-context.js';
10
+ // Imported through the public subpath, not a relative path into this module's own
11
+ // package, to prove @jimhoyd/urlcode/agent-context is sufficient for the framework's
12
+ // own MCP server rather than a documentation-only promise (see docs/TOOLING.md).
13
+ import {listSkills,getSkill,searchDocs,getExample,validateYaml,explainError} from '@jimhoyd/urlcode/agent-context';
11
14
  import {isRecord as object} from './object-guards.js';
12
15
  import {describeArtifactCache,readArtifactMember} from './extension-artifacts.js';
13
16
  const protocolVersion='2025-11-25';
@@ -102,7 +105,7 @@ export async function serveMcp(options ) {
102
105
  if(message.method==='initialize') {
103
106
  if(initialized){await error(id,-32600,'Already initialized');return;}
104
107
  if(typeof params.protocolVersion!=='string'||!object(params.capabilities)||!object(params.clientInfo)||typeof params.clientInfo.name!=='string'||typeof params.clientInfo.version!=='string'){await error(id,-32602,'Invalid initialize params');return;}
105
- initialized=true;await send({jsonrpc:'2.0',id,result:{protocolVersion,capabilities:{tools:{}},serverInfo:{name:'urlcode',version:'0.5.8'}}});return;
108
+ initialized=true;await send({jsonrpc:'2.0',id,result:{protocolVersion,capabilities:{tools:{}},serverInfo:{name:'urlcode',version:'0.5.9'}}});return;
106
109
  }
107
110
  if(message.method==='ping'){await send({jsonrpc:'2.0',id,result:{}});return;}
108
111
  if(!ready){await error(id,-32002,'Initialize first');return;}
package/docs/TOOLING.md CHANGED
@@ -281,6 +281,14 @@ documentation and example tools read only a fixed package-owned manifest; no
281
281
  tool argument names an arbitrary local path or remote URL. The CLI equivalent of `search_docs` is
282
282
  `urlcode docs search TEXT [--json]`, which returns the same at most three bounded excerpts. `validate_yaml` checks supplied
283
283
  YAML syntax and schema only, while `validate` compiles the selected local project.
284
+ The `list_skills`, `get_skill`, `search_docs`, `get_example`, `validate_yaml` and
285
+ `explain_error` tools are thin wrappers over `@jimhoyd/urlcode/agent-context`
286
+ (`listSkills`, `getSkill`, `searchDocs`, `getExample`, `validateYaml`,
287
+ `explainError`), a public package export — not an internal detail of this
288
+ server. A host building its own MCP server, or any other agent-tooling
289
+ integration, can import that module directly instead of reimplementing this
290
+ behavior or reaching into `dist/agent-context.js`; see
291
+ [TypeScript](TYPESCRIPT.md).
284
292
  `get_extension_artifacts` validates the project-selected
285
293
  `urlcode.extensions.lock.json` and cache, then returns artifact metadata,
286
294
  status and allowlisted member paths. `get_extension_artifact` accepts only a
package/llms-full.txt CHANGED
@@ -7,7 +7,7 @@
7
7
  > A portable runtime for programmable URL behavior, and the framework that grows
8
8
  > from it: routes in YAML, functions and middleware, then accounts, administration and
9
9
  > stored links as operator-installed extensions. Stable project format
10
- > `version: "1"`. Core is Apache-2.0; this revision is `0.5.8`. `function`/`middleware`
10
+ > `version: "1"`. Core is Apache-2.0; this revision is `0.5.9`. `function`/`middleware`
11
11
  > routes are trusted by default with `sandbox: true` as the per-route opt-in. The
12
12
  > auth, admin, ui and store workspace packages are bundle sources. New sites install
13
13
  > core from npm and verified executable extensions from an immutable GitHub Release;
@@ -784,7 +784,7 @@ programmatic compatibility analysis and provider verification limits.
784
784
  Source: https://github.com/jimhoyd-com/urlcode/blob/main/docs/YAML-GUIDE.md
785
785
 
786
786
  <!-- urlcode-current-version:start -->
787
- This guide targets URLCode 0.5.8. Start with the function example below,
787
+ This guide targets URLCode 0.5.9. Start with the function example below,
788
788
  then add only the fields your route needs. The authoritative machine-readable
789
789
  shape is [JSON Schema](https://github.com/jimhoyd-com/urlcode/blob/main/schemas/urlcode.schema.json); semantic rules are in the
790
790
  [specification](https://github.com/jimhoyd-com/urlcode/blob/main/docs/SPECIFICATION.md). Unsupported fields fail validation.
package/llms.txt CHANGED
@@ -4,7 +4,7 @@
4
4
  > A portable runtime for programmable URL behavior, and the framework that grows
5
5
  > from it: routes in YAML, functions and middleware, then accounts, administration and
6
6
  > stored links as operator-installed extensions. Stable project format
7
- > `version: "1"`. Core is Apache-2.0; this revision is `0.5.8`. `function`/`middleware`
7
+ > `version: "1"`. Core is Apache-2.0; this revision is `0.5.9`. `function`/`middleware`
8
8
  > routes are trusted by default with `sandbox: true` as the per-route opt-in. The
9
9
  > auth, admin, ui and store workspace packages are bundle sources. New sites install
10
10
  > core from npm and verified executable extensions from an immutable GitHub Release;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jimhoyd/urlcode",
3
- "version": "0.5.8",
3
+ "version": "0.5.9",
4
4
  "description": "Portable runtime for programmable URL behavior",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -25,6 +25,10 @@
25
25
  "types": "./dist/types/index.d.ts",
26
26
  "default": "./dist/index.js"
27
27
  },
28
+ "./agent-context": {
29
+ "types": "./dist/types/agent-context.d.ts",
30
+ "default": "./dist/agent-context.js"
31
+ },
28
32
  "./aws": {
29
33
  "types": "./dist/types/aws.d.ts",
30
34
  "default": "./dist/aws.js"