halfcode-compiler.xnl 0.2.0 → 0.2.2

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.
@@ -1,4 +1,4 @@
1
- import { n as loadResourceTree } from "./src-xibObw5e.js";
1
+ import { n as loadResourceTree } from "./src-DCRih45n.js";
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { dirname, join } from "node:path";
4
4
  import { parse } from "yaml";
@@ -193,6 +193,7 @@ async function resolveApplicationAssembly(options) {
193
193
  pageObjects: loaded.flatMap((module) => module.pageObjects),
194
194
  byFqn
195
195
  };
196
+ assertSkillDependencyBindings(assembly.skillCapsules, byFqn);
196
197
  setObjectOperationCompilations(assembly, compilations);
197
198
  return assembly;
198
199
  }
@@ -385,22 +386,61 @@ async function readTextResource(module, record, kind) {
385
386
  };
386
387
  }
387
388
  async function readSkillCapsule(module, record) {
388
- const metadata = await readRequiredMaterial(module, record, "SkillMetadata");
389
+ const metadataMaterial = await readRequiredMaterial(module, record, "SkillMetadata");
389
390
  const template = await readRequiredMaterial(module, record, "Template");
391
+ const version = record.metadata.version;
392
+ const apiVersion = record.metadata.apiVersion;
393
+ if (!apiVersion) throw new Error(`SKILL_CAPSULE_API_VERSION_MISSING: ${record.logicalPath} is missing XNL metadata apiVersion`);
394
+ if (!version) throw new Error(`SKILL_CAPSULE_VERSION_MISSING: ${record.logicalPath} is missing XNL metadata version`);
395
+ const parsedMetadata = parse(metadataMaterial.content);
396
+ if (!parsedMetadata || typeof parsedMetadata !== "object" || Array.isArray(parsedMetadata)) throw new Error(`SKILL_CAPSULE_METADATA_INVALID: ${record.logicalPath} Skill metadata must be a YAML object`);
397
+ const yamlVersion = parsedMetadata.version;
398
+ if (yamlVersion !== void 0 && yamlVersion !== version) throw new Error(`SKILL_CAPSULE_VERSION_CONFLICT: ${requiredFqn(record)} YAML version ${JSON.stringify(yamlVersion)} does not match XNL version ${version}`);
399
+ const hasXnlName = Object.prototype.hasOwnProperty.call(record.node.properties, "name");
400
+ const xnlName = stringResourceValue(record.node.properties.name);
401
+ if (hasXnlName && !xnlName) throw new Error(`SKILL_CAPSULE_NAME_INVALID: ${requiredFqn(record)} XNL name must be a non-empty string`);
402
+ if (hasXnlName && Object.prototype.hasOwnProperty.call(parsedMetadata, "name")) throw new Error(`SKILL_CAPSULE_NAME_DUPLICATE: ${requiredFqn(record)} name is owned by XNL and must not be repeated in YAML`);
390
403
  return {
391
404
  kind: "SkillCapsule",
392
405
  fqn: requiredFqn(record),
406
+ ...xnlName ? { name: xnlName } : {},
407
+ apiVersion,
408
+ version,
393
409
  description: requiredDescription(record),
394
- metadata: parse(metadata.content),
410
+ metadata: {
411
+ ...parsedMetadata,
412
+ version
413
+ },
395
414
  template,
396
415
  resourceMappings: await readOptionalMaterial(module, record, "ResourceMappings"),
397
416
  includes: nodeMembers(record.node.subdomains.Includes).filter((node) => node.tag === "Include").map((include) => ({
398
417
  kind: requiredNodeProperty(include, "kind", record),
399
418
  ref: requiredNodeProperty(include, "ref", record)
400
419
  })),
420
+ dependencies: nodeMembers(record.node.subdomains.SkillDependencies).filter((node) => node.tag === "SkillDependency").map((dependency) => {
421
+ const ref = requiredNodeProperty(dependency, "ref", record);
422
+ return {
423
+ ref,
424
+ fqn: resourceRefToFqn(ref),
425
+ version: requiredNodeProperty(dependency, "version", record)
426
+ };
427
+ }),
401
428
  source: sourceFor(module, record)
402
429
  };
403
430
  }
431
+ function assertSkillDependencyBindings(skills, byFqn) {
432
+ for (const skill of skills) {
433
+ const seen = /* @__PURE__ */ new Set();
434
+ for (const dependency of skill.dependencies) {
435
+ if (seen.has(dependency.fqn)) throw new Error(`SKILL_DEPENDENCY_DUPLICATE: ${skill.fqn} declares ${dependency.fqn} more than once`);
436
+ seen.add(dependency.fqn);
437
+ const target = byFqn.get(dependency.fqn);
438
+ if (!target) throw new Error(`SKILL_DEPENDENCY_MISSING: ${skill.fqn} dependency ${dependency.ref} does not exist`);
439
+ if (target.kind !== "SkillCapsule") throw new Error(`SKILL_DEPENDENCY_KIND_MISMATCH: ${skill.fqn} dependency ${dependency.ref} targets ${target.kind}`);
440
+ if (target.version !== dependency.version) throw new Error(`SKILL_DEPENDENCY_VERSION_MISMATCH: ${skill.fqn} dependency ${dependency.ref} expected ${dependency.version} but found ${target.version}`);
441
+ }
442
+ }
443
+ }
404
444
  async function readOptionalMaterial(module, record, childName) {
405
445
  const child = record.node.subdomains[childName];
406
446
  if (!child) return void 0;
@@ -0,0 +1,267 @@
1
+ const projection = {
2
+ "format": "halfcode.skill-distribution/v1",
3
+ "roots": [
4
+ {
5
+ "fqn": "Halfcode.ResourceDsl.Skill.System",
6
+ "name": "sys-halfcode-resource-dsl",
7
+ "apiVersion": "halfcode.resources/v1",
8
+ "version": "1.0.0"
9
+ }
10
+ ],
11
+ "topology": [
12
+ "Halfcode.ResourceDsl.Skill.System"
13
+ ],
14
+ "capsules": [
15
+ {
16
+ "identity": {
17
+ "fqn": "Halfcode.ResourceDsl.Skill.System",
18
+ "name": "sys-halfcode-resource-dsl",
19
+ "apiVersion": "halfcode.resources/v1",
20
+ "version": "1.0.0"
21
+ },
22
+ "dependencies": [],
23
+ "files": [
24
+ {
25
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
26
+ "skillApiVersion": "halfcode.resources/v1",
27
+ "skillVersion": "1.0.0",
28
+ "capsuleRelativePath": "SKILL.md",
29
+ "targetRelativePath": "sys-halfcode-resource-dsl/SKILL.md",
30
+ "contentDigest": "sha256:88b76c08ba6303bab6aa6c2a6f771658eddb07d972ce3f974305b52708a89f22",
31
+ "contentBase64": "LS0tCm5hbWU6IHN5cy1oYWxmY29kZS1yZXNvdXJjZS1kc2wKZGVzY3JpcHRpb246IEF1dGhvciBhbmQgcmV2aWV3IFhOTCBSZXNvdXJjZVBhY2thZ2VzLCBjYXRhbG9ncywgS2luZERlZmluaXRpb25zLCBWRlMgbWF0ZXJpYWxzLCBwcm9qZWN0aW9ucyBhbmQgU2tpbGxDYXBzdWxlcyB1c2luZyB0aGUgY2Fub25pY2FsIEhhbGZjb2RlIFJlc291cmNlIERTTC4KLS0tCgojIEhhbGZjb2RlIFJlc291cmNlIERTTAoKVXNlIHRoaXMgU2tpbGwgZm9yIHRoZSBnZW5lcmljIFhOTCByZXNvdXJjZSBsYW5ndWFnZSBhbmQgaXRzIGRldGVybWluaXN0aWMgY29tcGlsZXIgY29udHJhY3RzLiBQcm9kdWN0LXNwZWNpZmljIGF1dGhvcmluZyBhbmQgcnVudGltZSBvcGVyYXRpb25zIGJlbG9uZyB0byB0aGVpciBvd25lciBTa2lsbHMuCgojIyBQcm9ncmVzc2l2ZSBsb2FkaW5nCgoxLiBTdGFydCB3aXRoIGByZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9pbmRleC5tZGAuCjIuIEZvciBYTkwgY2hhbm5lbHMgYW5kIHNvdXJjZSBzeW50YXgsIHJlYWQgYHJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2xhbmd1YWdlLm1kYCBhbmQgb25seSB0aGUgbmVlZGVkIGZpbGUgdW5kZXIgYHJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL2AuCjMuIEZvciBSZXNvdXJjZVBhY2thZ2UsIENhdGFsb2cgb3IgS2luZERlZmluaXRpb24gd29yaywgcmVhZCBgcmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZG9jdW1lbnRzLm1kYCBhbmQgYHJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2ZpbGVzLm1kYC4KNC4gRm9yIGxheWVyZWQgcmVnaXN0cmllcywgY29udGVudCBpZGVudGl0aWVzIG9yIHNuYXBzaG90cywgcmVhZCBgcmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvcHJvamVjdGlvbnMubWRgLgo1LiBGb3IgU2tpbGxDYXBzdWxlIGRlcGVuZGVuY3kvZGlzdHJpYnV0aW9uIHdvcmssIHJlYWQgYHJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL3NraWxsLWNhcHN1bGVzLm1kYC4KNi4gUmVhZCBgcmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvbWlncmF0aW9uLm1kYCBvbmx5IGZvciBtaWdyYXRpb24gd29yay4KNy4gVXNlIGByZWZlcmVuY2VzLy5oYWxmY29kZS9wcm92ZW5hbmNlLmpzb25gIHRvIHZlcmlmeSBzb3VyY2UgaWRlbnRpdHksIHZlcnNpb24gYW5kIHBheWxvYWQgZGlnZXN0cy4KCkRvIG5vdCBpbmZlciByZXNvdXJjZSByZWxhdGlvbnNoaXBzIGZyb20gb3JkaW5hcnkgdGV4dC4gVXNlIGV4cGxpY2l0IGNhdGFsb2dzLCB0eXBlZCByZWZlcmVuY2VzIGFuZCBLaW5kLW93bmVkIGNvbnRyYWN0cywgdGhlbiByZWx5IG9uIGRldGVybWluaXN0aWMgdmFsaWRhdGlvbiBhbmQgY29tcGlsYXRpb24uCg=="
32
+ },
33
+ {
34
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
35
+ "skillApiVersion": "halfcode.resources/v1",
36
+ "skillVersion": "1.0.0",
37
+ "capsuleRelativePath": "functions/bundle.js",
38
+ "targetRelativePath": "sys-halfcode-resource-dsl/functions/bundle.js",
39
+ "contentDigest": "sha256:6d0571bb3a1ed5694c312ce6e16f7444a27a75d47ba7803157568a3148d6a3fd",
40
+ "contentBase64": "aW1wb3J0IHsgcnVuV2l0aFJ1bnRpbWUgfSBmcm9tICJoYWxmY29kZS1jb21waWxlci54bmwvYXV0aG9yaW5nLXJ1bnRpbWUiCgpjb25zdCByZWdpc3RyeSA9IHsgIH0KbGV0IGNhbGxhYmxlUnVudGltZQoKLyoqCiAqIEhvc3Qtb25seSBpbml0aWFsaXphdGlvbiBib3VuZGFyeS4gQmluZCBydW50aW1lIGNhcGFiaWxpdGllcyBiZWZvcmUgZXhwb3NpbmcKICogcnVuX2NhbGxhYmxlX3Jlc291cmNlIHRvIEFJLWF1dGhvcmVkIGNvZGU7IHJ1bnRpbWUgaXMgbmV2ZXIgYW4gQUkgYXJndW1lbnQuCiAqLwpleHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZV9jYWxsYWJsZV9ydW50aW1lKHJ1bnRpbWUpIHsKICBpZiAoIXJ1bnRpbWUpIHRocm93IG5ldyBFcnJvcigiQ2FsbGFibGUgcnVudGltZSBpcyByZXF1aXJlZCIpCiAgY2FsbGFibGVSdW50aW1lID0gcnVudGltZQp9CgovKioKICogQUktZmFjaW5nIGNhbGxhYmxlIGVudHJ5LiBDYWxsZXJzIHByb3ZpZGUgb25seSB0aGUgcmVzb3VyY2UgaWRlbnRpdHksIGJ1c2luZXNzCiAqIGlucHV0LCBhbmQgb3B0aW9uYWwgaW52b2NhdGlvbiBjb25maWc7IHRoZSBob3N0LW93bmVkIHJ1bnRpbWUgc3RheXMgaGlkZGVuLgogKi8KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bl9jYWxsYWJsZV9yZXNvdXJjZShmcW4sIGlucHV0LCBjb25maWcpIHsKICBpZiAoIWNhbGxhYmxlUnVudGltZSkgdGhyb3cgbmV3IEVycm9yKCJDYWxsYWJsZSBydW50aW1lIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCIpCiAgcmV0dXJuIGludm9rZUNhbGxhYmxlUmVzb3VyY2UoY2FsbGFibGVSdW50aW1lLCBmcW4sIGlucHV0LCBjb25maWcpCn0KCi8qKgogKiBGcmFtZXdvcmstaW50ZXJuYWwgYnJpZGdlLiBJdCBhY3RpdmF0ZXMgdGhlIGhvc3QgcnVudGltZSBjb250ZXh0IGFuZCBmb3J3YXJkcwogKiBpbnB1dC9jb25maWcgdW5jaGFuZ2VkIHRvIHRoZSBkZXRlcm1pbmlzdGljIHJlc291cmNlIGhhbmRsZXIuCiAqLwphc3luYyBmdW5jdGlvbiBpbnZva2VDYWxsYWJsZVJlc291cmNlKHJ1bnRpbWUsIGZxbiwgaW5wdXQsIGNvbmZpZykgewogIGNvbnN0IGVudHJ5ID0gcmVnaXN0cnlbZnFuXQogIGlmICghZW50cnkpIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjYWxsYWJsZSByZXNvdXJjZTogJHtmcW59YCkKICByZXR1cm4gcnVuV2l0aFJ1bnRpbWUocnVudGltZSwgKCkgPT4gZW50cnkuaGFuZGxlcihpbnB1dCwgY29uZmlnKSkKfQoKZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVfY2FsbGFibGVfcmVzb3VyY2UoZnFuKSB7CiAgY29uc3QgZW50cnkgPSByZWdpc3RyeVtmcW5dCiAgaWYgKCFlbnRyeSkgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNhbGxhYmxlIHJlc291cmNlOiAke2Zxbn1gKQogIHJldHVybiB7IGZxbiwga2luZDogZW50cnkua2luZCB9Cn0K"
41
+ },
42
+ {
43
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
44
+ "skillApiVersion": "halfcode.resources/v1",
45
+ "skillVersion": "1.0.0",
46
+ "capsuleRelativePath": "functions/registry.json",
47
+ "targetRelativePath": "sys-halfcode-resource-dsl/functions/registry.json",
48
+ "contentDigest": "sha256:97154a04a02fa711c555533f3af967c3bc5dbe15f4afd0013e7fcf177112a5e4",
49
+ "contentBase64": "ewogICJjYWxsYWJsZVJlc291cmNlcyI6IFtdCn0K"
50
+ },
51
+ {
52
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
53
+ "skillApiVersion": "halfcode.resources/v1",
54
+ "skillVersion": "1.0.0",
55
+ "capsuleRelativePath": "objects/bundle.js",
56
+ "targetRelativePath": "sys-halfcode-resource-dsl/objects/bundle.js",
57
+ "contentDigest": "sha256:5450598448d670387fb9062e02439f6ae223a615e805f7807947aa7a5fb56789",
58
+ "contentBase64": "aW1wb3J0IHsgYXNzZXJ0T2JqZWN0T3BlcmF0aW9uQ2FsbCB9IGZyb20gImhhbGZjb2RlLWNvbXBpbGVyLnhubCIKaW1wb3J0IHsgcnVuV2l0aFJ1bnRpbWUgfSBmcm9tICJoYWxmY29kZS1jb21waWxlci54bmwvYXV0aG9yaW5nLXJ1bnRpbWUiCmltcG9ydCBjYXRhbG9nIGZyb20gIi4vcmVnaXN0cnkuanNvbiIgd2l0aCB7IHR5cGU6ICJqc29uIiB9Cgpjb25zdCBoYW5kbGVycyA9IHsgIH0KY29uc3QgZGVmaW5pdGlvbnMgPSBPYmplY3QuZnJvbUVudHJpZXMoY2F0YWxvZy5vcGVyYXRpb25zLm1hcCgoZGVmaW5pdGlvbikgPT4gW2RlZmluaXRpb24ucmVmLCBkZWZpbml0aW9uXSkpCmxldCBvYmplY3RPcGVyYXRpb25SdW50aW1lCgovKiogSG9zdC1vbmx5IHJ1bnRpbWUgaW5pdGlhbGl6YXRpb247IHJ1bnRpbWUgaXMgbmV2ZXIgYW4gQUkgYXJndW1lbnQuICovCmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplX29iamVjdF9vcGVyYXRpb25fcnVudGltZShydW50aW1lKSB7CiAgaWYgKCFydW50aW1lKSB0aHJvdyBuZXcgRXJyb3IoIk9iamVjdCBvcGVyYXRpb24gcnVudGltZSBpcyByZXF1aXJlZCIpCiAgb2JqZWN0T3BlcmF0aW9uUnVudGltZSA9IHJ1bnRpbWUKfQoKLyoqIEFJLWZhY2luZyBvYmplY3QgZW50cnkgd2l0aCBvcnRob2dvbmFsIHRhcmdldHMsIGludm9jYXRpb24gYW5kIGNvbmZpZy4gKi8KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bl9vYmplY3Rfb3BlcmF0aW9uKGNhbGwpIHsKICBpZiAoIW9iamVjdE9wZXJhdGlvblJ1bnRpbWUpIHRocm93IG5ldyBFcnJvcigiT2JqZWN0IG9wZXJhdGlvbiBydW50aW1lIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCIpCiAgY29uc3Qgb3BlcmF0aW9uUmVmID0gY2FsbD8uaW52b2NhdGlvbj8ub3BlcmF0aW9uUmVmCiAgY29uc3QgZGVmaW5pdGlvbiA9IGRlZmluaXRpb25zW29wZXJhdGlvblJlZl0KICBpZiAoIWRlZmluaXRpb24pIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBvYmplY3Qgb3BlcmF0aW9uOiAke29wZXJhdGlvblJlZn1gKQogIGNvbnN0IGhhbmRsZXIgPSBoYW5kbGVyc1tvcGVyYXRpb25SZWZdCiAgaWYgKCFoYW5kbGVyKSB0aHJvdyBuZXcgRXJyb3IoYE9iamVjdCBvcGVyYXRpb24gaGFuZGxlciBpcyB1bmF2YWlsYWJsZTogJHtvcGVyYXRpb25SZWZ9YCkKICBhc3NlcnRPYmplY3RPcGVyYXRpb25DYWxsKGNhbGwsIGRlZmluaXRpb24pCiAgcmV0dXJuIHJ1bldpdGhSdW50aW1lKG9iamVjdE9wZXJhdGlvblJ1bnRpbWUsICgpID0+CiAgICBoYW5kbGVyKG9iamVjdE9wZXJhdGlvblJ1bnRpbWUsIGNhbGwudGFyZ2V0cywgY2FsbC5pbnZvY2F0aW9uLCBjYWxsLmNvbmZpZykKICApCn0KCmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlX29iamVjdF9vcGVyYXRpb24ob3BlcmF0aW9uUmVmKSB7CiAgY29uc3QgZGVmaW5pdGlvbiA9IGRlZmluaXRpb25zW29wZXJhdGlvblJlZl0KICBpZiAoIWRlZmluaXRpb24pIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBvYmplY3Qgb3BlcmF0aW9uOiAke29wZXJhdGlvblJlZn1gKQogIHJldHVybiBkZWZpbml0aW9uCn0K"
59
+ },
60
+ {
61
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
62
+ "skillApiVersion": "halfcode.resources/v1",
63
+ "skillVersion": "1.0.0",
64
+ "capsuleRelativePath": "objects/registry.json",
65
+ "targetRelativePath": "sys-halfcode-resource-dsl/objects/registry.json",
66
+ "contentDigest": "sha256:c953aa29ac964ca57dd86eefd2ff0938fd1467c7d3c0a46dfabf16128f68d809",
67
+ "contentBase64": "ewogICJ0YXJnZXRLaW5kcyI6IFtdLAogICJvcGVyYXRpb25zIjogW10KfQo="
68
+ },
69
+ {
70
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
71
+ "skillApiVersion": "halfcode.resources/v1",
72
+ "skillVersion": "1.0.0",
73
+ "capsuleRelativePath": "references/.halfcode/provenance.json",
74
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/.halfcode/provenance.json",
75
+ "contentDigest": "sha256:6d4441289b54bc78c29991819dfad6321a54d138f6991062da0449941e82773f",
76
+ "contentBase64": "ewogICJmb3JtYXQiOiAiaGFsZmNvZGUuc2tpbGwtcHJvdmVuYW5jZS92MSIsCiAgImdlbmVyYXRlZEJ5IjogImhhbGZjb2RlLnNraWxsLWRpc3RyaWJ1dGlvbi92MSIsCiAgInNvdXJjZSI6IHsKICAgICJmcW4iOiAiSGFsZmNvZGUuUmVzb3VyY2VEc2wuU2tpbGwuU3lzdGVtIiwKICAgICJhcGlWZXJzaW9uIjogImhhbGZjb2RlLnJlc291cmNlcy92MSIsCiAgICAidmVyc2lvbiI6ICIxLjAuMCIKICB9LAogICJwYXlsb2FkRmlsZXMiOiBbCiAgICB7CiAgICAgICJwYXRoIjogIlNLSUxMLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2Ojg4Yjc2YzA4YmE2MzAzYmFiNmFhNmMyYTZmNzcxNjU4ZWRkYjA3ZDk3MmNlM2Y5NzQzMDViNTI3MDhhODlmMjIiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvYnVuZGxlLmpzIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjZkMDU3MWJiM2ExZWQ1Njk0YzMxMmNlNmUxNmY3NDQ0YTI3YTc1ZDQ3YmE3ODAzMTU3NTY4YTMxNDhkNmEzZmQiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJmdW5jdGlvbnMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NzE1NGEwNGEwMmZhNzExYzU1NTUzM2YzYWY5NjdjM2JjNWRiZTE1ZjRhZmQwMDEzZTdmY2YxNzcxMTJhNWU0IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAib2JqZWN0cy9idW5kbGUuanMiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6NTQ1MDU5ODQ0OGQ2NzAzODdmYjkwNjJlMDI0MzlmNmFlMjIzYTYxNWU4MDVmNzgwNzk0N2FhN2E1ZmI1Njc4OSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogIm9iamVjdHMvcmVnaXN0cnkuanNvbiIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjOTUzYWEyOWFjOTY0Y2E1N2RkODZlZWZkMmZmMDkzOGZkMTQ2N2M3ZDNjMGE0NmRmYWJmMTYxMjhmNjhkODA5IgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZG9jdW1lbnRzLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjUzN2JmMWRkNmQyYjhjZWFiOGU1ZTI1Yzg5NTcyZWFjMzNjMjA2MjU4Y2VjZDM4ZGNkNzhjMDIwOTU2MjI0YTgiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9mdW5jdGlvbi54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2FjOTZjNDdiMThmMGMyZWFiNTFiODU2MTdhZTFiMTM1OGU1ZWRiNTdjYWNkOTQzYmRiOTE0OTVmZmZjZDk5YyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjFhYWRiOTAxODllZGY2MTEyNjZlYTI3MTNlYWU2MGNiOGYxOTMyYjE4YmVlMGU2MThjYWZhZmY5OWViMjUyOGYiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjRhYjA3NTM5OGE1NDAyZGUzNDQ3OWY2MmY2ODhjNmJhMzU0NmU0MWQ2MjJhYjQzYjMzNWFjZTNiNGFjOThmNTgiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9yZXNvdXJjZS1tYXBwaW5ncy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6MTg2MGVmOTY5YWExY2VkZjg2YzlmZTVkMGVmNDkzY2QwZGExZjI4NTk5MTUyOGVmYmNiYzUxZWUxMTc5ZTk0NCIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3Jlc291cmNlLXBhY2thZ2UueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjYxYmZlYzRjZmQ4OTcwNjQ5Mzg5NzVlMzFlNmZhYThjOGI5MWRkYzEyNzVhZDFhODFkZDg3M2Q5YjU2MTI1YjUiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLWF1dGhvcmluZy54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6OTZlMWQxYzRlMjRkNzQyODUzYTYwMTU5NDQ3NDhlMzc2NTNmMDE3NTEyNTViOWNmZjliMmJhNTQzYzQ3YjlhYyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtZGV2b3BzLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5YTdmMmY4MzAxYTBjOGNhYWI4NmQzNjRkNWY4NGI5NzgwN2NhYTMxYzQzZWUxOTcxNjk2MmM4NzcwY2MzNjVjIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1raW5kLWRlZmluaXRpb24ueG5sIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjI2ZTUzNTgxNjcwOWY4ZThjMmJkZTczOTJkMTRhYTY5NWU0ODM5ZTNhMmZlZjBmZWEwNDQ1MTA3ZThmNWEwZWEiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9leGFtcGxlcy9za2lsbC1jYXBzdWxlLXJlc291cmNlLWRzbC54bmwiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6YzM2Y2IyZTlhY2Y5N2MyOGI1NWYxZWZkM2JiY2E4NDZiNmZiMmQ3M2ZlNGUxNTM2NzhkZmJmZDcwNTM4MmYxNSIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2V4YW1wbGVzL3NraWxsLWNhcHN1bGUtcnVuLnhubCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjphM2RkMTU2MzA3NTNjOTg0Y2QzMjM1YzZmMzQyODY3NjFhOGI3OGE4YzRiNzgxYzQwNzE5ZjNkYjY5ZTgyYjQxIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvZmlsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6OWVmNzRhZjBhMThmMmMwZmEzMzYzYTVmMGFjNDBhYzdjNzRmMWIwYzVhZmE2MWUyZjJlYzEzMDQ5OTk4MzY2YyIKICAgIH0sCiAgICB7CiAgICAgICJwYXRoIjogInJlZmVyZW5jZXMvcmVzb3VyY2UtZHNsL2luZGV4Lm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OjE3YTg3YWFmNzczM2M2NDU3OWQ4MDEzNGE2NzAyOTlmNTRiYTQ0NjZlZGY5NDYwZWE3ZTJiNGZhMDkxNDIzYjMiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9sYW5ndWFnZS5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1Njo5NWNlOTQ4NjAxZTM3ZWZmMGI4MDBhNmE2MDUxZTMyOTYxMmQxZjliY2U3NjczMGU1NzUxM2IwYzQ1NDc1MWMwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvbWlncmF0aW9uLm1kIiwKICAgICAgImNvbnRlbnREaWdlc3QiOiAic2hhMjU2OmVhOTc4ZmEyZmU1ZjU3ZDM5ZTBkYmRiOWUwNWIzNTc5OTM0NTFmM2YyYWI4NDQ3Y2I1YjZmYzE3Mzg5Mzg3Y2EiCiAgICB9LAogICAgewogICAgICAicGF0aCI6ICJyZWZlcmVuY2VzL3Jlc291cmNlLWRzbC9wcm9qZWN0aW9ucy5tZCIsCiAgICAgICJjb250ZW50RGlnZXN0IjogInNoYTI1NjpjYjA5YzQ0YTMxNWZkZDc3ZjdlZWI0ZDFlZWU5NjU1OTRmNWYwMmZkYTVhNmRlYTk3ZWE4MGZkOTViNjIzOWQwIgogICAgfSwKICAgIHsKICAgICAgInBhdGgiOiAicmVmZXJlbmNlcy9yZXNvdXJjZS1kc2wvc2tpbGwtY2Fwc3VsZXMubWQiLAogICAgICAiY29udGVudERpZ2VzdCI6ICJzaGEyNTY6Y2VhYTA3NzYxZWM1NDA1NzE2ZGMxYjJmZWExZTVmOTU1M2M1OWM5NDA0ZGEwODYwYjIzNjk4NjEwYzFjNDE0NCIKICAgIH0KICBdCn0K"
77
+ },
78
+ {
79
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
80
+ "skillApiVersion": "halfcode.resources/v1",
81
+ "skillVersion": "1.0.0",
82
+ "capsuleRelativePath": "references/resource-dsl/documents.md",
83
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/documents.md",
84
+ "contentDigest": "sha256:537bf1dd6d2b8ceab8e5e25c89572eac33c206258cecd38dcd78c020956224a8",
85
+ "contentBase64": "IyBkb2N1bWVudHMKCjxmcW4+SGFsZmNvZGUuUmVzb3VyY2VEc2wuV2lraS5kb2N1bWVudHM8L2Zxbj4KPGtpbmQ+V2lraVBhZ2U8L2tpbmQ+CjxkZXNjcmlwdGlvbj5SZXNvdXJjZSBkb2N1bWVudHMsIHBhY2thZ2UgY2F0YWxvZ3MgYW5kIEtpbmREZWZpbml0aW9uIGNvbnRyYWN0cy48L2Rlc2NyaXB0aW9uPgoKIyBSZXNvdXJjZSBEb2N1bWVudCBGYW1pbGllcwoKIyMgUmVzb3VyY2VQYWNrYWdlIOS4jiBDYXRhbG9ncwoK5LiA5LiqIHBhY2thZ2Ug5pyJ5LiU5Y+q5pyJ5LiA5LiqIGBSZXNvdXJjZVBhY2thZ2VgIGF1dGhvcml0eSByb29044CC5a6D5oul5pyJ5ZSv5LiAIGBDYXRhbG9nc2Ag5a2Q5Z+f77yb5q+P5LiqIGBDYXRhbG9nYCDlo7DmmI7kuIDnp43otYTmupDnmoTpgLvovpHmoLnkuI7nm67lvZXlhaXlj6PvvJoKCmBgYHhubAo8UmVzb3VyY2VQYWNrYWdlICNkZW1vLnJlc291cmNlX3dvcmtmbG93LmF1dGhvcmluZyBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICBkZXNjcmlwdGlvbiA9ICJEZW1vIGF1dGhvcmluZyByZXNvdXJjZSBwYWNrYWdlIgp9ICgKICA8Q2F0YWxvZ3MgWwogICAgPENhdGFsb2cgI2tpbmRfZGVmaW5pdGlvbnMgewogICAgICBraW5kID0gIktpbmREZWZpbml0aW9uIgogICAgICBzaGFwZSA9ICJkaXJlY3RvcnkiCiAgICAgIHJvb3QgPSAidmZzOi8vLi9LaW5kRGVmaW5pdGlvbnMvIgogICAgICBlbnRyeSA9ICJtYW5pZmVzdC54bmwiCiAgICB9PgogICAgPENhdGFsb2cgI2Z1bmN0aW9ucyB7CiAgICAgIGtpbmQgPSAiRnVuY3Rpb24iCiAgICAgIHNoYXBlID0gImRpcmVjdG9yeSIKICAgICAgcm9vdCA9ICJ2ZnM6Ly8uL0Z1bmN0aW9ucy8iCiAgICAgIGVudHJ5ID0gIm1hbmlmZXN0LnhubCIKICAgIH0+CiAgXT4KKT4KYGBgCgpjYXRhbG9nIOWPquaPj+i/sOe7hOe7h++8jOS4jeWkjeWItuavj+S4qiBkZXNjcmlwdG9yIOeahOWGheWuueOAgmBzaGFwZWAg5Y+WIGBzaW5nbGUtZmlsZXxkaXJlY3Rvcnl8bWFuaWZlc3Rg77yb5ZCO5Lik6ICF5b+F6aG75aOw5piO55uu5b2V5YWl5Y+jIGBlbnRyeWDjgIJgc2luZ2xlLWZpbGVgIOe8uuecgeaJq+aPjyBgcm9vdGAg5LiL5YWo6YOoIGAueG5sYCDmlofku7bvvIzkuZ/lj6/ku6XnlKjlj6/pgIkgYGVudHJ5ID0gIjxuYW1lPi54bmwiYCDnsr7noa7pgInmi6nlkIznm67lvZXkuK3nmoTkuIDkuKogYXV0aG9yaXR5IOaWh+S7tu+8m+ivpSBlbnRyeSDlv4XpobvmmK/ml6Dot6/lvoTniYfmrrXnmoQgWE5MIOaWh+S7tuWQjeOAgmxvYWRlciDnlKjmoLkgdGFnL2AjaWRgIOehruiupCBraW5kL2lkZW50aXR544CCCgojIyBLaW5kRGVmaW5pdGlvbgoKYEtpbmREZWZpbml0aW9uYCDlo7DmmI4gc291cmNlIHNoYXBlIOS4jiBkZXNjcmlwdG9yIGNvbnRyYWN077yaCgpgYGB4bmwKPEtpbmREZWZpbml0aW9uICNoYWxmY29kZS5yZXNvdXJjZV9raW5kLkZ1bmN0aW9uIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBsaWZlY3ljbGUgPSAiU3RhYmxlIgogIHNvdXJjZVNoYXBlcyA9IFsic2luZ2xlLWZpbGUiICJkaXJlY3RvcnkiXQogIGN1cnJlbnRBcGlWZXJzaW9uID0gImhhbGZjb2RlLnJlc291cmNlcy92MSIKICBzdXBwb3J0ZWRBcGlWZXJzaW9ucyA9IFsiaGFsZmNvZGUucmVzb3VyY2VzL3YxIl0KfSAoCiAgPERlc2NyaXB0b3JDb250cmFjdCAoCiAgICA8SWRlbnRpdHkgeyByZXF1aXJlZCA9IHRydWUgZm9ybSA9ICJmcW4iIH0+CiAgICA8Q29kZUJpbmRpbmcgeyBwcm9wZXJ0eSA9ICJzcmMiIHNjaGVtZSA9ICJ2ZnMiIGV4cG9ydEZyYWdtZW50UmVxdWlyZWQgPSB0cnVlIH0+CiAgICA8SW5zdHJ1Y3Rpb24geyByZXF1aXJlZCA9IGZhbHNlIHNvdXJjZSA9ICJpbmxpbmUtb3ItdmZzIiB9PgogICk+Cik+CmBgYAoKYGN1cnJlbnRBcGlWZXJzaW9uYCDmmK/mlrDotYTmupDlkozov4Hnp7vnm67moIfniYjmnKzvvIxgc3VwcG9ydGVkQXBpVmVyc2lvbnNgIOaYryBsb2FkZXIg5Y+v55u05o6l6K+75Y+W55qE5YW85a656ZuG5ZCI77yM5LiU5b+F6aG75YyF5ZCrIGN1cnJlbnTjgILmnKrnn6XniYjmnKzlv4XpobvlhYjnu4/ov4fosIPnlKjmlrnlnKjku6PnoIHkvqfms6jlhoznmoTnoa7lrprmgKcgbWlncmF0aW9u77yM5YaN5Lqk57uZIGxvYWRlcu+8m+WPr+aJp+ihjOi9rOaNouS4jeWGmeWFpSBYTkzjgIIKCmBkb2N1bWVudENhcmRpbmFsaXR5YCDnvLrnnIHkuLogYCJvbmUiYOOAguWPquaciSBgc291cmNlU2hhcGVzID0gWyJzaW5nbGUtZmlsZSJdYCDnmoQgS2luZCDlj6/ku6Xlo7DmmI4gYGRvY3VtZW50Q2FyZGluYWxpdHkgPSAibWFueSJg77yM6KGo56S65LiA5LiqIGF1dGhvcml0eSDmlofmoaPlhYHorrjljIXlkKvlpJrkuKrlubbliJfnmoTlkIwgS2luZCDmoLnvvJvlroPkuI3mmK/lr7nmiYDmnIkgWE5MIOaWh+S7tuaUvuWuveaguee6puadn+OAggoKS2luZCBjb250cmFjdCDlj6/ku6XmjInoh6rouqvor63kuYnnuqbmnZ8gbGlmZWN5Y2xl44CBZGVzY3JpcHRpb27jgIFpbnN0cnVjdGlvbuOAgWNvZGUgYmluZGluZyDkuI4gaW5jbHVkZXPvvJvpmaQgYCNpZGAg5ZKMIGBhcGlWZXJzaW9uYCDlpJbvvIzov5nkupvlrZfmrrXpg73kuI3mmK/pgJrnlKggbG9hZGVyIOW8uuWKoOe7meaJgOaciSBLaW5kIOeahOWFseWQjOimgeaxguOAggoK5Yqg6L295oiQ5Yqf5ZCO77yMY29uc3VtZXIg5LuOIGBSZXNvdXJjZVRyZWUucmVnaXN0cnkua2luZERlZmluaXRpb25zYCDmjIkgYHJlc291cmNlS2luZGAg5Y+W5b6X6KeE6IyD5YyWIGNvbnRyYWN044CC6K+lIHByb2plY3Rpb24g5YyF5ZCrIHZlcnNpb27jgIFzb3VyY2Ugc2hhcGXjgIFjYXJkaW5hbGl0eeOAgXJlcXVpcmVkIGZpbGVzIOS7peWPiiBLaW5kRGVmaW5pdGlvbiDoh6rouqvnmoQgYHJlc291cmNlSWRgL2Bkb2N1bWVudFVyaWAgcHJvdmVuYW5jZe+8m0tpbmREZWZpbml0aW9uIOS4jea3t+WFpeS4muWKoei1hOa6kOeahCBgcmVnaXN0cnkuYnlLaW5kYOOAggoKIyMgUmVzb3VyY2UgZGVzY3JpcHRvcgoKZGVzY3JpcHRvciDmoLkgdGFnIOebtOaOpeS9v+eUqCBraW5k77yMYCNpZGAg5piv6LWE5rqQIEZRTuOAguWUr+S4gOamguW/tei/m+WFpSBgKClg77yb6YeN5aSN5oiQ5ZGY6L+b5YWlIGBbXWDvvJoKCmBgYHhubAo8RnVuY3Rpb24gI2RlbW8ucmVzb3VyY2Vfd29ya2Zsb3cucHJlcGFyZV9kYXRhIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBsaWZlY3ljbGUgPSAiQWN0aXZlIgogIHRpdGxlID0gIlByZXBhcmUgd29ya2Zsb3cgZGF0YSIKfSAoCiAgPEluc3RydWN0aW9uID9pbnN0cnVjdGlvbj4KICDmjqXmlLbovpPlhaXlubbkuqfnlJ/kuIvmuLggcHJvY2VkdXJlIOaJgOmcgOeahOinhOiMg+aVsOaNruOAggogIDwvP2luc3RydWN0aW9uPgogIDxDb2RlQmluZGluZyB7CiAgICBzcmMgPSAidmZzOi8vQC9hcHBzL2RlbW8tcmVzb3VyY2Utd29ya2Zsb3ctYXV0aG9yaW5nL3NyYy9wcm9jZWR1cmVzLnRzI3ByZXBhcmVQcm9jZWR1cmUiCiAgfT4KKT4KYGBgCgrpgJrnlKjotYTmupDlpJblo7Plj6rop4TlrpogaWRlbnRpdHnjgIFtZXRhZGF0YSBjaGFubmVs44CBbWVtYmVycy9zdWJkb21haW5zIOWSjCBwcm92ZW5hbmNl44CC5ZCEIEtpbmQg55qE56iz5a6a6aKG5Z+f5a2X5q615Y+K5YW2IHJlcXVpcmVkbmVzcyDnlLHlr7nlupQgYEtpbmREZWZpbml0aW9uYCDmiJYgY29uc3VtZXIgY29udHJhY3Qg5pS256qE77yb57y65aSx55qE5Y+v6YCJ5a2X5q615LiN5Lya6KKr5aGr5oiQ56m65a2X56ym5Liy44CCCgrlhYHorrggZm9yZXN0IOeahCBLaW5kIOS7jemAkOagueaJp+ihjOWQjOagt+eahCBraW5k44CBaWRlbnRpdHkg5LiOIGBhcGlWZXJzaW9uYCDmoKHpqozjgILkvovlpoIgRGVjaXNpb24gS2luZCDlj6/ku6XmmL7lvI/lo7DmmI7vvJoKCmBgYHhubAo8S2luZERlZmluaXRpb24gI2NvZHVtZW50LnJlc291cmNlX2tpbmQuRGVjaXNpb24gYXBpVmVyc2lvbj0iaGFsZmNvZGUucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgewogIGxpZmVjeWNsZSA9ICJTdGFibGUiCiAgc291cmNlU2hhcGVzID0gWyJzaW5nbGUtZmlsZSJdCiAgY3VycmVudEFwaVZlcnNpb24gPSAiY29kdW1lbnQudGVjaC92MWFscGhhMSIKICBzdXBwb3J0ZWRBcGlWZXJzaW9ucyA9IFsiY29kdW1lbnQudGVjaC92MWFscGhhMSJdCiAgZG9jdW1lbnRDYXJkaW5hbGl0eSA9ICJtYW55Igp9PgpgYGAKCuWvueW6lCBhdXRob3JpdHkg5paH5Lu25Y+v5Lul5pyJ5aSa5Liq5bm25YiXIGA8RGVjaXNpb24gLi4uPmAg5qC544CC5q+P5Liq5qC55b2S5LiA5YyW5Li654us56uLIHJlc291cmNlIHJlY29yZO+8jOW5tuWFseS6q+ivpeaWh+S7tueahCBgZG9jdW1lbnRVcmlgIHByb3ZlbmFuY2XvvJvph43lpI0gYCNpZGDjgIHmt7flkIjmoLkga2luZCDmiJbkuI3lj5fmlK/mjIHnmoTniYjmnKzku43mmK/plJnor6/jgIIKCiMjIFJlc291cmNlTWFwcGluZ3MKCm1hcHBpbmcg5qC55oul5pyJ5aSa5Liq5ZSv5LiAIGNvbGxlY3Rpb24gc3ViZG9tYWlu77ybY29sbGVjdGlvbiDnmoQgYFtdYCDmib/ovb3ph43lpI3mnaHnm67vvJoKCmBgYHhubAo8UmVzb3VyY2VNYXBwaW5ncyAjZGVtby5yZXNvdXJjZV93b3JrZmxvdy5tYXBwaW5ncyBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiAoCiAgPFJlZmVyZW5jZVRhcmdldHMgWwogICAgPFJlZmVyZW5jZVRhcmdldCAjZnVuY3Rpb25fZGVwZW5kZW5jeSB7CiAgICAgIGZyb21LaW5kID0gIkZ1bmN0aW9uIgogICAgICBmaWVsZCA9ICJkZXBlbmRzT24iCiAgICAgIHRhcmdldEtpbmQgPSAiRnVuY3Rpb24iCiAgICB9PgogIF0+CiAgPENhbGxhYmxlQXJ0aWZhY3RzIFsKICAgIDxDYWxsYWJsZUFydGlmYWN0ICNmdW5jdGlvbl9jYWxsYWJsZSB7CiAgICAgIGtpbmQgPSAiRnVuY3Rpb24iCiAgICAgIGJpbmRpbmcgPSAiQ29kZUJpbmRpbmcuc3JjIgogICAgfT4KICBdPgogIDxTb3VyY2VSb290cyBbCiAgICA8U291cmNlUm9vdCAjYXV0aG9yaW5nIHsKICAgICAgdXJpID0gInZmczovL0AvYXBwcy9kZW1vLXJlc291cmNlLXdvcmtmbG93LWF1dGhvcmluZy9yZXNvdXJjZXMvIgogICAgfT4KICBdPgopPgpgYGAKCm1hcHBpbmcga2V5IOaYr+aYvuW8j+WxnuaAp+aIliBgI2lkYO+8jOS4jeW+l+aKiueUqOaIt+aVsOaNruWKqOaAgeaLvOi/myB0YWcg5ZCN44CCCg=="
86
+ },
87
+ {
88
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
89
+ "skillApiVersion": "halfcode.resources/v1",
90
+ "skillVersion": "1.0.0",
91
+ "capsuleRelativePath": "references/resource-dsl/examples/function.xnl",
92
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/function.xnl",
93
+ "contentDigest": "sha256:cac96c47b18f0c2eab51b85617ae1b1358e5edb57cacd943bdb91495fffcd99c",
94
+ "contentBase64": "PEZ1bmN0aW9uICNkZW1vLnJlc291cmNlX3dvcmtmbG93LnByZXBhcmVfZGF0YSBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIkFjdGl2ZSIKICB0aXRsZSA9ICJQcmVwYXJlIHdvcmtmbG93IGRhdGEiCn0gKAogIDxJbnN0cnVjdGlvbiA/aW5zdHJ1Y3Rpb24+CiAg5o6l5pS26L6T5YWl5bm25Lqn55Sf5LiL5ri4IHByb2NlZHVyZSDmiYDpnIDnmoTop4TojIPmlbDmja7jgIIKICA8Lz9pbnN0cnVjdGlvbj4KICA8Q29kZUJpbmRpbmcgewogICAgc3JjID0gInZmczovL0AvYXBwcy9kZW1vLXJlc291cmNlLXdvcmtmbG93LWF1dGhvcmluZy9zcmMvcHJvY2VkdXJlcy50cyNwcmVwYXJlUHJvY2VkdXJlIgogIH0+Cik+Cgo="
95
+ },
96
+ {
97
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
98
+ "skillApiVersion": "halfcode.resources/v1",
99
+ "skillVersion": "1.0.0",
100
+ "capsuleRelativePath": "references/resource-dsl/examples/index.md",
101
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/index.md",
102
+ "contentDigest": "sha256:1aadb90189edf611266ea2713eae60cb8f1932b18bee0e618cafaff99eb2528f",
103
+ "contentBase64": "IyBQYXJzZWFibGUgRXhhbXBsZXMKCj4g55uu5b2V6IGM6LSjIMK3IGhvbGRzOiDnlLHlvZPliY0geG5sLWNvcmUgcGFyc2VyIOacuuaisOmqjOivgeeahOinhOiMgyByZXNvdXJjZSBEU0wg5qC35L6LIMK3IGV4Y2x1ZGVzOiBkZW1vIOS4muWKoei1hOa6kOS4jui/kOihjOaAgSBmaXh0dXJlcyDCtyB0aWVyOiBzdGFibGUgwrcg4qyGZnJvbTogcmVzb3VyY2UgRFNMIOaWh+aho+WunuS+iyDCtyDirId0bzogcGFyc2VyL2xvYWRlciBjb250cmFjdCB0ZXN0cwoKfCDmlofku7YgfCDmlofmoaPml48gfAp8LS0tfC0tLXwKfCBgcmVzb3VyY2UtcGFja2FnZS54bmxgIHwgcGFja2FnZSDkuI4gY2F0YWxvZ3MgfAp8IGBraW5kLWRlZmluaXRpb24ueG5sYCB8IOmAmueUqCBGdW5jdGlvbiBLaW5kRGVmaW5pdGlvbiB8CnwgYHNraWxsLWNhcHN1bGUta2luZC1kZWZpbml0aW9uLnhubGAgfCBTa2lsbENhcHN1bGUgZXhhY3QgZGVwZW5kZW5jeSBjb250cmFjdCB8CnwgYHNraWxsLWNhcHN1bGUtZGV2b3BzLnhubGAgfCDlm5sgU2tpbGwg56S65L6L55qEIGxpZmVjeWNsZSByb290IHwKfCBgc2tpbGwtY2Fwc3VsZS1hdXRob3JpbmcueG5sYCB8IGF1dGhvcmluZyAtPiBzaGFyZWQgcmVzb3VyY2UgRFNMIGRlcGVuZGVuY3kgfAp8IGBza2lsbC1jYXBzdWxlLXJ1bi54bmxgIHwg5pegIHNpYmxpbmcgZGVwZW5kZW5jeSDnmoQgcnVuIFNraWxsIHwKfCBgc2tpbGwtY2Fwc3VsZS1yZXNvdXJjZS1kc2wueG5sYCB8IOiiqyBhdXRob3Jpbmcg5aSN55So55qEIHNoYXJlZCByZXNvdXJjZSBEU0wgU2tpbGwgfAp8IGBmdW5jdGlvbi54bmxgIHwg5bimIGluc3RydWN0aW9uIOS4jiBjb2RlIGJpbmRpbmcg55qEIGRlc2NyaXB0b3IgfAp8IGByZXNvdXJjZS1tYXBwaW5ncy54bmxgIHwgcmVmZXJlbmNlL2NhbGxhYmxlL3NvdXJjZS1yb290IG1hcHBpbmdzIHwKCui/meS6m+aWh+S7tueUseW9k+WJjSBgeG5sLWNvcmVgIHBhcnNlciDlgZogcGFyc2Uvc3RyaW5naWZ5L3BhcnNlIOmqjOivgeOAguS4i+a4uCByZXNvdXJjZS1jb3JlIHRyYWNrIOS8muaKiuebuOWQjOajgOafpeWPmOaIkOaMgee7rea1i+ivleOAggo="
104
+ },
105
+ {
106
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
107
+ "skillApiVersion": "halfcode.resources/v1",
108
+ "skillVersion": "1.0.0",
109
+ "capsuleRelativePath": "references/resource-dsl/examples/kind-definition.xnl",
110
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/kind-definition.xnl",
111
+ "contentDigest": "sha256:4ab075398a5402de34479f62f688c6ba3546e41d622ab43b335ace3b4ac98f58",
112
+ "contentBase64": "PEtpbmREZWZpbml0aW9uICNoYWxmY29kZS5yZXNvdXJjZV9raW5kLkZ1bmN0aW9uIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBsaWZlY3ljbGUgPSAiU3RhYmxlIgogIHNvdXJjZVNoYXBlcyA9IFsic2luZ2xlLWZpbGUiICJkaXJlY3RvcnkiXQogIGN1cnJlbnRBcGlWZXJzaW9uID0gImhhbGZjb2RlLnJlc291cmNlcy92MSIKICBzdXBwb3J0ZWRBcGlWZXJzaW9ucyA9IFsiaGFsZmNvZGUucmVzb3VyY2VzL3YxIl0KfSAoCiAgPERlc2NyaXB0b3JDb250cmFjdCAoCiAgICA8SWRlbnRpdHkgeyByZXF1aXJlZCA9IHRydWUgZm9ybSA9ICJmcW4iIH0+CiAgICA8Q29kZUJpbmRpbmcgeyBwcm9wZXJ0eSA9ICJzcmMiIHNjaGVtZSA9ICJ2ZnMiIGV4cG9ydEZyYWdtZW50UmVxdWlyZWQgPSB0cnVlIH0+CiAgICA8SW5zdHJ1Y3Rpb24geyByZXF1aXJlZCA9IGZhbHNlIHNvdXJjZSA9ICJpbmxpbmUtb3ItdmZzIiB9PgogICk+Cik+Cg=="
113
+ },
114
+ {
115
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
116
+ "skillApiVersion": "halfcode.resources/v1",
117
+ "skillVersion": "1.0.0",
118
+ "capsuleRelativePath": "references/resource-dsl/examples/resource-mappings.xnl",
119
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/resource-mappings.xnl",
120
+ "contentDigest": "sha256:1860ef969aa1cedf86c9fe5d0ef493cd0da1f285991528efbcbc51ee1179e944",
121
+ "contentBase64": "PFJlc291cmNlTWFwcGluZ3MgI2RlbW8ucmVzb3VyY2Vfd29ya2Zsb3cubWFwcGluZ3MgYXBpVmVyc2lvbj0iaGFsZmNvZGUucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgKAogIDxSZWZlcmVuY2VUYXJnZXRzIFsKICAgIDxSZWZlcmVuY2VUYXJnZXQgI2Z1bmN0aW9uX2RlcGVuZGVuY3kgewogICAgICBmcm9tS2luZCA9ICJGdW5jdGlvbiIKICAgICAgZmllbGQgPSAiZGVwZW5kc09uIgogICAgICB0YXJnZXRLaW5kID0gIkZ1bmN0aW9uIgogICAgfT4KICBdPgogIDxDYWxsYWJsZUFydGlmYWN0cyBbCiAgICA8Q2FsbGFibGVBcnRpZmFjdCAjZnVuY3Rpb25fY2FsbGFibGUgewogICAgICBraW5kID0gIkZ1bmN0aW9uIgogICAgICBiaW5kaW5nID0gIkNvZGVCaW5kaW5nLnNyYyIKICAgIH0+CiAgXT4KICA8U291cmNlUm9vdHMgWwogICAgPFNvdXJjZVJvb3QgI2F1dGhvcmluZyB7CiAgICAgIHVyaSA9ICJ2ZnM6Ly9AL2FwcHMvZGVtby1yZXNvdXJjZS13b3JrZmxvdy1hdXRob3JpbmcvcmVzb3VyY2VzLyIKICAgIH0+CiAgXT4KKT4KCg=="
122
+ },
123
+ {
124
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
125
+ "skillApiVersion": "halfcode.resources/v1",
126
+ "skillVersion": "1.0.0",
127
+ "capsuleRelativePath": "references/resource-dsl/examples/resource-package.xnl",
128
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/resource-package.xnl",
129
+ "contentDigest": "sha256:61bfec4cfd897064938975e31e6faa8c8b91ddc1275ad1a81dd873d9b56125b5",
130
+ "contentBase64": "PFJlc291cmNlUGFja2FnZSAjZGVtby5yZXNvdXJjZV93b3JrZmxvdy5hdXRob3JpbmcgYXBpVmVyc2lvbj0iaGFsZmNvZGUucmVzb3VyY2VzL3YxIiB2ZXJzaW9uPSIxLjAuMCIgewogIGxpZmVjeWNsZSA9ICJBY3RpdmUiCiAgZGVzY3JpcHRpb24gPSAiRGVtbyBhdXRob3JpbmcgcmVzb3VyY2UgcGFja2FnZSIKfSAoCiAgPENhdGFsb2dzIFsKICAgIDxDYXRhbG9nICNraW5kX2RlZmluaXRpb25zIHsKICAgICAga2luZCA9ICJLaW5kRGVmaW5pdGlvbiIKICAgICAgc2hhcGUgPSAiZGlyZWN0b3J5IgogICAgICByb290ID0gInZmczovLy4vS2luZERlZmluaXRpb25zLyIKICAgICAgZW50cnkgPSAibWFuaWZlc3QueG5sIgogICAgfT4KICAgIDxDYXRhbG9nICNmdW5jdGlvbnMgewogICAgICBraW5kID0gIkZ1bmN0aW9uIgogICAgICBzaGFwZSA9ICJkaXJlY3RvcnkiCiAgICAgIHJvb3QgPSAidmZzOi8vLi9GdW5jdGlvbnMvIgogICAgICBlbnRyeSA9ICJtYW5pZmVzdC54bmwiCiAgICB9PgogIF0+Cik+Cg=="
131
+ },
132
+ {
133
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
134
+ "skillApiVersion": "halfcode.resources/v1",
135
+ "skillVersion": "1.0.0",
136
+ "capsuleRelativePath": "references/resource-dsl/examples/skill-capsule-authoring.xnl",
137
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/skill-capsule-authoring.xnl",
138
+ "contentDigest": "sha256:96e1d1c4e24d742853a6015944748e37653f01751255b9cff9b2ba543c47b9ac",
139
+ "contentBase64": "PFNraWxsQ2Fwc3VsZSAjZXhhbXBsZS5yZXNvdXJjZV9saWZlY3ljbGUuc2tpbGwuYXV0aG9yaW5nIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBuYW1lID0gImV4YW1wbGUtcmVzb3VyY2UtbGlmZWN5Y2xlLWF1dGhvcmluZyIKICBsaWZlY3ljbGUgPSAiQWN0aXZlIgogIGRlc2NyaXB0aW9uID0gIkdlbmVyaWMgb3BlcmF0aW9ucyBmb3IgcmVzb3VyY2UgY3JlYXRpb24gYW5kIHJldmlzaW9uLiIKfSAoCiAgPFNraWxsTWV0YWRhdGEgeyBocmVmID0gInZmczovLy4vU0tJTEwubWV0YWRhdGEueWFtbCIgZm9ybWF0ID0gInlhbWwiIH0+CiAgPFRlbXBsYXRlIHsgaHJlZiA9ICJ2ZnM6Ly8uL1NLSUxMLnRlbXBsYXRlLmVqcyIgZm9ybWF0ID0gImVqcyIgfT4KICA8U2tpbGxEZXBlbmRlbmNpZXMgWwogICAgPFNraWxsRGVwZW5kZW5jeSB7IHJlZiA9ICJyZXNvdXJjZTovL2V4YW1wbGUucmVzb3VyY2VfbGlmZWN5Y2xlLnNraWxsLnJlc291cmNlX2RzbCIgdmVyc2lvbiA9ICIxLjAuMCIgfT4KICBdPgopPgo="
140
+ },
141
+ {
142
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
143
+ "skillApiVersion": "halfcode.resources/v1",
144
+ "skillVersion": "1.0.0",
145
+ "capsuleRelativePath": "references/resource-dsl/examples/skill-capsule-devops.xnl",
146
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/skill-capsule-devops.xnl",
147
+ "contentDigest": "sha256:9a7f2f8301a0c8caab86d364d5f84b97807caa31c43ee19716962c8770cc365c",
148
+ "contentBase64": "PFNraWxsQ2Fwc3VsZSAjZXhhbXBsZS5yZXNvdXJjZV9saWZlY3ljbGUuc2tpbGwuZGV2b3BzIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBuYW1lID0gImV4YW1wbGUtcmVzb3VyY2UtbGlmZWN5Y2xlLWRldm9wcyIKICBsaWZlY3ljbGUgPSAiQWN0aXZlIgogIGRlc2NyaXB0aW9uID0gIkdlbmVyaWMgbGlmZWN5Y2xlIHJvb3QgdGhhdCByb3V0ZXMgYXV0aG9yaW5nIGFuZCBydW4gb3BlcmF0aW9ucy4iCn0gKAogIDxTa2lsbE1ldGFkYXRhIHsgaHJlZiA9ICJ2ZnM6Ly8uL1NLSUxMLm1ldGFkYXRhLnlhbWwiIGZvcm1hdCA9ICJ5YW1sIiB9PgogIDxUZW1wbGF0ZSB7IGhyZWYgPSAidmZzOi8vLi9TS0lMTC50ZW1wbGF0ZS5lanMiIGZvcm1hdCA9ICJlanMiIH0+CiAgPFNraWxsRGVwZW5kZW5jaWVzIFsKICAgIDxTa2lsbERlcGVuZGVuY3kgeyByZWYgPSAicmVzb3VyY2U6Ly9leGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5za2lsbC5hdXRob3JpbmciIHZlcnNpb24gPSAiMS4wLjAiIH0+CiAgICA8U2tpbGxEZXBlbmRlbmN5IHsgcmVmID0gInJlc291cmNlOi8vZXhhbXBsZS5yZXNvdXJjZV9saWZlY3ljbGUuc2tpbGwucnVuIiB2ZXJzaW9uID0gIjEuMC4wIiB9PgogIF0+Cik+Cg=="
149
+ },
150
+ {
151
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
152
+ "skillApiVersion": "halfcode.resources/v1",
153
+ "skillVersion": "1.0.0",
154
+ "capsuleRelativePath": "references/resource-dsl/examples/skill-capsule-kind-definition.xnl",
155
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/skill-capsule-kind-definition.xnl",
156
+ "contentDigest": "sha256:26e535816709f8e8c2bde7392d14aa695e4839e3a2fef0fea0445107e8f5a0ea",
157
+ "contentBase64": "PEtpbmREZWZpbml0aW9uICNoYWxmY29kZS5yZXNvdXJjZV9raW5kLlNraWxsQ2Fwc3VsZSBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7CiAgbGlmZWN5Y2xlID0gIlN0YWJsZSIKICBkZXNjcmlwdGlvbiA9ICJWZXJzaW9uZWQgU2tpbGwgY2Fwc3VsZSB3aXRoIGV4YWN0IHNpYmxpbmcgZGVwZW5kZW5jaWVzLiIKICByZXNvdXJjZUtpbmQgPSAiU2tpbGxDYXBzdWxlIgogIHNvdXJjZVNoYXBlcyA9IFsiZGlyZWN0b3J5Il0KICBjdXJyZW50QXBpVmVyc2lvbiA9ICJoYWxmY29kZS5yZXNvdXJjZXMvdjEiCiAgc3VwcG9ydGVkQXBpVmVyc2lvbnMgPSBbImhhbGZjb2RlLnJlc291cmNlcy92MSJdCn0gKAogIDxEZXNjcmlwdG9yQ29udHJhY3QgKAogICAgPFJlcXVpcmVkRmlsZXMgWwogICAgICA8RmlsZSB7IG5hbWUgPSAiU0tJTEwubWV0YWRhdGEueWFtbCIgfT4KICAgICAgPEZpbGUgeyBuYW1lID0gIlNLSUxMLnRlbXBsYXRlLmVqcyIgfT4KICAgIF0+CiAgICA8U2tpbGxEZXBlbmRlbmN5Q29udHJhY3QgewogICAgICBjb2xsZWN0aW9uID0gIlNraWxsRGVwZW5kZW5jaWVzIgogICAgICBtZW1iZXIgPSAiU2tpbGxEZXBlbmRlbmN5IgogICAgICByZWZTY2hlbWUgPSAicmVzb3VyY2UiCiAgICAgIHRhcmdldEtpbmQgPSAiU2tpbGxDYXBzdWxlIgogICAgICB2ZXJzaW9uQmluZGluZyA9ICJleGFjdCIKICAgIH0+CiAgICA8SW5jbHVkZUNvbnRyYWN0IHsKICAgICAgY29sbGVjdGlvbiA9ICJJbmNsdWRlcyIKICAgICAgcmVsYXRpb24gPSAiY29tcGlsZWQtcmVzb3VyY2Utc2VsZWN0aW9uIgogICAgICBkZXBlbmRlbmN5U2VtYW50aWNzID0gZmFsc2UKICAgIH0+CiAgKT4KKT4K"
158
+ },
159
+ {
160
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
161
+ "skillApiVersion": "halfcode.resources/v1",
162
+ "skillVersion": "1.0.0",
163
+ "capsuleRelativePath": "references/resource-dsl/examples/skill-capsule-resource-dsl.xnl",
164
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/skill-capsule-resource-dsl.xnl",
165
+ "contentDigest": "sha256:c36cb2e9acf97c28b55f1efd3bbca846b6fb2d73fe4e153678dfbfd705382f15",
166
+ "contentBase64": "PFNraWxsQ2Fwc3VsZSAjZXhhbXBsZS5yZXNvdXJjZV9saWZlY3ljbGUuc2tpbGwucmVzb3VyY2VfZHNsIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBuYW1lID0gImV4YW1wbGUtcmVzb3VyY2UtbGlmZWN5Y2xlLWRzbCIKICBsaWZlY3ljbGUgPSAiU3RhYmxlIgogIGRlc2NyaXB0aW9uID0gIlNoYXJlZCByZXNvdXJjZSBEU0wgcmVmZXJlbmNlIHVzZWQgYnkgYXV0aG9yaW5nIG9wZXJhdGlvbnMuIgp9ICgKICA8U2tpbGxNZXRhZGF0YSB7IGhyZWYgPSAidmZzOi8vLi9TS0lMTC5tZXRhZGF0YS55YW1sIiBmb3JtYXQgPSAieWFtbCIgfT4KICA8VGVtcGxhdGUgeyBocmVmID0gInZmczovLy4vU0tJTEwudGVtcGxhdGUuZWpzIiBmb3JtYXQgPSAiZWpzIiB9PgopPgo="
167
+ },
168
+ {
169
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
170
+ "skillApiVersion": "halfcode.resources/v1",
171
+ "skillVersion": "1.0.0",
172
+ "capsuleRelativePath": "references/resource-dsl/examples/skill-capsule-run.xnl",
173
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/examples/skill-capsule-run.xnl",
174
+ "contentDigest": "sha256:a3dd15630753c984cd3235c6f34286761a8b78a8c4b781c40719f3db69e82b41",
175
+ "contentBase64": "PFNraWxsQ2Fwc3VsZSAjZXhhbXBsZS5yZXNvdXJjZV9saWZlY3ljbGUuc2tpbGwucnVuIGFwaVZlcnNpb249ImhhbGZjb2RlLnJlc291cmNlcy92MSIgdmVyc2lvbj0iMS4wLjAiIHsKICBuYW1lID0gImV4YW1wbGUtcmVzb3VyY2UtbGlmZWN5Y2xlLXJ1biIKICBsaWZlY3ljbGUgPSAiQWN0aXZlIgogIGRlc2NyaXB0aW9uID0gIkdlbmVyaWMgb3BlcmF0aW9ucyBmb3IgcnVubmluZyBhbiBhdXRob3JlZCByZXNvdXJjZS4iCn0gKAogIDxTa2lsbE1ldGFkYXRhIHsgaHJlZiA9ICJ2ZnM6Ly8uL1NLSUxMLm1ldGFkYXRhLnlhbWwiIGZvcm1hdCA9ICJ5YW1sIiB9PgogIDxUZW1wbGF0ZSB7IGhyZWYgPSAidmZzOi8vLi9TS0lMTC50ZW1wbGF0ZS5lanMiIGZvcm1hdCA9ICJlanMiIH0+Cik+Cg=="
176
+ },
177
+ {
178
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
179
+ "skillApiVersion": "halfcode.resources/v1",
180
+ "skillVersion": "1.0.0",
181
+ "capsuleRelativePath": "references/resource-dsl/files.md",
182
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/files.md",
183
+ "contentDigest": "sha256:9ef74af0a18f2c0fa3363a5f0ac40ac7c74f1b0c5afa61e2f2ec13049998366c",
184
+ "contentBase64": "IyBmaWxlcwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLmZpbGVzPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+UmVzb3VyY2Ugc291cmNlIHNoYXBlcywgVkZTIGNvbnRhaW5tZW50IGFuZCBmaWxlIHByb3ZlbmFuY2UuPC9kZXNjcmlwdGlvbj4KCiMgRmlsZXMgQW5kIEJ1bmRsZXMKCiMjIOWGheWuueS4uuecn+a6kAoKa2luZCDkuI4gaWRlbnRpdHkg5p2l6Ieq5paH5Lu25qC5IHRhZyDlkowgYCNpZGDjgILnm67lvZXlkI3jgIHmlofku7blkI3lkowgY2F0YWxvZyDot6/lvoTlj6rmmK/luIPlsYDvvJvmiavmj4/lmajkuI3lvpfpgJrov4flkI7nvIDmiJbnm67lvZXlkI3ooaXlhpnotYTmupDor63kuYnjgIIKCiMjIOS4pOenjeWumuS5ieW9ouaAgQoKLSDljZXmlofku7YgZGVmaW5pdGlvbu+8muS7u+aEj+aPj+i/sOaApyBgLnhubGAg5paH5Lu25ZCN77yM5paH5Lu25YaF5pyJ5LiA5Liq6K+t5LmJ5qC544CCCi0g55uu5b2VIGJ1bmRsZe+8muWFpeWPo+WbuuWumuS4uiBgbWFuaWZlc3QueG5sYO+8jOWfn+aWh+S7tuS9v+eUqOaPj+i/sOaApyBgLnhubGAg5paH5Lu25ZCN44CCCgrnm67lvZUgYnVuZGxlIOekuuS+i++8mgoKYGBgdGV4dApGdW5jdGlvbnMvCiAgUHJlcGFyZURhdGEvCiAgICBtYW5pZmVzdC54bmwgICAgICAgIyA8RnVuY3Rpb24gI2RlbW8ucmVzb3VyY2Vfd29ya2Zsb3cucHJlcGFyZV9kYXRhIC4uLj4KICAgIGluc3RydWN0aW9uLm1kICAgICAjIENvZGVCaW5kaW5nL0luc3RydWN0aW9uIOW8leeUqOeahCBtYXRlcmlhbApgYGAKCmBtYW5pZmVzdC54bmxgIOeahOagueWGs+WumiBidW5kbGUga2luZCDkuI4gaWRlbnRpdHnjgILni6znq4vlrZDln5/lj6/ku6Xku44gbWFuaWZlc3Qg55qEIGAoKWAg5Y6f5qC35aSW5o+Q5Li65ZCM5Z6L5Z+f5paH5Lu277yb5aSW5o+Q5LiN5pS55Y+YIGxvZ2ljYWwgcmVmc+OAggoKIyMg5Y2V5paH5Lu2IGZvcmVzdAoK5Y2V5paH5Lu26buY6K6k5Y+q5pyJ5LiA5Liq6K+t5LmJ5qC544CC5LuF5b2T5a+55bqUIGBLaW5kRGVmaW5pdGlvbmAg5ZCM5pe25aOw5piOIGBzb3VyY2VTaGFwZXMgPSBbInNpbmdsZS1maWxlIl1gIOS4jiBgZG9jdW1lbnRDYXJkaW5hbGl0eSA9ICJtYW55ImAg5pe277yM5ZCM5LiA5LiqIGAueG5sYCBhdXRob3JpdHkg5paH5Lu25omN5Y+v5Lul5YyF5ZCr5aSa5Liq5bm25YiX5qC544CCCgpmb3Jlc3Qg55qE5q+P5Liq5qC55piv54us56uL6LWE5rqQ77yM5b+F6aG75L2/55So5ZCM5LiAIEtpbmTvvIzlhbfmnInni6znq4sgYCNpZGDvvIzlubbpgJrov4for6UgS2luZCDnmoTniYjmnKzlpZHnuqbjgIJgUmVzb3VyY2VQYWNrYWdlYOOAgWNhdGFsb2fjgIFLaW5kRGVmaW5pdGlvbiDkuI7nm67lvZUgYnVuZGxlIOWFpeWPo+Wni+e7iOS/neaMgeWNleagueOAggoKIyMgUHJvdmVuYW5jZSDkuI4gbG9naWNhbCBwYXRoCgpsb2FkZXIg5Li65q+P5LiqIG5vcm1hbGl6ZWQgZGVzY3JpcHRvciDpmYTliqDlj6ror7sgcHJvdmVuYW5jZe+8mgoKLSBgZG9jdW1lbnRVcmlg77ya5Yqg6L29IGF1dGhvcml0eSDmlofmoaPnmoQgY2Fub25pY2FsIFZGUyBVUknvvJsKLSBgbG9naWNhbFBhdGhg77ya55u45a+5IHBhY2thZ2UgY2F0YWxvZyByb290IOeahOmAu+i+kei3r+W+hO+8mwotIGBwYWNrYWdlSWRg77ya5LuOIGBSZXNvdXJjZVBhY2thZ2UgI2lkYCDmtL7nlJ/vvJsKLSBgcmVzb3VyY2VJZGDvvJrmnaXoh6ogZGVzY3JpcHRvciDmoLkgYCNpZGDjgIIKCui/meS6m+Wtl+auteeUsSBsb2FkZXIg5oul5pyJ77yMYXV0aG9yIOS4jeWcqCBkZXNjcmlwdG9yIOS4remHjeWkjemFjee9ruOAgmNvbnN1bWVyIOWPr+S7peiusOW9lSBwcm92ZW5hbmNlIOeUqOS6juiviuaWre+8jOS9huS4jeW+l+S/ruaUueWQjuWPjeWGmSBYTkzjgIIKCiMjIOaJq+aPj+i+ueeVjAoKLSDpu5jorqTnm67lvZXlhaXlj6Pku4XkuLogYG1hbmlmZXN0LnhubGDjgIIKLSBgc2luZ2xlLWZpbGVgIGNhdGFsb2cg57y655yB5omr5o+PIHJvb3Qg5LiL5YWo6YOoIGAueG5sYO+8m+WjsOaYjiBgZW50cnkgPSAibmFtZS54bmwiYCDml7blj6rliqDovb3or6Xmlofku7bvvIzkvr/kuo7lpJrkuKrkuI3lkIwgS2luZCDlhbHnlKjkuIDkuKrniannkIbnm67lvZXjgIIKLSDpnZ7lhaXlj6MgYC54bmxgIOaWh+S7tuWPquiDveS9nOS4uuaYvuW8j+Wfny/nianmlpnooqvlhaXlj6PlvJXnlKjvvIzkuI3og73ooqvph43lpI3ms6jlhozkuLrnrKzkuozotYTmupDjgIIKLSDlpJrmoLnmlofmoaPlv4XpobvnlLEgS2luZERlZmluaXRpb24g5pi+5byP5o6I5p2D77ybbG9hZGVyIOS4jeagueaNruaWh+S7tuWQjeaIluagueaVsOmHj+eMnOa1iyBmb3Jlc3Qg6K+t5LmJ44CCCi0gY2F0YWxvZyByb290IOW/hemhu+aYryBgdmZzOi8vYCBVUknjgIIKLSByZXNvdXJjZS1jb3JlIOi0n+i0oyBVUkkg6Kej5p6Q44CB6L6555WM5qOA5p+l5ZKM6YeN5aSNIGlkZW50aXR5IOiviuaWre+8m2NvbnN1bWVyIOS4jeiHquihjOaJq+aPj+ejgeebmOOAggo="
185
+ },
186
+ {
187
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
188
+ "skillApiVersion": "halfcode.resources/v1",
189
+ "skillVersion": "1.0.0",
190
+ "capsuleRelativePath": "references/resource-dsl/index.md",
191
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/index.md",
192
+ "contentDigest": "sha256:17a87aaf7733c64579d80134a670299f54ba4466edf9460ea7e2b4fa091423b3",
193
+ "contentBase64": "IyBpbmRleAoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLmluZGV4PC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+UmVzb3VyY2UgRFNMIG92ZXJ2aWV3IGFuZCBwcm9ncmVzc2l2ZSBkb2N1bWVudGF0aW9uIGluZGV4LjwvZGVzY3JpcHRpb24+CgojIEhhbGZjb2RlIFhOTCBSZXNvdXJjZSBEU0wKCiMjIOebruW9leiBjOi0owoKLSAqKmhvbGRzKirvvJpoYWxmY29kZSByZXNvdXJjZSBwYWNrYWdl44CBY2F0YWxvZ+OAgUtpbmREZWZpbml0aW9u44CBZGVzY3JpcHRvcuOAgW1hcHBpbmfjgIFVUkkg5LiO5paH5Lu257uE57uH55qEIFhOTCBhdXRob3Jpbmcg55yf5rqQ44CCCi0gKipleGNsdWRlcyoq77yacGFyc2VyL3JlZ2lzdHJ5IOWunueOsO+8iOKGkmBwYWNrYWdlcy9yZXNvdXJjZS1jb3JlL2DvvInjgIFjb25zdW1lciDlvZLkuIDljJbpgLvovpHvvIjihpLlkIQgY29uc3VtZXIgcGFja2FnZe+8ieOAgei/kOihjOaAgeaVsOaNruS4jiBCdXNpbmVzc09iamVjdC9QYWdlT2JqZWN0IOWwmuacqueos+WumueahOS4k+eUqCBBUEnjgIIKLSAqKnRpZXIqKu+8mmBzdGFibGVgCi0gKipwcm9tb3Rlc19mcm9tKirvvJpDb2R1bWVudCB0cmFjayBgZGVmaW5lLXhubC1yZXNvdXJjZS1kc2xgIOeahCBwcm9wb3NhbOOAgWRlc2lnbuOAgWJlaGF2aW9yIOS4jiBtb2RlbGluZyBkZWx0YeOAggotICoqcHJvbW90ZXNfdG8qKu+8mui1hOa6kCBhdXRob3Jpbmcg5paH5Lu244CBbG9hZGVyL3ZhbGlkYXRvcuOAgWNvbnN1bWVyIGNvbnRyYWN0IHRlc3RzIOS4juWFrOW8gOaWh+aho+OAggoK5pys55uu5b2V5a6a5LmJIGhhbGZjb2RlIOi1hOa6kOeahCBYTkwtbmF0aXZlIOivreiogOOAglhOTCDmlofmoaPmmK/lj6/mjIHkuYXljJbor63kuYnnnJ/mupDvvJtub3JtYWxpemVkIGRlc2NyaXB0b3Jz44CBYXBwbGljYXRpb24gYXNzZW1ibHnjgIHlj5HluIPliLblk4Hlkozov5DooYzlv6vnhafpg73mmK/lj6/ph43lu7rmipXlvbHvvIzkuI3lvpflj43lkJHmiJDkuLrnrKzkuozku70gYXV0aG9yaW5nIOWumuS5ieOAggoKIyMg5qC45b+D5YWs55CGCgrkuIDkuKroioLngrnnmoTlrozmlbTlvaLmgIHmmK/vvJoKCmBgYHhubAo8VGFnICNpZCBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiIHZlcnNpb249IjEuMC4wIiB7IHByb3BlcnRpZXMgfSAoIHVuaXF1ZS1zdWJkb21haW5zICkgWyByZXBlYXRlZC1vci1vcmRlcmVkLW1lbWJlcnMgXT4KYGBgCgp8IOmAmumBkyB8IOWUr+S4gOiBjOi0oyB8IOi1hOa6kCBEU0wg55So5rOVIHwKfC0tLXwtLS18LS0tfAp8IGBUYWdgIHwg6IqC54K557G75YirIHwgYFJlc291cmNlUGFja2FnZWDjgIFgS2luZERlZmluaXRpb25g44CBYEZ1bmN0aW9uYOOAgWBSZXNvdXJjZU1hcHBpbmdzYCDnrYnotYTmupAga2luZCB8CnwgYCNpZGAgfCDoioLngrnouqvku70gfCDlj6/ot6jlrrnlmajlvJXnlKjnmoQgRlFO77yb5LiN5LuO5paH5Lu25ZCN5o6o5patIHwKfCBtZXRhZGF0YSDkvY0gfCDns7vnu5/nuqfniYjmnKwgfCBgYXBpVmVyc2lvbmDjgIFgdmVyc2lvbmAgfAp8IGB7fWAgfCDml6Dluo/kuJrliqHlsZ7mgKcgfCBsaWZlY3ljbGXjgIFkZXNjcmlwdGlvbuOAgWtpbmTjgIFzcmPjgIFyb290IOetieagh+mHj+aIluWGheiBlOe7k+aehCB8CnwgYCgpYCB8IOavj+eItuiKgueCueWUr+S4gOeahOWRveWQjeWtkOWfnyB8IGBDYXRhbG9nc2DjgIFgRGVzY3JpcHRvckNvbnRyYWN0YOOAgWBJbnN0cnVjdGlvbmDjgIFgQ29kZUJpbmRpbmdgIOetiSB8CnwgYFtdYCB8IOebtOaOpeOAgeacieW6j+aIluWPr+mHjeWkjeS6i+WuniB8IGNhdGFsb2cg5p2h55uu44CBbWFwcGluZyDmnaHnm67jgIFpbmNsdWRlcyDnrYkgfAoK6KeE5YiZ55qE6YeN54K55piv6K+t5LmJ5YiG6YWN77yM5LiN5piv5oqKIFhNTCB0YWcvYXR0cmlidXRlIOacuuaisOaNouS4gOenjeaLrOWPt+OAgmNvbnN1bWVyIOS4jeW+l+ivu+WPliBwYXJzZXItcHJpdmF0ZSDlrZfmrrXvvIzkuZ/kuI3lvpfph43lu7ogYEBfYXR0cmlidXRlYCDkuIDnsbsgWE1MIOWvueixoeW9oueKtuOAggoKIyMg5p2D5aiB5paH5qGjCgp8IOaWh+ahoyB8IOWbnuetlOeahOmXrumimCB8CnwtLS18LS0tfAp8IFtsYW5ndWFnZS5tZF0obGFuZ3VhZ2UubWQpIHwgWE5MIOmAmumBk+OAgei6q+S7veOAgeW8leeUqOOAgeWjsOaYjuW8j+i+ueeVjOS4jiBub3JtYWxpemVkIHByb2plY3Rpb27jgIIgfAp8IFtkb2N1bWVudHMubWRdKGRvY3VtZW50cy5tZCkgfCBwYWNrYWdl44CBY2F0YWxvZ+OAgUtpbmREZWZpbml0aW9u44CBZGVzY3JpcHRvcuOAgW1hcHBpbmcg5ZCE6Ieq6ZW/5LuA5LmI5qC344CCIHwKfCBbZmlsZXMubWRdKGZpbGVzLm1kKSB8IOWNleaWh+S7ti/nm67lvZUgYnVuZGxl44CBYG1hbmlmZXN0LnhubGDjgIFsb2dpY2FsIHBhdGgg5LiOIHByb3ZlbmFuY2XjgIIgfAp8IFtwcm9qZWN0aW9ucy5tZF0ocHJvamVjdGlvbnMubWQpIHwg5Y2V5YyFIHRyZWXjgIFvcmRlcmVkIGxheWVyc+OAgXRvbWJzdG9uZeOAgXR5cGVkIGRlcGVuZGVuY3kg5LiOIHJldmlzaW9uIOeahCBhdXRob3JpdHkg6L6555WM44CCIHwKfCBbc2tpbGwtY2Fwc3VsZXMubWRdKHNraWxsLWNhcHN1bGVzLm1kKSB8IFNraWxsQ2Fwc3VsZSB2ZXJzaW9uIGF1dGhvcml0eeOAgXNpYmxpbmcgZGVwZW5kZW5jeeOAgWNsb3N1cmUgcGxhbi9hcHBseSDkuI4gaG9zdCDovrnnlYzjgIIgfAp8IFttaWdyYXRpb24ubWRdKG1pZ3JhdGlvbi5tZCkgfCBYTUwgYXV0aG9yaXR5IOWmguS9lei/geenu++8jOWTquS6m+WBmuazleiiq+aYjuehruaLkue7neOAgiB8CnwgW2V4YW1wbGVzL10oZXhhbXBsZXMvKSB8IOeUseW9k+WJjSBgeG5sLWNvcmVgIHBhcnNlciDpqozor4HnmoTop4TojIPlrp7kvovjgIIgfAoKS2luZERlZmluaXRpb24g5ZCM5pe25oul5pyJ6LWE5rqQ54mI5pys5aWR57qm77yaYGN1cnJlbnRBcGlWZXJzaW9uYCDmjIflkJHlvZPliY0gYXV0aG9yaW5nIOeJiOacrO+8jGBzdXBwb3J0ZWRBcGlWZXJzaW9uc2Ag5YiX5Ye65Y+v55u05o6l5Yqg6L2955qE5YW85a6554mI5pys44CC54mI5pys6L2s5o2i55SxIGBoYWxmY29kZS1jb21waWxlci54bmwva2luZC1kZWZpbml0aW9uYCDnmoTku6PnoIHkvqcgbWlncmF0aW9uIHJlZ2lzdHJ5IOaJp+ihjO+8jFhOTCDkuI3mib/ovb3lj6/miafooYzovazmjaLjgILmiJDlip/liqDovb3nmoTop4TojIPljJYgY29udHJhY3Qg5Y+v5LuOIGBSZXNvdXJjZVRyZWUucmVnaXN0cnkua2luZERlZmluaXRpb25zYCDor7vlj5bvvIxjb25zdW1lciDml6DpnIDlho3mrKHop6PmnpAgS2luZCBYTkzjgIIKCuWkmuS4qiBwYWNrYWdlIOeahOe7hOWQiOS4jeS6p+eUn+aWsOeahCBhdXRob3JpbmcgYXV0aG9yaXR544CCY2Fub25pY2FsIGxvYWRlciDlnKjlkIzkuIDmrKEgcmF3LWJ5dGUgcmVhZCDkuK3kuqfnlJ8gYExvYWRlZFJlc291cmNlVHJlZS5jb250ZW50SWRlbnRpdGllc2DvvJtgcmVzb2x2ZUVmZmVjdGl2ZVJlc291cmNlQ29udGVudElkZW50aXRpZXMoKWAg5YaN5LuOIGV4YWN0IGVmZmVjdGl2ZSBsYXllciDpgInmi6kgYXV0aG9yaXR5IGlkZW50aXR5IOW5tuWQiOW5tiBLaW5kIG93bmVyIOeahOaYvuW8jyBkaWdlc3QgY29udHJpYnV0aW9uc+OAgmBFZmZlY3RpdmVSZXNvdXJjZVJlZ2lzdHJ5YCDlkowgYFJlc291cmNlRGVwZW5kZW5jeVNuYXBzaG90YCDpg73mmK/nlLHlt7Lpqozor4EgWE5M44CB5pi+5byPIHRvbWJzdG9uZeOAgXR5cGVkIGVkZ2Ug5LiOIGRpZ2VzdCBjb250cmlidXRpb24g6YeN5bu655qE5Y+q6K+75oqV5b2x77yb5a6D5Lus5LiN5b6X6KKr5bqP5YiX5YyW5ZueIFhOTCDkvZzkuLrnrKzkuozku73kuovlrp7mupDjgILlrozmlbTop4TliJnop4EgW3Byb2plY3Rpb25zLm1kXShwcm9qZWN0aW9ucy5tZCnjgIIKCuacrOebruW9leiHqui6q+S5n+aYryBgSGFsZmNvZGUuUmVzb3VyY2VEc2wuUGFja2FnZUAxLjAuMGDvvJpYTkwgZGVzY3JpcHRvcnMg5Y+q55m76K6wIGNhbm9uaWNhbCBNYXJrZG93bi9YTkwgbWF0ZXJpYWxz77yM5LiN5aSN5Yi25q2j5paH44CCYEhhbGZjb2RlLlJlc291cmNlRHNsLlNraWxsLlN5c3RlbWAg57yW6K+R5Li6IGBzeXMtaGFsZmNvZGUtcmVzb3VyY2UtZHNsQDEuMC4wYO+8jOS+m+emu+e6v+a2iOi0ueiAheaMiemcgOWKoOi9vei/meS6m+aWh+aho++8m+avj+S4qiBjYXBzdWxlIOeahCBgcmVmZXJlbmNlcy8uaGFsZmNvZGUvcHJvdmVuYW5jZS5qc29uYCDnu5Hlrpogc291cmNlIEZRTi9hcGlWZXJzaW9uL3ZlcnNpb27jgIHnlJ/miJDljY/orq7lkowgcGF5bG9hZCBkaWdlc3Rz44CCCgojIyDmmoLnvJPovrnnlYwKCkJ1c2luZXNzT2JqZWN0IOS4jiBQYWdlT2JqZWN0IOeahOmAmueUqOWkluWjs+S7jeacjeS7juacrOebruW9leeahCBgVGFnLyNpZC9tZXRhZGF0YS97fS8oKS9bXWAg5YWs55CG77yM5L2G5Lul5LiL5YaF5a655Zyo5b2T5YmN54mI5pys5LitKirliLvmhI/kuI3lrprkuYkqKu+8mgoKLSDkuJPnlKjlrZfmrrXkuI4gb3BlcmF0aW9uL211dGF0aW9uL2FjdGlvbiDmqKHlnovvvJsKLSBhcHBsaWNhdGlvbiBhc3NlbWJseSDnmoTkuozogIXkuJPnlKggcHVibGljIHR5cGVz77ybCi0g5Y+C6ICD5a6e546w5q2j5Zyo6YeN5p6E55qEIFBhZ2VPYmplY3QgQVBJIOaYoOWwhO+8mwotIOS6jOiAheacgOe7iCBLaW5kRGVmaW5pdGlvbiBkZXNjcmlwdG9yIGNvbnRyYWN044CCCgrov5nkupvlhoXlrrnnlLEgbWlzc2lvbiBgaGFsZmNvZGUtY29tcGlsZXIteG5sLW1pZ3JhdGlvbmAg55qEIGBMQVRFLUJPLVBPYCBncm91cCDlnKjph43mlrDop4Llr5/lj4LogIPlrp7njrDlkI7ooaXlhYXjgIIK"
194
+ },
195
+ {
196
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
197
+ "skillApiVersion": "halfcode.resources/v1",
198
+ "skillVersion": "1.0.0",
199
+ "capsuleRelativePath": "references/resource-dsl/language.md",
200
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/language.md",
201
+ "contentDigest": "sha256:95ce948601e37eff0b800a6a6051e329612d1f9bce76730e57513b0c454751c0",
202
+ "contentBase64": "IyBsYW5ndWFnZQoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLmxhbmd1YWdlPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+WE5MIGxhbmd1YWdlIGNoYW5uZWxzIGFuZCBhdXRob3JpdHkgcHJvamVjdGlvbiBydWxlcy48L2Rlc2NyaXB0aW9uPgoKIyBMYW5ndWFnZSBBeGlvbXMKCiMjIOi6q+S7veS4juWIhuexuwoKLSDmoLkgdGFnIOaYr+i1hOa6kCBraW5k77ybUGFzY2FsQ2FzZSDkv53nlZnnu5kgRFNMIOe7k+aehOiKgueCueOAggotIOWPr+i3qOWuueWZqOWkjeeUqOeahOi1hOa6kOWcqCBgI2lkYCDkvb/nlKjngrnliIYgRlFO77yM5L6L5aaCIGAjZGVtby5yZXNvdXJjZV93b3JrZmxvdy5wcmVwYXJlX2RhdGFg44CCCi0g5paH5Lu26Lev5b6E5Y+q6LSf6LSj54mp55CG5biD5bGA77yM5LiN5Yaz5a6aIGtpbmQg5oiWIGlkZW50aXR544CC56e75Yqo5paH5Lu25LiN5pS55Y+YIGAjaWRg44CCCi0gYGFwaVZlcnNpb25gIOS4jiBgdmVyc2lvbmAg5YaZ5ZyoIG1ldGFkYXRhIOS9je+8m3RpdGxl44CBbGlmZWN5Y2xl44CBZGVzY3JpcHRpb24g562J5Lia5Yqh5pWw5o2u6Iul5bGe5LqO6K+lIEtpbmTvvIzliJnlhpnlhaUgYHt9YOOAggotIOmAmueUqOi1hOa6kOi+ueeVjOWPquimgeaxguaguSBgI2lkYCDkuI4gYGFwaVZlcnNpb25g44CCYGxpZmVjeWNsZWDjgIFgZGVzY3JpcHRpb25gIOeahOWtmOWcqOaAp+WSjOivreS5ieeUseWFt+S9kyBLaW5kIOaIliBjb25zdW1lciBjb250cmFjdCDlhrPlrprvvIxyZXNvdXJjZS1jb3JlIOS4jeaPkOS+m+iZmuWBh+m7mOiupOWAvOOAggotIOavj+S4qiBLaW5kRGVmaW5pdGlvbiDmmL7lvI/lo7DmmI4gYGN1cnJlbnRBcGlWZXJzaW9uYCDkuI4gYHN1cHBvcnRlZEFwaVZlcnNpb25zYO+8m2xvYWRlciDkuI3njJzmtYvmnKrnn6XniYjmnKzvvIzkuZ/kuI3oh6rliqjmiafooYzov4Hnp7vjgILlhbfkvZPns7vnu5/pgJrov4flhazlvIAgYFJlc291cmNlTWlncmF0aW9uUmVnaXN0cnlgIOazqOWGjOe6r+i9rOaNouWHveaVsO+8jOW+l+WIsOWUr+S4gOeJiOacrOmTvuWQjuWGjeWKoOi9veebruagh+aWh+aho+OAggotIFhOTCBhdXRob3JpdHkg6buY6K6k5Y2V5qC544CC5Y+q5pyJIHNvdXJjZSBzaGFwZSDkuKXmoLzkuLogYHNpbmdsZS1maWxlYCDnmoQgS2luZCDlj6/ku6XpgJrov4cgYGRvY3VtZW50Q2FyZGluYWxpdHkgPSAibWFueSJgIOaOiOadg+WQjCBLaW5kIGZvcmVzdO+8m+avj+S4qumhtuWxguagueS7jeaYr+eLrOeri+i1hOa6kO+8jGBbXWAg57un57ut5Y+q6KGo6L6+6IqC54K55YaF6YOo55qE6YeN5aSN5a2Q6aG544CCCi0g6Z2Z5oCB5o+P6L+w5pWw5o2u55Sx5omA5bGe6IqC54K56Ieq5oyB77yM5LiN5a+E5a2Y5Zyo5Y+m5LiA5Z+f5YaN5byV55So5Zue5p2l44CCCgojIyDlrZDln5/kuI7ph43lpI3kuovlrp4KCmAoKWAg6KGo56S654i26IqC54K55oul5pyJ55qE5ZSv5LiA5a2Q5Z+f5qaC5b+144CC5ZCM5LiA54i26IqC54K555qEIGAoKWAg5Lit77yM5ZCM5ZCNIHRhZyDlj6rog73lh7rnjrDkuIDmrKHjgILph43lpI3mnaHnm67nlLHlpI3mlbDlrZDln5/nmoQgYFtdYCDmib/ovb3vvJoKCmBgYHhubAo8UmVzb3VyY2VQYWNrYWdlICNkZW1vLnBhY2thZ2UgKAogIDxDYXRhbG9ncyBbCiAgICA8Q2F0YWxvZyAjZnVuY3Rpb25zIHsga2luZCA9ICJGdW5jdGlvbiIgcm9vdCA9ICJ2ZnM6Ly8uL0Z1bmN0aW9ucy8iIGVudHJ5ID0gIm1hbmlmZXN0LnhubCIgfT4KICAgIDxDYXRhbG9nICNza2lsbHMgeyBraW5kID0gIlNraWxsQ2Fwc3VsZSIgcm9vdCA9ICJ2ZnM6Ly8uL1NraWxscy8iIGVudHJ5ID0gIm1hbmlmZXN0LnhubCIgfT4KICBdPgopPgpgYGAKCuebtOaOpeOAgeacieW6j+aIluWPr+mHjeWkjeeahOS6i+Wunui/m+WFpSBgW11g44CC56aB5q2i5Li65LqG5YeR5bGC57qn5aKe5Yqg5rKh5pyJ6aKG5Z+f6K+t5LmJ55qEIGBOb2Rlc2DjgIFgSXRlbXNgIOaIliBgQmxvY2tgIOWMheijhe+8m+WkjeaVsOWuueWZqOW/hemhu+ehruWunuS7o+ihqOS4gOS4quWUr+S4gOWtkOWfn+amguW/teOAggoKIyMgVVJJIOS4juS7o+eggeW8leeUqAoK5omA5pyJ6Leo6IqC54K5L+aWh+S7tuW8leeUqOmDveaYr+W8leWPt+Wtl+espuS4siBVUknvvJoKCnwg55uu5qCHIHwgY2Fub25pY2FsIOW9ouaAgSB8IOekuuS+iyB8CnwtLS18LS0tfC0tLXwKfCDlvZPliY0gYnVuZGxlIOebuOWvueaWh+S7tiB8IGB2ZnM6Ly8uLzxwYXRoPmAgfCBgdmZzOi8vLi9pbnN0cnVjdGlvbi5tZGAgfAp8IHdvcmtzcGFjZSDmlofku7YgfCBgdmZzOi8vQC88cGF0aD5gIHwgYHZmczovL0AvYXBwcy9kZW1vL3NyYy9wcm9jZWR1cmVzLnRzYCB8CnwgVHlwZVNjcmlwdCDlr7zlh7ogfCBgdmZzOi8vLi4uIzxFeHBvcnROYW1lPmAgfCBgdmZzOi8vQC9hcHBzL2RlbW8vc3JjL3Byb2NlZHVyZXMudHMjcHJlcGFyZVByb2NlZHVyZWAgfAp8IOinhOiMg+i1hOa6kCBpZGVudGl0eSB8IGByZXNvdXJjZTovLzxGUU4+YCB8IGByZXNvdXJjZTovL2RlbW8ucmVzb3VyY2Vfd29ya2Zsb3cucHJlcGFyZV9kYXRhYCB8Cnwg5b2T5YmN5a655ZmoIGlkIHwgYDxkb21haW4+Oi8vIzxpZD5gIHwgYGNhdGFsb2c6Ly8jZnVuY3Rpb25zYCB8Cgrku6PnoIHlvJXnlKjlv4XpobvljIXlkKsgZXhwb3J0IGZyYWdtZW5044CCWE5MIOWPquS/neWtmOWjsOaYjuW8jyBiaW5kaW5n77yb5Ye95pWw44CB6Zet5YyF44CB6KGo6L6+5byP5a2X56ym5Liy5ZKMIGhhbmRsZXIgb2JqZWN0IOS4jeW+l+WGheW1jOWIsCBYTkzjgILmiafooYzku6PnoIHnmoTljY/orq7lkozlia/kvZznlKjnlLEgcnVudGltZS9jb21wb25lbnQgY29udHJhY3Qg5a6a5LmJ77yM5LiN5bGe5LqOIHBhcnNlcuOAggoKIyMgQXV0aG9yaW5nIOS4jiBwcm9qZWN0aW9uCgpgYGB0ZXh0ClhOTCBhdXRob3JpdHkgZG9jdW1lbnQKICAtPiB4bmwtY29yZSBub2RlIHRyZWUKICAtPiB2YWxpZGF0ZWQgbm9ybWFsaXplZCByZXNvdXJjZSBkZXNjcmlwdG9yICsgcHJvdmVuYW5jZQogIC0+IHJlZ2lzdHJ5IC8gbWFwcGluZyAvIGFwcGxpY2F0aW9uIGFzc2VtYmx5IHByb2plY3Rpb25zCmBgYAoKLSBhdXRob3JpdHnvvJrno4Hnm5jkuIrnmoQgYC54bmxgIOaWh+aho++8m+WUr+S4gOWPr+e8lui+keS6i+WunuOAggotIHBhcnNlciB0cmVl77ya6K+t5rOV5oqV5b2x77yM5Y+q55SxIHJlc291cmNlLWNvcmUgbG9hZGVyIOa2iOi0ueOAggotIG5vcm1hbGl6ZWQgZGVzY3JpcHRvcu+8mueos+WumumihuWfn+i+ueeVjO+8jOaQuuW4piBgcmVzb3VyY2VJZGDjgIFga2luZGDjgIFtZXRhZGF0YeOAgW1lbWJlcnPjgIFzdWJkb21haW5z44CBYGRvY3VtZW50VXJpYOOAgWBsb2dpY2FsUGF0aGDvvJtLaW5kLW93bmVkIOWPr+mAieWxnuaAp+S/neaMgeWtmOWcqOaIlue8uuWkseeahOWOn+Wni+S6i+WunuOAggotIGNvbnN1bWVyIHByb2plY3Rpb27vvJrlj6/ph43lu7rvvJvkuI3lvpfmmrTpnLIgcGFyc2VyIG5vZGUg5YaF6YOo5a2X5q6177yM5Lmf5LiN5b6X5Y+N5YaZIGF1dGhvcml0eeOAggoKcGFja2FnZSBwcm92ZW5hbmNlIOS7jiBwYWNrYWdlIG1hbmlmZXN044CBZG9jdW1lbnQgVVJJIOS4jiBsb2dpY2FsIHBhdGgg5rS+55Sf44CCZGVzY3JpcHRvciDkuI3ph43lpI3kv53lrZjkuIDku73lj6/nlLHot6/lvoTorqHnrpfnmoQgcGFja2FnZSBpZGVudGl0eeOAggoKIyMg5aOw5piO5byP6ZmQ5Yi2CgotIOS4gOS4qiBidW5kbGUg5YaF55qE6YWN572u5Y+q5L2/55SoIFhOTO+8jOS4jeW8leWFpSBKU09OL1hNTC9ZQU1MIOesrOS6jOmFjee9ruWFpeWPo+OAggotIOWKqOaAgeS7o+eggeS/neWtmOWcqCBgLnRzYCDnrYnlpJbpg6jmlofku7bvvIzpgJrov4cgYHZmczovLy4uLiNFeHBvcnRgIOaMguaOpeOAggotIOS4jeWFgeiuuOWwhiBYTUwgYXR0cmlidXRlcyDovazmjaLmiJAgYEBfbmFtZWAg5oiW5YW25LuW5YmN57yA6ZSu5ZCO5pq06Zyy57uZIGNvbnN1bWVy44CCCi0g5LiN5YWB6K645qC55o2u5paH5Lu25ZCN54yc5rWLIGtpbmTvvJvmlofku7blhoXlrrnnmoQgdGFnIOaJjeaYryBhdXRob3JpdHnjgIIK"
203
+ },
204
+ {
205
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
206
+ "skillApiVersion": "halfcode.resources/v1",
207
+ "skillVersion": "1.0.0",
208
+ "capsuleRelativePath": "references/resource-dsl/migration.md",
209
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/migration.md",
210
+ "contentDigest": "sha256:ea978fa2fe5f57d39e0dbdb9e05b357993451f3f2ab8447cb5b6fc17389387ca",
211
+ "contentBase64": "IyBtaWdyYXRpb24KCjxmcW4+SGFsZmNvZGUuUmVzb3VyY2VEc2wuV2lraS5taWdyYXRpb248L2Zxbj4KPGtpbmQ+V2lraVBhZ2U8L2tpbmQ+CjxkZXNjcmlwdGlvbj5NaWdyYXRpb24gZ3VpZGFuY2UgZnJvbSBub24tY2Fub25pY2FsIHJlc291cmNlIHJlcHJlc2VudGF0aW9ucy48L2Rlc2NyaXB0aW9uPgoKIyBYTUwgVG8gWE5MIE1pZ3JhdGlvbgoKIyMg6L+B56e75Y6f5YiZCgrov4Hnp7vljZXkvY3mmK/igJzotYTmupDor63kuYnigJ3vvIzkuI3mmK8gdGFnL2F0dHJpYnV0ZSDnmoTpgJDlrZfnrKbmm7/mjaLvvJoKCnwgWE1MLWVyYSDooajovr4gfCBYTkwgYXV0aG9yaXR5IHwKfC0tLXwtLS18Cnwg5qC5IGVsZW1lbnQg5ZCNIHwg5qC5IHRhZ++8iHJlc291cmNlIGtpbmTvvIkgfAp8IGBJZGAvYE5hbWVgIOetiei6q+S7vSBhdHRyaWJ1dGUgfCDmoLkgYCNpZGAgRlFO77ybZGlzcGxheSBuYW1lIOiLpeWtmOWcqOWImeeVmeWcqCBge31gIHwKfCBgVmVyc2lvbmAvc2NoZW1hIHZlcnNpb24gfCBtZXRhZGF0YSDkvY3nmoQgYHZlcnNpb25gL2BhcGlWZXJzaW9uYCB8Cnwg5pmu6YCaIGF0dHJpYnV0ZXMgfCBge31gIOS4reW9kuiKgueCueaJgOacieeahOWxnuaApyB8Cnwg5ZSv5LiAIGNoaWxkIHNlY3Rpb24gfCBgKClgIOS4reeahOWUr+S4gOWtkOWfnyB8Cnwg6YeN5aSNIGNoaWxkIGVsZW1lbnRzIHwg54i2IGBbXWAg5oiW5aSN5pWw5a2Q5Z+f55qEIGBbXWAgfAp8IOaWh+S7tui3r+W+hC9jb2RlIGV4cG9ydCB8IOW8leWPt+Wtl+espuS4siBgdmZzOi8vLi4uI0V4cG9ydGAgfAp8IHBhcnNlciBgQF9mb29gL1htbE9iamVjdCB8IOS4jei/geenu++8m+WcqCBub3JtYWxpemVkIGRlc2NyaXB0b3Ig6L6555WM5raI5aSxIHwKCiMjIOmhuuW6jwoKMS4g55SoIGBLaW5kRGVmaW5pdGlvbmAg5piO56GuIGtpbmQgY29udHJhY3TjgIIKICAgLSDlo7DmmI4gYGN1cnJlbnRBcGlWZXJzaW9uYCDkuI4gYHN1cHBvcnRlZEFwaVZlcnNpb25zYOOAggogICAtIOWvueS4jeWPr+ebtOaOpeWFvOWuueeahOWOhuWPsueJiOacrO+8jOWcqOS7o+eggeS+pyBgUmVzb3VyY2VNaWdyYXRpb25SZWdpc3RyeWAg5rOo5YaM5ZSv5LiA57qv6L2s5o2i6ZO+77ybWE5MIOS4jeWGheW1jCB0cmFuc2Zvcm1lcuOAggoyLiDlsIYgcGFja2FnZS9jYXRhbG9nIGF1dGhvcml0eSDmlLnkuLogWE5M44CCCjMuIOmAkOS4qui1hOa6kOaMiemihuWfn+ivreS5ieWIhumFjSBge31g44CBYCgpYOOAgWBbXWDvvIzkv53nlZnnqLPlrpogYCNpZGDjgIIKNC4g5bCG6Lev5b6E5LiO5Luj56CB5byV55So6KeE6IyD5Li6IFZGUyBVUknjgIIKNS4g6YCa6L+HIHJlc291cmNlLWNvcmUg5b6X5YiwIG5vcm1hbGl6ZWQgZGVzY3JpcHRvcu+8jOWGjei/geenuyBjb25zdW1lcuOAggo2LiDliKDpmaTlhbzlrrkgWE1MIOS4jiBgZmFzdC14bWwtcGFyc2VyYO+8jOS7peS6p+WTgSBYTUwgaW52ZW50b3J5IOa4hembtuS9nOS4uuWFs+mXreadoeS7tuOAggoKIyMg5piO56Gu5ouS57udCgotIOWcqCBUeXBlU2NyaXB0IOS4reS/neeVmSBgWG1sT2JqZWN0YOOAgWBAX2Ag5bGe5oCn5YmN57yA5oiWIFhNTCBjaGlsZC1hcnJheSDkvZzkuLrlhazlvIDnsbvlnovjgIIKLSDlkIzkuIDotYTmupDlkIzml7bnu7TmiqQgWE1MIOS4jiBYTkwg5Lik5Lu96ZW/5pyfIGF1dGhvcml0eeOAggotIOagueaNruebruW9leWQjS/mlofku7blkI3njJwga2luZCDmiJYgaWRlbnRpdHnjgIIKLSDlnKggWE5MIOWGheW1jOWHveaVsOOAgemXreWMheaIluWPr+aJp+ihjOihqOi+vuW8j+Wtl+espuS4suOAggotIOeUqOaXoOivreS5ieeahCB3cmFwcGVyIOaooeaLnyBYTUwg5bGC57qn44CCCi0g5ZyoIEJ1c2luZXNzT2JqZWN0L1BhZ2VPYmplY3QgQVBJIOWwmuacqueos+WumuaXtuaPkOWJjeiuvuiuoeS6jOiAheeahOS4k+eUqCBYTkwgc2NoZW1h44CCCgojIyDmmoLml7blhbzlrrkKCuWQjue7reWunueOsCB0cmFjayDlj6/ku6XlnKjlhoXpg6jnn63mnJ8gZHVhbC1yZWFk77yM55So5LqO5bCP5q2l6L+B56e75ZKMIGNoYXJhY3Rlcml6YXRpb24gdGVzdO+8m+WFvOWuueWxguS4jeW+l+i/m+WFpSBwdWJsaWMgQVBJ77yM5bm25b+F6aG75ZyoIGBjbG9zZS14bmwtb25seS1wcm9kdWN0LXN1cmZhY2VgIHRyYWNrIOWIoOmZpOOAggo="
212
+ },
213
+ {
214
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
215
+ "skillApiVersion": "halfcode.resources/v1",
216
+ "skillVersion": "1.0.0",
217
+ "capsuleRelativePath": "references/resource-dsl/projections.md",
218
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/projections.md",
219
+ "contentDigest": "sha256:cb09c44a315fdd77f7eeb4d1eee965594f5f02fda5a6dea97ea80fd95b6239d0",
220
+ "contentBase64": "IyBwcm9qZWN0aW9ucwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLnByb2plY3Rpb25zPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+Tm9ybWFsaXplZCwgbGF5ZXJlZCwgY29udGVudCBpZGVudGl0eSBhbmQgZGVwZW5kZW5jeSBzbmFwc2hvdCBwcm9qZWN0aW9ucy48L2Rlc2NyaXB0aW9uPgoKIyBSZXNvdXJjZSBQcm9qZWN0aW9ucyBhbmQgRGVwZW5kZW5jeSBBdXRob3JpdHkKCiMjIEF1dGhvcml0eSBtYXAKCui1hOa6kCBhdXRob3JpbmfjgIHnu4TlkIjkuI7ov5DooYzpl63ljIXmmK/kuInkuKrkuI3lkIzlsYLmrKHvvIzkuI3og73kupLnm7jmm7/ku6PvvJoKCnwgRmFjdCB8IEF1dGhvcml0eSBvd25lciB8IEhhbGZjb2RlIHByb2plY3Rpb24gfAp8LS0tfC0tLXwtLS18CnwgcGFja2FnZeOAgUNhdGFsb2fjgIFLaW5kRGVmaW5pdGlvbuOAgXJlc291cmNlIGRlc2NyaXB0b3IgfCBYTkwgUmVzb3VyY2VQYWNrYWdlIHwgYExvYWRlZFJlc291cmNlVHJlZSBleHRlbmRzIFJlc291cmNlVHJlZWAgfAp8IGxheWVyIHByZWNlZGVuY2UgfCDosIPnlKjmlrnmj5DkvpvnmoTmnInluo8gYFJlc291cmNlTGF5ZXJJbnB1dFtdYCB8IGBFZmZlY3RpdmVSZXNvdXJjZVJlZ2lzdHJ5LmxheWVyc2AgfAp8IHN1cHByZXNzaW9uIHwg6LCD55So5pa55pi+5byP5o+Q5L6b55qEIGBSZXNvdXJjZVRvbWJzdG9uZWAgfCBlZmZlY3RpdmUvdG9tYnN0b25lL3NoYWRvdyBwcm92ZW5hbmNlIHwKfCBLaW5kLXNwZWNpZmljIGRlcGVuZGVuY3kgc2VtYW50aWNzIHwg5a+55bqUIEtpbmQgb3duZXIg5oiWIGNvbnN1bWVyIHwgYFJlc291cmNlRGVwZW5kZW5jeUVkZ2VbXWAgfAp8IFhOTCBhdXRob3JpdHkgYnl0ZXMgfCBjYW5vbmljYWwgbG9hZGVyIOeahOWQjOS4gOasoSByYXctYnl0ZSByZWFkIHwgYExvYWRlZFJlc291cmNlVHJlZS5jb250ZW50SWRlbnRpdGllc2AgfAp8IEtpbmQtc3BlY2lmaWMgbWF0ZXJpYWwgYnl0ZXMgfCBLaW5kIG93bmVyIOaPkOS+m+eahOaYvuW8jyBkaWdlc3QgY29udHJpYnV0aW9uIHwgZWZmZWN0aXZlIGBSZXNvdXJjZUNvbnRlbnRJZGVudGl0eWAgfAp8IHJvb3RzIOS4jiBkZXBlbmRlbmN5IGNsb3N1cmUgfCDosIPnlKjmlrnnmoTmmL7lvI8gcm9vdHMg5YqgIHR5cGVkIGVkZ2VzIHwgYFJlc291cmNlRGVwZW5kZW5jeVNuYXBzaG90YCB8CgpgUmVzb3VyY2VUcmVlYCDmmK/ljZXkuKrlt7Lpqozor4EgcGFja2FnZSDnmoTop4TojIPljJbnu5PmnpzjgIJgRWZmZWN0aXZlUmVzb3VyY2VSZWdpc3RyeWAg5Y+q5piv5aSa5LiqIHRyZWUg55qE56Gu5a6a5oCn5Y+q6K+75oqV5b2x77yb5a6D5LyaIGRlZXAtY2xvbmUvZnJlZXplIHJlY29yZOOAgW1ldGFkYXRh44CBbm9kZS92YWx1ZSDkuI4gS2luZERlZmluaXRpb24gZmFjdHPvvIzpgb/lhY3osIPnlKjmlrnkuYvlkI7kv67mlLnovpPlhaXogIzmlLnlj5jml6LmnInmipXlvbHvvIzkvYbkuI3kvJrljp/lnLDlhrvnu5PmiJbmlLnlhpnml6cgYFJlc291cmNlVHJlZWDjgIJgUmVzb3VyY2VEZXBlbmRlbmN5U25hcHNob3RgIOWPiOaYr+afkOe7hCByb290cyDlnKjkuIDkuKogY29udGVudC1zZW5zaXRpdmUgcmVnaXN0cnkgcmV2aXNpb24g5LiK55qE5Ya757uT6Zet5YyF44CC5Lik56eN5oqV5b2x6YO95Y+v55SxIGF1dGhvcml0eSBmYWN0cyDph43lu7rvvIzkuI3lvpflj43lhpnku7vkuIAgWE5MIHBhY2thZ2XvvIzkuZ/kuI3lvpfmiJDkuLrnrKzkuozku70gYXV0aG9yaW5nIOecn+a6kOOAggoKU25hcHNob3QgYnVpbGRlciDlj6rmjqXlj5flkIzkuIAgcmVzb3VyY2UtY29yZSBydW50aW1lIOS4reeUsSBgY29tcG9zZUxheWVyZWRSZXNvdXJjZVJlZ2lzdHJ5KClgIOi/lOWbnueahCBjYW5vbmljYWwgaW1tdXRhYmxlIHJlZ2lzdHJ544CC5omL5bel5p6E6YCg44CB5rWF5ou36LSd5oiW5pS55YaZIHJldmlzaW9uIOWtl+auteeahOe7k+aehOebuOS8vOWvueixoeS8miBmYWlsIGNsb3NlZO+8m+mcgOimgei3qOi/m+eoi+aBouWkjeaXtu+8jOW6lOS7jiBYTkwgcGFja2FnZXPjgIFvcmRlcmVkIGxheWVycyDkuI4gdG9tYnN0b25lcyDph43mlrDnu4TlkIjjgIJTbmFwc2hvdCDkvJrlpI3liLblubblhrvnu5Poh6rlt7HnmoQgb3JpZ2luIGZhY3Rz77yM5LiN5YWx5Lqr5Y+v5Y+Y6LCD55So5pa55byV55So44CCCgojIyBPcmRlcmVkIG5hbWVkIGxheWVycwoKbGF5ZXIg5Y+q5YyF5ZCr5LiA5Liq5LiN6YCP5piO44CB56iz5a6a55qEIGBpZGAg5ZKM5LiA5Liq5bey6aqM6K+BIGBSZXNvdXJjZVRyZWVg44CC5pWw57uE5LuO5L2OIHByZWNlZGVuY2Ug5Yiw6auYIHByZWNlZGVuY2Ug5o6S5YiX77yM5ZCO5LiA5LiqIGxheWVyIOS8mOWFiOOAgkhhbGZjb2RlIOS4jeS/neeVmeeJueauiiBsYXllciDlkI3np7DvvIzkuI3moLnmja7lkI3np7Dph43mjpLvvIzkuZ/kuI3mi6XmnInku7vkvZXkuqflk4Hlronoo4Xnm67lvZXmiJbmnLrlmajot6/lvoTnrZbnlaXvvJvlrp7pmYUgcm9vdHMg55SxIGNvbnN1bWVyIOWcqOiwg+eUqCByZXNvdXJjZS1jb3JlIOS5i+WJjee7keWumuOAggoK57uE5ZCI6KeE5YiZ5piv77yaCgoxLiDlkIzkuIAgYHJlc291cmNlSWRg44CB5ZCM5LiAIGtpbmQg55qE6auY5bGC6LWE5rqQ5oiQ5Li6IGVmZmVjdGl2Ze+8m+S9juWxgiBvcmlnaW4g55WZ5ZyoIGBzaGFkb3dlZGDjgIIKMi4g5ZCM5LiAIGlkZW50aXR5IOi3qCBraW5k77yM5oiW5ZCM5LiAIHJlc291cmNlIGtpbmQg55qE6KeE6IyD5YyWIEtpbmREZWZpbml0aW9uIGNvbnRyYWN0IOS4jeWFvOWuue+8jOe7hOWQiOWksei0peW5tui/lOWbnueos+WumiBkaWFnbm9zdGljc+OAggozLiDpq5jlsYLmsqHmnInmn5DkuKrotYTmupDlj6rooajnpLrigJzmnKrmj5DkvpvigJ3vvIznu53kuI3ooajnpLrliKDpmaTjgIIKNC4g5Yig6Zmk6K+t5LmJ5b+F6aG76YCa6L+HIGBSZXNvdXJjZVRvbWJzdG9uZSB7IHJlc291cmNlSWQsIGV4cGVjdGVkS2luZD8sIHJlYXNvbj8gfWAg5pi+5byP5aOw5piO77ybdG9tYnN0b25lIG9yaWdpbiDkuI7ljoblj7Lkv53nlZnlnKggcHJvamVjdGlvbiDkuK3jgIIKNS4gYGJ5S2luZGAg5Y+q5YyF5ZCrIGVmZmVjdGl2ZSByZXNvdXJjZXPvvJvlrozmlbQgZWZmZWN0aXZl44CBc2hhZG93IOS4jiB0b21ic3RvbmUg6K+B5o2u55SxIGBieUlkYCDkv53lrZjjgIIKNi4gYGRvY3VtZW50VXJpYCDlv4XpobvmmK/kuI7lronlhajnm7jlr7kgYGxvZ2ljYWxQYXRoYCDkuIDoh7TnmoQgY2Fub25pY2FsIGB2ZnM6Ly9AL2AgVVJJ77yb6Z2eIGxvYWRlciDmnaXmupDnmoTnu53lr7nmnLrlmajot6/lvoTmiJYgdHJhdmVyc2FsIHByb3ZlbmFuY2Ug5LyaIGZhaWwgY2xvc2Vk44CCCgpgYGB0cwppbXBvcnQgewogIGNvbXBvc2VMYXllcmVkUmVzb3VyY2VSZWdpc3RyeSwKICB0eXBlIFJlc291cmNlTGF5ZXJJbnB1dCwKfSBmcm9tICJoYWxmY29kZS1jb21waWxlci54bmwvcmVzb3VyY2UtY29yZSIKCmRlY2xhcmUgY29uc3QgbG93ZXJQYWNrYWdlOiBSZXNvdXJjZUxheWVySW5wdXRbInRyZWUiXQpkZWNsYXJlIGNvbnN0IGhpZ2hlclBhY2thZ2U6IFJlc291cmNlTGF5ZXJJbnB1dFsidHJlZSJdCgpjb25zdCByZWdpc3RyeSA9IGNvbXBvc2VMYXllcmVkUmVzb3VyY2VSZWdpc3RyeSh7CiAgbGF5ZXJzOiBbCiAgICB7IGlkOiAiYmFzZSIsIHRyZWU6IGxvd2VyUGFja2FnZSB9LAogICAgewogICAgICBpZDogIm92ZXJyaWRlIiwKICAgICAgdHJlZTogaGlnaGVyUGFja2FnZSwKICAgICAgdG9tYnN0b25lczogW3sgcmVzb3VyY2VJZDogImRlbW8ucmV0aXJlZCIsIGV4cGVjdGVkS2luZDogIkZ1bmN0aW9uIiB9XSwKICAgIH0sCiAgXSwKfSkKYGBgCgrnpLrkvovkuK3nmoTlkI3lrZfku4XnlKjkuo7lsZXnpLrosIPnlKjpobrluo/vvIzkuI3mkLrluKbpooTlrprkuYnor63kuYnjgIJjb25zdW1lciDlj6/ku6XpgInmi6nku7vkvZXnqLPlrpogaWTvvJvmlLnlj5jmlbDnu4Tpobrluo/miY3kvJrmlLnlj5ggcHJlY2VkZW5jZeOAggoKIyMgRXhwbGljaXQgY29udGVudCBpZGVudGl0eQoKY2Fub25pY2FsIGxvYWRlciDlr7nmr4/kuKogWE5MIGF1dGhvcml0eSDmlofku7blj6ror7vlj5bkuIDmrKEgcmF3IGJ5dGVz77ya5ZCM5LiA5qyh6K+75Y+W5ZCM5pe255So5LqOIGZhdGFsIFVURi04IGRlY29kZeOAgVhOTCBwYXJzZSDlkowgU0hBLTI1NuOAguaIkOWKn+WKoOi9veWQjui/lOWbniBhZGRpdGl2ZSBgTG9hZGVkUmVzb3VyY2VUcmVlYO+8m+WFtiBgY29udGVudElkZW50aXRpZXNgIOeyvuehruimhuebliBgcmVnaXN0cnkuYnlLaW5kYCDnmoTkuJrliqEgcmVzb3VyY2Vz77yM5LiN5YyF5ZCrIHBhY2thZ2UgbWFuaWZlc3Qg5oiWIEtpbmREZWZpbml0aW9u44CCbXVsdGktcm9vdCBkb2N1bWVudCDnmoQgcm9vdHMg5YWx5Lqr5ZCM5LiA5paH5Lu257qnIGBhdXRob3JpdHlEaWdlc3Rg77yM5L2G5ZCE6Ieq55qEIGByZXNvdXJjZUlkYCDlkowgYGNvbnRlbnREaWdlc3RgIOeLrOeri+OAggoKYFJlc291cmNlVHJlZWAg5LuN5piv5YW85a6554i25o6l5Y+j77yM5omL5belIHN0cnVjdHVyYWwgdHJlZSDku43lj6/lj4LkuI4gZ2VuZXJpYyBsYXllciBjb21wb3NpdGlvbuOAguWPquaciSBjYW5vbmljYWwgbG9hZGVyIOi/lOWbnuW5tueUseW9k+WJjSBydW50aW1lIOeZu+iusOeahCBgTG9hZGVkUmVzb3VyY2VUcmVlYCDmiY3og73ov5vlhaUgYHJlc29sdmVFZmZlY3RpdmVSZXNvdXJjZUNvbnRlbnRJZGVudGl0aWVzKClg44CCcHJvamVjdG9yIGV4YWN0IOaguOWvuSByZWdpc3RyeSDnmoQgbGF5ZXIgaWTjgIHpobrluo/jgIFwYWNrYWdlIOS4jiBlZmZlY3RpdmUgb3JpZ2lu77yM5LuO5q+P5LiqIGVmZmVjdGl2ZSBsYXllciDpgInmi6kgbG9hZGVyIGlkZW50aXR577ybc2hhZG93ZWQgbm9uLWVmZmVjdGl2ZSByZXNvdXJjZSDkuI4gdG9tYnN0b25lIOS4jei/m+WFpee7k+aenOOAgktpbmQgb3duZXIg5YaN5oqKIHByb21wdOOAgXNjaGVtYeOAgWluc3RydWN0aW9uIOetiSBtYXRlcmlhbCDkvZzkuLrluKbnqLPlrpogYGtleWDjgIFgZGlnZXN0YCDlkozlj6/pgIkgYHNvdXJjZVVyaWAg55qEIGNvbnRyaWJ1dGlvbiDmmL7lvI/mj5DkvpvjgIIKCmBjcmVhdGVSZXNvdXJjZUNvbnRlbnRJZGVudGl0eSgpYCDmjIkgVVRGLTE2IGNvZGUtdW5pdCBrZXkg6aG65bqPIGNhbm9uaWNhbGl6ZSBjb250cmlidXRpb25z77yM5bm25ouS57ud5Lu75L2V6YeN5aSNIGtlee+8m+WNs+S9vyBkaWdlc3Qg55u45ZCM77yM6YeN5aSN5oiW5LiN5ZCMIHByb3ZlbmFuY2Ug5Lmf5LiN5piv5Y+v6Z2Z6buY5oqY5Y+g55qE5ZCI5rOV5LqL5a6e44CCc25hcHNob3QgYnVpbGRlciDkvJrlr7nlhajpg6ggZWZmZWN0aXZlIHJlc291cmNlcyDph43mlrDop4TojIPljJYgYXV0aG9yaXR5L2NvbnRyaWJ1dGlvbiBmYWN0c+OAgemHjeeulyBgY29udGVudERpZ2VzdGAg5bm25qC45a+5IGNsYWlt77yb5a6D5LiN5Lya5Y+q6aqM6K+BIHJvb3RzIOWPr+i+vueahCBpZGVudGl0ee+8jOS5n+S4jeS8muS/oeS7u+iwg+eUqOaWueaehOmAoOeahOWvueixoeOAgmBzb3VyY2VVcmlgIOaYryBwcm92ZW5hbmNl77yM5LiN5YWB6K645py65Zmo57ud5a+56Lev5b6E6L+b5YWlIGNvbnRlbnQgcmV2aXNpb27vvJvosIPnlKjmlrnlupTkvb/nlKggUmVzb3VyY2UgRFNMIOWumuS5ieeahOmAu+i+kSBVUknjgIIKCmBgYHRzCmltcG9ydCB7CiAgY29tcG9zZUxheWVyZWRSZXNvdXJjZVJlZ2lzdHJ5LAogIGxvYWRSZXNvdXJjZVRyZWUsCiAgcmVzb2x2ZUVmZmVjdGl2ZVJlc291cmNlQ29udGVudElkZW50aXRpZXMsCn0gZnJvbSAiaGFsZmNvZGUtY29tcGlsZXIueG5sL3Jlc291cmNlLWNvcmUiCgpkZWNsYXJlIGNvbnN0IGxvd2VyUGFja2FnZVJvb3Q6IHN0cmluZwpkZWNsYXJlIGNvbnN0IGhpZ2hlclBhY2thZ2VSb290OiBzdHJpbmcKZGVjbGFyZSBjb25zdCBjb250cmlidXRpb25zOiBQYXJhbWV0ZXJzPHR5cGVvZiByZXNvbHZlRWZmZWN0aXZlUmVzb3VyY2VDb250ZW50SWRlbnRpdGllcz5bMF1bImNvbnRyaWJ1dGlvbnMiXQoKY29uc3QgbG93ZXJQYWNrYWdlID0gYXdhaXQgbG9hZFJlc291cmNlVHJlZSh7IHJvb3REaXI6IGxvd2VyUGFja2FnZVJvb3QgfSkKY29uc3QgaGlnaGVyUGFja2FnZSA9IGF3YWl0IGxvYWRSZXNvdXJjZVRyZWUoeyByb290RGlyOiBoaWdoZXJQYWNrYWdlUm9vdCB9KQpjb25zdCByZWdpc3RyeSA9IGNvbXBvc2VMYXllcmVkUmVzb3VyY2VSZWdpc3RyeSh7CiAgbGF5ZXJzOiBbCiAgICB7IGlkOiAibG93ZXIiLCB0cmVlOiBsb3dlclBhY2thZ2UgfSwKICAgIHsgaWQ6ICJoaWdoZXIiLCB0cmVlOiBoaWdoZXJQYWNrYWdlIH0sCiAgXSwKfSkKCmNvbnN0IGlkZW50aXRpZXMgPSByZXNvbHZlRWZmZWN0aXZlUmVzb3VyY2VDb250ZW50SWRlbnRpdGllcyh7CiAgcmVnaXN0cnksCiAgbGF5ZXJzOiBbCiAgICB7IGlkOiAibG93ZXIiLCB0cmVlOiBsb3dlclBhY2thZ2UgfSwKICAgIHsgaWQ6ICJoaWdoZXIiLCB0cmVlOiBoaWdoZXJQYWNrYWdlIH0sCiAgXSwKICBjb250cmlidXRpb25zLAp9KQpgYGAKCuekuuS+i+S4reeahCBgbG93ZXJQYWNrYWdlUm9vdGDjgIFgaGlnaGVyUGFja2FnZVJvb3RgIOS4jiBgY29udHJpYnV0aW9uc2Ag55SxIGNvbnN1bWVyIOWcqOiwg+eUqOi+ueeVjOe7keWumuOAgkhhbGZjb2RlIOS4jeWumuS5ieacuuWZqOWuieijheebruW9leaIliBsYXllciBwcmVjZWRlbmNlIHBvbGljee+8jOS5n+S4jeS8mumHjeWkjeivu+WPliBYTkwgYXV0aG9yaXR544CCcHJvamVjdG9yIOeahOe7k+aenOWPr+ebtOaOpeS8oOe7mSBzbmFwc2hvdCBidWlsZGVy77ybc25hcHNob3QgYnVpbGRlciDku43kuI3miafooYzpmpDol48gSU/jgIIKCiMjIFR5cGVkIGRlcGVuZGVuY3kgY2xvc3VyZQoK5L6d6LWW55qE5a2X5q616K+t5LmJ5bGe5LqOIEtpbmQgb3duZXLjgILlroPotJ/otKPmioroh6rlt7HnmoQgZGVzY3JpcHRvciBjb250cmFjdCDovazmiJAgYFJlc291cmNlRGVwZW5kZW5jeUVkZ2UgeyBmcm9tUmVzb3VyY2VJZCwgdG9SZXNvdXJjZUlkLCByZWxhdGlvbiwgZGVjbGFyZWRCeSB9YOOAgnJlc291cmNlLWNvcmUg5Y+q5qCh6aqMIGVuZHBvaW5044CB5LuO5pi+5byPIHJvb3RzIOayv+i/meS6m+i+uemBjeWOhuOAgeaLkue7neWPr+i+viBjeWNsZe+8jOW5tueUn+aIkOeos+WumuaOkuW6j+eahCBzbmFwc2hvdOOAggoKYGBgdHMKaW1wb3J0IHsKICBidWlsZFJlc291cmNlRGVwZW5kZW5jeVNuYXBzaG90LAogIHR5cGUgRWZmZWN0aXZlUmVzb3VyY2VSZWdpc3RyeSwKICB0eXBlIFJlc291cmNlRGVwZW5kZW5jeUVkZ2UsCiAgdHlwZSBSZXNvdXJjZUNvbnRlbnRJZGVudGl0eSwKfSBmcm9tICJoYWxmY29kZS1jb21waWxlci54bmwvcmVzb3VyY2UtY29yZSIKCmRlY2xhcmUgY29uc3QgcmVnaXN0cnk6IEVmZmVjdGl2ZVJlc291cmNlUmVnaXN0cnkKZGVjbGFyZSBjb25zdCB3b3JrZmxvd0lkZW50aXR5OiBSZXNvdXJjZUNvbnRlbnRJZGVudGl0eQpkZWNsYXJlIGNvbnN0IHNjaGVtYUlkZW50aXR5OiBSZXNvdXJjZUNvbnRlbnRJZGVudGl0eQoKY29uc3QgZWRnZXM6IHJlYWRvbmx5IFJlc291cmNlRGVwZW5kZW5jeUVkZ2VbXSA9IFt7CiAgZnJvbVJlc291cmNlSWQ6IHdvcmtmbG93SWRlbnRpdHkucmVzb3VyY2VJZCwKICB0b1Jlc291cmNlSWQ6IHNjaGVtYUlkZW50aXR5LnJlc291cmNlSWQsCiAgcmVsYXRpb246ICJ1c2VzLXNjaGVtYSIsCiAgZGVjbGFyZWRCeTogIldvcmtmbG93S2luZERlZmluaXRpb24iLAp9XQoKY29uc3Qgc25hcHNob3QgPSBidWlsZFJlc291cmNlRGVwZW5kZW5jeVNuYXBzaG90KHsKICByZWdpc3RyeSwKICByb290czogW3dvcmtmbG93SWRlbnRpdHkucmVzb3VyY2VJZF0sCiAgZWRnZXMsCiAgY29udGVudElkZW50aXRpZXM6IG5ldyBNYXAoWwogICAgW3dvcmtmbG93SWRlbnRpdHkucmVzb3VyY2VJZCwgd29ya2Zsb3dJZGVudGl0eV0sCiAgICBbc2NoZW1hSWRlbnRpdHkucmVzb3VyY2VJZCwgc2NoZW1hSWRlbnRpdHldLAogIF0pLAp9KQpgYGAKCuaZrumAmuaWh+acrOOAgWluc3RydWN0aW9uIOaIliBgUmVzb3VyY2VOb2RlYCBwcm9wZXJ0eSDljbPkvb/nnIvotbfmnaXlg4/otYTmupAgVVJJ77yM5Y+q6KaBIEtpbmQgb3duZXIg5rKh5pyJ5o+Q5L6bIHR5cGVkIGVkZ2XvvIzlsLHkuI3kvJrov5vlhaUgY2xvc3VyZeOAgnJlc291cmNlLWNvcmUg5LiN6YGN5Y6G5Lu75oSP5a2X56ym5Liy44CB5LiN5Yy56YWN6Ieq54S26K+t6KiA5YWz6ZSu6K+N77yM5Lmf5LiN54yc5rWL5byV55So5a2X5q6144CCCgojIyBEZXRlcm1pbmlzdGljIHJldmlzaW9ucwoKLSBjb250ZW50IHJldmlzaW9uIOimhuebliByZXNvdXJjZSBpZGVudGl0eeOAgWF1dGhvcml0eSBkaWdlc3Qg5LiO5oyJIGtleSDmjpLluo/nmoQgbWF0ZXJpYWwgZGlnZXN0c+OAggotIGBjb21wb3NpdGlvblJldmlzaW9uYCDopobnm5bmmL7lvI8gbGF5ZXIg6aG65bqP44CBZWZmZWN0aXZlIGlkZW50aXR5L3ByZXNlbmNl44CBc2hhZG93L3RvbWJzdG9uZSBmYWN0c+OAgemAieWumiBLaW5kRGVmaW5pdGlvbiDnmoQgYXV0aG9yaXR5IGByZXNvdXJjZUlkYC/lhbzlrrkgY29udHJhY3Qg5LiOIGNhbm9uaWNhbCBgZG9jdW1lbnRVcmkvbG9naWNhbFBhdGhgIHByb3ZlbmFuY2XvvJtgRWZmZWN0aXZlUmVzb3VyY2VSZWdpc3RyeS5yZXZpc2lvbmAg5piv5a6D55qE57K+56Gu5YW85a655Yir5ZCN44CCUmVzb3VyY2VSZWNvcmQgZGVzY3JpcHRvci9ub2RlL21ldGFkYXRhIGJ5dGVzIOS4jei/m+WFpeivpeaRmOimge+8jOiAjOeUseaYvuW8jyBjb250ZW50IGlkZW50aXR5IOi0n+i0o+OAguS4jeWQjCBkZWZpbml0aW9uIGlkZW50aXR5IOS4jeS8muiHquihjOaKiuebuOWQjCBub3JtYWxpemVkIEtpbmQgY29udHJhY3Qg5Y+Y5oiQ5Yay56qB44CCCi0gc25hcHNob3Qg55qEIGByZWdpc3RyeVJldmlzaW9uYCDopobnm5YgYGNvbXBvc2l0aW9uUmV2aXNpb25gIOS4juWFqOmDqCBlZmZlY3RpdmUgcmVzb3VyY2Ug55qE5bey6aqM6K+BIGNvbnRlbnQgcmV2aXNpb25z77yM5YyF5ous5b2T5YmNIHJvb3RzIOS4jeWPr+i+vueahOi1hOa6kOOAggotIGBzbmFwc2hvdFJldmlzaW9uYCDopobnm5bmmL7lvI8gcm9vdCDpobrluo/jgIHlj6/ovr7otYTmupAgY29udGVudCByZXZpc2lvbnPjgIHlj4LkuI7pl63ljIXnmoQgdHlwZWQgZWRnZXMg5LiOIGByZWdpc3RyeVJldmlzaW9uYOOAggotIHJldmlzaW9ucyDkvb/nlKjluKbnrpfms5XliY3nvIDnmoQgU0hBLTI1NiDlvaLlvI/vvJvpgLvovpEgcHJvdmVuYW5jZSDlnKggcHJvamVjdGlvbiDkuK3kv53nlZnvvIzmnLrlmajnu53lr7not6/lvoTkuI3lvpfov5vlhaXmkZjopoHjgIIKLSBjYW5vbmljYWwgb2JqZWN0IGtleeOAgXJlc291cmNl44CBa2luZOOAgWVkZ2Ug5LiOIGNvbnRyaWJ1dGlvbiDmjpLluo/lm7rlrprkvb/nlKggRUNNQVNjcmlwdCBVVEYtMTYgY29kZS11bml0IOmhuuW6j++8jOS4jeS+nei1liBsb2NhbGXjgIFJQ1XjgIHmlofku7bmnprkuL7miJYgTWFwIOaPkuWFpemhuuW6j+OAggoK57y65aSxIGVuZHBvaW5044CB57y65aSxIGNvbnRlbnQgaWRlbnRpdHnjgIFpZGVudGl0eS1raW5kL0tpbmREZWZpbml0aW9uIGNvbmZsaWN044CB55+b55u+IGRpZ2VzdCDmiJYgZGVwZW5kZW5jeSBjeWNsZSDpg73kvJogZmFpbCBjbG9zZWTvvJvosIPnlKjmlrnkuI3kvJrmlLbliLDnnIvkvLzlrozmlbTnmoQgcGFydGlhbCBzbmFwc2hvdOOAggo="
221
+ },
222
+ {
223
+ "skillFqn": "Halfcode.ResourceDsl.Skill.System",
224
+ "skillApiVersion": "halfcode.resources/v1",
225
+ "skillVersion": "1.0.0",
226
+ "capsuleRelativePath": "references/resource-dsl/skill-capsules.md",
227
+ "targetRelativePath": "sys-halfcode-resource-dsl/references/resource-dsl/skill-capsules.md",
228
+ "contentDigest": "sha256:ceaa07761ec5405716dc1b2fea1e5f9553c59c9404da0860b23698610c1c4144",
229
+ "contentBase64": "IyBza2lsbC1jYXBzdWxlcwoKPGZxbj5IYWxmY29kZS5SZXNvdXJjZURzbC5XaWtpLnNraWxsLWNhcHN1bGVzPC9mcW4+CjxraW5kPldpa2lQYWdlPC9raW5kPgo8ZGVzY3JpcHRpb24+U2tpbGxDYXBzdWxlIGRlcGVuZGVuY2llcywgZGV0ZXJtaW5pc3RpYyBwbGFucyBhbmQgYXRvbWljIGRpc3RyaWJ1dGlvbi48L2Rlc2NyaXB0aW9uPgoKIyBTa2lsbENhcHN1bGUgRGVwZW5kZW5jaWVzIEFuZCBEaXN0cmlidXRpb24KCiMjIElkZW50aXR5IGF1dGhvcml0eQoK5paw55qEIGBTa2lsbENhcHN1bGVgIGRlc2NyaXB0b3Ig55SxIFhOTCDmoLnoioLngrnni6zljaAgRlFO44CBY29uc3VtZXItZmFjaW5nIGBuYW1lYOOAgWBhcGlWZXJzaW9uYCDkuI4gYHZlcnNpb25g44CCYFNLSUxMLm1ldGFkYXRhLnlhbWxgIOWPquS/neWtmCB0aXRsZS9kZXNjcmlwdGlvbiDnrYnlkYjnjrDlrZfmrrXvvIzkuI3ph43lpI0gbmFtZS92ZXJzaW9u77ybYXNzZW1ibHkg5Lya5oqKIGNhbm9uaWNhbCBYTkwgbmFtZS92ZXJzaW9uIOaKleW9see7meaooeadv+OAguiLpSBkZXNjcmlwdG9yIOW3suWjsOaYjiBgbmFtZWAg6ICMIFlBTUwg5LuN6YeN5aSN6K+l5a2X5q6177yMYXNzZW1ibHkg5ZyoIGNvbXBpbGVyIOWGmeWFpeWJjeS7pSBgU0tJTExfQ0FQU1VMRV9OQU1FX0RVUExJQ0FURWAg5aSx6LSl44CC5Y6G5Y+yIGRlc2NyaXB0b3Ig5pyq5aOw5piOIFhOTCBuYW1lIOaXtu+8jOaXouaciSBZQU1MIG5hbWUg5LiOIEZRTiDlsL7mrrUgZmFsbGJhY2sg57un57ut5YW85a6577yb5paw6LWE5rqQ5LiN5b6X6YeH55So6K+l5YW85a656Lev5b6E44CCCgpYTkwgYHZlcnNpb25gIOS5n+aYryBjYXBzdWxlIGlkZW50aXR5IOS4jiBkZXBlbmRlbmN5IGJpbmRpbmcg55qE5ZSv5LiAIHZlcnNpb24gYXV0aG9yaXR544CC5Y6G5Y+yIFlBTUwg6Iul5LuN5bimIGB2ZXJzaW9uYO+8jOW/hemhu+S4jiBYTkwg5Lil5qC855u4562J77yM5ZCm5YiZIGFzc2VtYmx5IOS7pSBgU0tJTExfQ0FQU1VMRV9WRVJTSU9OX0NPTkZMSUNUYCDlpLHotKXjgIIKCmBgYHhubAo8U2tpbGxDYXBzdWxlICNleGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5za2lsbC5hdXRob3JpbmcKICBhcGlWZXJzaW9uPSJoYWxmY29kZS5yZXNvdXJjZXMvdjEiCiAgdmVyc2lvbj0iMS4wLjAiIHsKICBuYW1lID0gImV4YW1wbGUtcmVzb3VyY2UtYXV0aG9yaW5nIgogIGRlc2NyaXB0aW9uID0gIkdlbmVyaWMgcmVzb3VyY2UgYXV0aG9yaW5nIG9wZXJhdGlvbnMuIgp9ICgKICA8U2tpbGxNZXRhZGF0YSB7IGhyZWYgPSAidmZzOi8vLi9TS0lMTC5tZXRhZGF0YS55YW1sIiBmb3JtYXQgPSAieWFtbCIgfT4KICA8VGVtcGxhdGUgeyBocmVmID0gInZmczovLy4vU0tJTEwudGVtcGxhdGUuZWpzIiBmb3JtYXQgPSAiZWpzIiB9PgopPgpgYGAKCuWvueW6lCBZQU1MIOWPquS/neWtmOWRiOeOsOWtl+aute+8mgoKYGBgeWFtbAp0aXRsZTogRXhhbXBsZSBSZXNvdXJjZSBBdXRob3JpbmcKZGVzY3JpcHRpb246IEdlbmVyaWMgcmVzb3VyY2UgYXV0aG9yaW5nIG9wZXJhdGlvbnMuCmBgYAoKIyMgYFNraWxsRGVwZW5kZW5jaWVzYCDkuI4gYEluY2x1ZGVzYAoK5Lik56eN5YWz57O75LiN5Y+v5LqS5o2i77yM5Lmf5LiN5YGa5ZCN56ew5oiW5paH5pys5o6o5pat77yaCgotIGBTa2lsbERlcGVuZGVuY2llcy9Ta2lsbERlcGVuZGVuY3lgIOWjsOaYjuWQjOS4gOS4qiBgQXBwbGljYXRpb25Bc3NlbWJseS5ieUZxbmAgcmVzb3VyY2UgdW5pdmVyc2Ug5Lit55qEIHNpYmxpbmcgYFNraWxsQ2Fwc3VsZWDjgIJgcmVmYCDlv4XpobvmmK8gYHJlc291cmNlOi8vPEZRTj5g77yM55uu5qCHIGtpbmQg5b+F6aG75pivIGBTa2lsbENhcHN1bGVg77yMYHZlcnNpb25gIOaYr+W/heWhq+eahOeyvuehriBiaW5kaW5n77yb5b2T5YmN54mI5pys5LiN6Kej6YeKIHNlbXZlciByYW5nZeOAggotIGBJbmNsdWRlcy9JbmNsdWRlYCDpgInmi6nopoHnvJblhaXlvZPliY0gY2Fwc3VsZSDnmoQgRnVuY3Rpb27jgIFQcm9tcHRGcmFnbWVudCDnrYnmma7pgJrotYTmupDjgILljbPkvr/kuIDkuKogSW5jbHVkZSDlhpnkuoYgYGtpbmQgPSAiU2tpbGxDYXBzdWxlImDvvIxwbGFubmVyIOS5n+S4jeS8muaKiuWug+aPkOWNh+S4uiBzaWJsaW5nIGRlcGVuZGVuY3njgIIKCmBgYHhubAo8U2tpbGxEZXBlbmRlbmNpZXMgWwogIDxTa2lsbERlcGVuZGVuY3kgewogICAgcmVmID0gInJlc291cmNlOi8vZXhhbXBsZS5yZXNvdXJjZV9saWZlY3ljbGUuc2tpbGwucmVzb3VyY2VfZHNsIgogICAgdmVyc2lvbiA9ICIxLjAuMCIKICB9PgpdPgo8SW5jbHVkZXMgWwogIDxJbmNsdWRlIHsKICAgIGtpbmQgPSAiUHJvbXB0RnJhZ21lbnQiCiAgICByZWYgPSAicmVzb3VyY2U6Ly9leGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5wcm9tcHQuYXV0aG9yaW5nX3ByZWx1ZGUiCiAgfT4KXT4KYGBgCgrnvLrlpLHnm67moIfjgIHplJnor68ga2luZOOAgemHjeWkjSBkZXBlbmRlbmN544CB57K+56Gu54mI5pys5LiN5Yy56YWN5ZKMIGN5Y2xlIOmDveS8miBmYWlsIGNsb3NlZOOAguS+nei1luino+aekOWPquivu+WPluaXouaciSBhcHBsaWNhdGlvbiBhc3NlbWJsee+8jOS4jeWIm+W7uuesrOS6jOS7vSBjYXRhbG9nIOaIliBzY2FubmVy44CCCgojIyDlm5sgU2tpbGwgY2Fub25pY2FsIHRvcG9sb2d5Cgrop4TojIPnpLrkvovkvb/nlKjkuI7lhbfkvZPkuqflk4Hml6DlhbPnmoTlm5vkuKogU2tpbGzvvJoKCmBgYHRleHQKcmVzb3VyY2UgRFNMIC0+IGF1dGhvcmluZyAtPiBkZXZvcHMvcm9vdAogICAgICAgICAgICAgICAgICAgICAgICAgcnVuIC0+IGRldm9wcy9yb290CmBgYAoKLSBgZGV2b3BzL3Jvb3RgIOaYvuW8j+S+nei1liBgYXV0aG9yaW5nYCDkuI4gYHJ1bmDvvJsKLSBgYXV0aG9yaW5nYCDmmL7lvI/kvp3otZblhbHkuqsgYHJlc291cmNlIERTTGDvvJsKLSBgcnVuYCDkuI4gYHJlc291cmNlIERTTGAg5rKh5pyJIHNpYmxpbmcgZGVwZW5kZW5jeeOAggoK5a6M5pW0IGRlc2NyaXB0b3Ig5YiG5Yir5L2N5LqOIFtza2lsbC1jYXBzdWxlLWRldm9wcy54bmxdKGV4YW1wbGVzL3NraWxsLWNhcHN1bGUtZGV2b3BzLnhubCnjgIFbc2tpbGwtY2Fwc3VsZS1hdXRob3JpbmcueG5sXShleGFtcGxlcy9za2lsbC1jYXBzdWxlLWF1dGhvcmluZy54bmwp44CBW3NraWxsLWNhcHN1bGUtcnVuLnhubF0oZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1ydW4ueG5sKSDlkowgW3NraWxsLWNhcHN1bGUtcmVzb3VyY2UtZHNsLnhubF0oZXhhbXBsZXMvc2tpbGwtY2Fwc3VsZS1yZXNvdXJjZS1kc2wueG5sKeOAguWPr+WKoOi9veOAgeWPr+inhOWIkueahCBidW5kbGUgZml4dHVyZSDkvY3kuo4gYGFwcHMvZGVtby1yZXNvdXJjZS13b3JrZmxvdy1hdXRob3JpbmcvcmVzb3VyY2VzLXhubC9Ta2lsbENhcHN1bGVzL1RvcG9sb2d5KmDjgILmiYDmnIkgY29uc3VtZXIgbmFtZSDkuI4gdmVyc2lvbiDpg73nlLEgWE5MIOWjsOaYju+8jGRlcGVuZGVuY3kg57uR5a6aIGAxLjAuMGDvvIxZQU1MIOS4jemHjeWkjSBpZGVudGl0eSDlrZfmrrXjgIIKCiMjIERldGVybWluaXN0aWMgcGxhbiDkuI4gYXRvbWljIGFwcGx5CgpgcGxhblNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvbmAg5LiOIGBhcHBseVNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvblBsYW5gIOaYr+S4pOS4queLrOeri+mYtuaute+8mgoKMS4gcGxhbm5lciDku47mmL7lvI8gcm9vdHMg6Kej5p6Q5Lyg6YCS6Zet5YyF77yM5oyJ5Zu65a6aIGNvZGUtdW5pdCDpobrluo/nlJ/miJAgZGVwZW5kZW5jeS1maXJzdCB0b3BvbG9nee+8mwoyLiBwbGFubmVyIOivu+WPluaJgOaciSBnZW5lcmF0ZWQvbWFwcGVkIGJ5dGVz77yM5bm25bCGIGNhbm9uaWNhbCBieXRlcyDkv53lrZjkuLrkuI3lj6/lj5jjgIHlj6/luo/liJfljJbnmoQgYGNvbnRlbnRCYXNlNjRgIGF1dGhvcml0ee+8m+WFvOWuueWtl+autSBgY29udGVudGAg5q+P5qyh6K+75Y+W5Y+q6L+U5Zue5paw55qEIGRlZmVuc2l2ZSBjb3B577ybCjMuIHBsYW5uZXIg5a+55omA5pyJ5Lya6L+b5YWlIFNLSUxML3JlZmVyZW5jZS9jYWxsYWJsZSBieXRlcyDnmoTotYTmupDpm4blkIjmjIkgRlFOIOS9v+eUqOWbuuWumiBVVEYtMTYgY29kZS11bml0IGNvbXBhcmF0b3Ig5o6S5bqP77yM5bm25a+55a6M5pW0IGNsb3N1cmUg5YGa6YeN5aSNIG91dHB1dCBuYW1l44CB55u45ZCMIHRhcmdldCDkuI7mlofku7Yv55uu5b2VIHByZWZpeCBjb2xsaXNpb24gcHJlZmxpZ2h077ybCjQuIHBsYW4g5L+d5a2YIHZlcnNpb25lZCBjb250ZW50L2NhcHN1bGUvY2xvc3VyZSBkaWdlc3TvvIzkuJTkuI3lkKvnu53lr7not6/lvoTjgIHml7bpl7TmiLPmiJblh73mlbDlr7nosaHvvJtwbGFuIOaIkOWKn+aIluWksei0pemDveS4jeWGmeebruaghyByb29077ybCjUuIGFwcGxpZXIg5YWIIGZhaWwtY2xvc2VkIOagoemqjOmdnuepuiByb290c+OAgXJvb3Qg5Y+v6L6+55qE5a6M5pW06Zet5YyF44CBY2Fub25pY2FsIGJhc2U2NCDkuI7lhajpg6ggZGlnZXN077yM5YaN5ZyoIGNhbGxlciDmj5DkvpvnmoQgYG91dHB1dFJvb3RgIOWQjOeItuebruW9lSBzdGFnZeOAgXJlYWRiYWNr77yM5LulIGJhY2t1cC9yZW5hbWUvcm9sbGJhY2sg5oiQ57uE5YiH5o2i44CCCgrmr4/kuKogcGxhbm5lZCBjYXBzdWxlIOi/mOW/hemhu+WMheWQq+WbuuWumui3r+W+hCBgcmVmZXJlbmNlcy8uaGFsZmNvZGUvcHJvdmVuYW5jZS5qc29uYOOAguivpeaWh+S7tueUsSBjb21waWxlciDnlJ/miJDvvIzkuI3nlLHmqKHmnb/nu7TmiqTvvJvlroPorrDlvZUgYGhhbGZjb2RlLnNraWxsLXByb3ZlbmFuY2UvdjFgIGZvcm1hdOOAgWBoYWxmY29kZS5za2lsbC1kaXN0cmlidXRpb24vdjFgIGdlbmVyYXRvcuOAgVNraWxsQ2Fwc3VsZSBYTkwg55qEIEZRTi9hcGlWZXJzaW9uL3ZlcnNpb27vvIzku6Xlj4rpmaToh6rouqvku6XlpJblhajpg6ggcGF5bG9hZCBmaWxlcyDnmoQgY2Fub25pY2FsIHBhdGgvY29udGVudCBkaWdlc3TjgIJtYW5pZmVzdCDoh6rouqvkvZzkuLrmma7pgJogcGxhbm5lZCBmaWxlIOi/m+WFpSBjYXBzdWxlL2Nsb3N1cmUgZGlnZXN077yM5Zug5q2k5LiN6ZyA6KaB6Ieq5byV55So5pGY6KaB44CCYXBwbGllciDkvJrlnKjku7vkvZXnm67moIflhpnlhaXliY3ku44gcGxhbiDph43lu7rlubYgZXhhY3Qg5qCh6aqM6L+Z5LqbIGZhY3Rz44CCCgpgYGB0cwpjb25zdCBwbGFuID0gYXdhaXQgcGxhblNraWxsQ2Fwc3VsZURpc3RyaWJ1dGlvbih7CiAgYXNzZW1ibHksCiAgcm9vdFNraWxsRnFuczogWyJleGFtcGxlLnJlc291cmNlX2xpZmVjeWNsZS5za2lsbC5kZXZvcHMiXSwKfSkKCmF3YWl0IGFwcGx5U2tpbGxDYXBzdWxlRGlzdHJpYnV0aW9uUGxhbihwbGFuLCB7IG91dHB1dFJvb3QgfSkKYGBgCgpIYWxmY29kZSDlj6rmi6XmnInpgJrnlKggcmVzb3VyY2UgZGVwZW5kZW5jeeOAgXBsYW4g5LiOIGF0b21pYyBhcHBseSBjb250cmFjdO+8m+ebruaghyByb29044CB5a6J6KOF5L2N572u44CB55Sf5ZG95ZGo5pyf6Zi25q615ZKM5Y2H57qn562W55Wl6YO955SxIGNhbGxlci9ob3N0IOWGs+WumuOAgmNvbXBpbGVyIOS4jeaOqOWvvOi/meS6myBwb2xpY3nvvIzkuZ/kuI3miorlroPku6zlhpnov5votYTmupAgYXV0aG9yaXR544CCCgojIyBDb25zdW1lciBSZXNvdXJjZSBEU0wgU2tpbGwKCmBkb2NzL3Jlc291cmNlLWRzbC9tYW5pZmVzdC54bmxgIOWwhuacrOebruW9leeahCBjYW5vbmljYWwg5paH5qGj55m76K6w5Li6IFJlc291cmNlUGFja2FnZS9XaWtpUGFnZSByZXNvdXJjZXPvvIzlubblo7DmmI4gYEhhbGZjb2RlLlJlc291cmNlRHNsLlNraWxsLlN5c3RlbWDjgIJjb21waWxlciDku47ov5nkupvljp/lp4vmlofmoaPnlJ/miJAgYHN5cy1oYWxmY29kZS1yZXNvdXJjZS1kc2xAMS4wLjBgIOeahCByZWZlcmVuY2Vz77ybYFNLSUxMLm1kYCDlj6rmj5DkvpvmuJDov5vliqDovb3pobrluo/vvIzkuI3lpI3liLbop4TojIPmraPmlofvvIzkuZ/kuI3ljIXlkKvku5PlupPnu7TmiqTlkb3ku6TmiJYgaG9zdCDlronoo4Xmk43kvZzjgILku5PlupPnu7TmiqTogIXnu6fnu63kvb/nlKggYHNraWxscy9mcmFtZXdvcmstcmVzb3VyY2UtZHNsYO+8jOS4pOiAheiBjOi0o+S4jeWPr+S6kuaNouOAggoK5pei5pyJIGBjb21waWxlU2tpbGxDYXBzdWxlYOOAgWBjb21waWxlUmVzb3VyY2VTa2lsbENhcHN1bGVgIOS4jiBgU2tpbGxDYXBzdWxlUGxhbmAg5L+d5oyB5YW85a6544CC5pawIHBsYW5uZXIvYXBwbGllciDlkoznsbvlnovku44gcGFja2FnZSByb290IOWPiiBgaGFsZmNvZGUtY29tcGlsZXIueG5sL3NraWxsLWNhcHN1bGVgIGFkZGl0aXZlIOWvvOWHuuOAggo="
230
+ }
231
+ ],
232
+ "capsuleDigest": "sha256:b247b8c787fe102900d24355b161159e259f5d3d3adb33a19b3772eff9808401"
233
+ }
234
+ ],
235
+ "closureDigest": "sha256:d393bdadf05cfa13ba0a497495136aaec8eed7499e3fbbd087985f360045bafc"
236
+ }
237
+
238
+ function hydrateFile(file) {
239
+ const contentBase64 = file.contentBase64
240
+ return {
241
+ ...file,
242
+ get content() { return new Uint8Array(Buffer.from(contentBase64, "base64")) },
243
+ }
244
+ }
245
+
246
+ const capsules = projection.capsules.map((capsule) => ({
247
+ ...capsule,
248
+ files: capsule.files.map(hydrateFile),
249
+ }))
250
+ const plan = {
251
+ ...projection,
252
+ capsules,
253
+ files: capsules.flatMap((capsule) => capsule.files)
254
+ .sort((left, right) => left.targetRelativePath < right.targetRelativePath ? -1 : left.targetRelativePath > right.targetRelativePath ? 1 : 0),
255
+ }
256
+
257
+ deepFreeze(plan)
258
+ export default plan
259
+
260
+ function deepFreeze(value) {
261
+ if (!value || typeof value !== "object" || Object.isFrozen(value)) return value
262
+ if (ArrayBuffer.isView(value)) return value
263
+ for (const descriptor of Object.values(Object.getOwnPropertyDescriptors(value))) {
264
+ if (Object.prototype.hasOwnProperty.call(descriptor, "value")) deepFreeze(descriptor.value)
265
+ }
266
+ return Object.freeze(value)
267
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "halfcode-compiler.xnl",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Compile XNL-described applications into runtime-ready skill capsules.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -52,7 +52,7 @@
52
52
  }
53
53
  },
54
54
  "scripts": {
55
- "build": "tsdown",
55
+ "build": "tsdown && bun run tools/build-resource-dsl-system-skill.ts",
56
56
  "check": "bun run build && bun run tools/verify-package.ts"
57
57
  },
58
58
  "dependencies": {
@@ -1,81 +0,0 @@
1
- //#region ../resource-core/src/index.d.ts
2
- type SourceShape = "single-file" | "directory" | "manifest";
3
- interface ResourceIdentity {
4
- kind: string;
5
- fqn?: string;
6
- name?: string;
7
- }
8
- interface ResourceDescriptor extends ResourceIdentity {
9
- description?: string;
10
- }
11
- interface ResourceMetadata {
12
- apiVersion: string;
13
- lifecycle?: string;
14
- version?: string;
15
- }
16
- type ResourceScalar = string | number | boolean | null;
17
- interface ResourceValueList extends ReadonlyArray<ResourceValue> {}
18
- interface ResourceValueMap extends Readonly<Record<string, ResourceValue>> {}
19
- type ResourceValue = ResourceScalar | ResourceNode | ResourceValueList | ResourceValueMap;
20
- interface ResourceNode {
21
- readonly tag: string;
22
- readonly resourceId?: string;
23
- readonly metadata: Readonly<Record<string, ResourceValue>>;
24
- readonly properties: Readonly<Record<string, ResourceValue>>;
25
- readonly body: readonly ResourceValue[];
26
- readonly subdomains: Readonly<Record<string, ResourceNode>>;
27
- readonly text?: string;
28
- }
29
- interface ResourceRecord extends ResourceDescriptor {
30
- resourceId: string;
31
- metadata: ResourceMetadata;
32
- sourceShape: SourceShape;
33
- logicalPath: string;
34
- documentUri: string;
35
- format: "xnl";
36
- node: ResourceNode;
37
- }
38
- interface ResourceKindContract {
39
- resourceKind: string;
40
- sourceShapes: readonly SourceShape[];
41
- currentApiVersion: string;
42
- supportedApiVersions: readonly string[];
43
- documentCardinality?: "one" | "many";
44
- }
45
- interface RegisteredKindDefinition extends ResourceKindContract {
46
- resourceId: string;
47
- requiredFiles: readonly string[];
48
- documentCardinality: "one" | "many";
49
- documentUri: string;
50
- }
51
- interface ResourceRegistry {
52
- readonly byKind: ReadonlyMap<string, readonly ResourceRecord[]>;
53
- readonly kindDefinitions: ReadonlyMap<string, RegisteredKindDefinition>;
54
- }
55
- interface ResourceTree {
56
- manifest: ResourceRecord;
57
- registry: ResourceRegistry;
58
- diagnostics: readonly ResourceDiagnostic[];
59
- }
60
- interface ResourceDiagnostic {
61
- code: string;
62
- location: string;
63
- message: string;
64
- hint?: string;
65
- }
66
- interface LoadResourceTreeOptions {
67
- rootDir: string;
68
- manifestPath?: string;
69
- }
70
- interface ResourceTreeBuildResult {
71
- diagnostics: ResourceDiagnostic[];
72
- tree?: ResourceTree;
73
- }
74
- declare class ResourceValidationError extends Error {
75
- readonly diagnostics: readonly ResourceDiagnostic[];
76
- constructor(diagnostics: readonly ResourceDiagnostic[]);
77
- }
78
- declare function loadResourceTree(options: LoadResourceTreeOptions): Promise<ResourceTree>;
79
- declare function validateResourceTree(options: LoadResourceTreeOptions): Promise<ResourceDiagnostic[]>;
80
- //#endregion
81
- export { ResourceValueMap as _, ResourceIdentity as a, validateResourceTree as b, ResourceNode as c, ResourceScalar as d, ResourceTree as f, ResourceValueList as g, ResourceValue as h, ResourceDiagnostic as i, ResourceRecord as l, ResourceValidationError as m, RegisteredKindDefinition as n, ResourceKindContract as o, ResourceTreeBuildResult as p, ResourceDescriptor as r, ResourceMetadata as s, LoadResourceTreeOptions as t, ResourceRegistry as u, SourceShape as v, loadResourceTree as y };
@@ -1,38 +0,0 @@
1
- import { t as ApplicationAssembly } from "./index-FdimP_SL.js";
2
- import { t as ResourceRegistry } from "./index-DKwcVwK6.js";
3
- //#region ../compiler-skill/src/index.d.ts
4
- interface SkillDescriptor {
5
- name: string;
6
- description: string;
7
- instructions?: string;
8
- }
9
- interface SkillReference {
10
- path: string;
11
- content: string;
12
- }
13
- interface CompileSkillCapsuleInput {
14
- skill: SkillDescriptor;
15
- registry?: ResourceRegistry;
16
- references?: readonly SkillReference[];
17
- outputDir: string;
18
- }
19
- interface SkillCapsulePlan {
20
- skillName: string;
21
- outputRoot: string;
22
- files: readonly string[];
23
- }
24
- interface CompileResourceSkillCapsuleInput {
25
- assembly: ApplicationAssembly;
26
- skillFqn: string;
27
- outputDir: string;
28
- schemas?: ReadonlyMap<string, unknown> | Record<string, unknown>;
29
- }
30
- declare function compileSkillCapsule(input: CompileSkillCapsuleInput): Promise<SkillCapsulePlan>;
31
- declare function compileResourceSkillCapsule(input: CompileResourceSkillCapsuleInput): Promise<SkillCapsulePlan>;
32
- declare const compilerSkillPackage: {
33
- readonly role: "framework";
34
- readonly area: "compiler-skill";
35
- readonly owns: "standard Skill capsule projection";
36
- };
37
- //#endregion
38
- export { SkillReference as a, compilerSkillPackage as c, SkillDescriptor as i, CompileSkillCapsuleInput as n, compileResourceSkillCapsule as o, SkillCapsulePlan as r, compileSkillCapsule as s, CompileResourceSkillCapsuleInput as t };