@mimir-labs/core 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/README.md +5 -0
  2. package/dist/implementation/authoring/knowledge-loader.d.ts +10 -0
  3. package/dist/implementation/authoring/knowledge-loader.js +46 -0
  4. package/dist/implementation/authoring/knowledge-loader.js.map +1 -0
  5. package/dist/implementation/generation/generate-service.js +7 -1
  6. package/dist/implementation/generation/generate-service.js.map +1 -1
  7. package/dist/implementation/generation/provenance/provenance-builder.d.ts +1 -0
  8. package/dist/implementation/generation/provenance/provenance-builder.js +8 -0
  9. package/dist/implementation/generation/provenance/provenance-builder.js.map +1 -1
  10. package/dist/implementation/generation/resource-builders/component-builder.d.ts +2 -1
  11. package/dist/implementation/generation/resource-builders/component-builder.js +24 -34
  12. package/dist/implementation/generation/resource-builders/component-builder.js.map +1 -1
  13. package/dist/implementation/io/fs.d.ts +1 -0
  14. package/dist/implementation/io/fs.js +14 -0
  15. package/dist/implementation/io/fs.js.map +1 -1
  16. package/dist/implementation/resource-identity.d.ts +1 -0
  17. package/dist/implementation/resource-identity.js +30 -0
  18. package/dist/implementation/resource-identity.js.map +1 -0
  19. package/dist/implementation/services/authoring-service.d.ts +13 -0
  20. package/dist/implementation/services/authoring-service.js +62 -0
  21. package/dist/implementation/services/authoring-service.js.map +1 -0
  22. package/dist/implementation/synchronization/context-generator.js +67 -2
  23. package/dist/implementation/synchronization/context-generator.js.map +1 -1
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.js +3 -1
  26. package/dist/index.js.map +1 -1
  27. package/package.json +4 -1
package/README.md CHANGED
@@ -2,4 +2,9 @@
2
2
 
3
3
  Core business logic and reusable services for the Mimir CLI.
4
4
 
5
+ Public workflows include discovery, authoring, generation, validation,
6
+ governance, context generation, synchronization, initialization, and doctor
7
+ assessment. Author Knowledge sources live under `aps/knowledge`; generated APS
8
+ artifacts remain under `dist/aps`.
9
+
5
10
  See extension guidance in [EXTENSIONS.md](./EXTENSIONS.md).
@@ -0,0 +1,10 @@
1
+ export type HumanKnowledge = {
2
+ description: string;
3
+ whenToUse: string[];
4
+ whenNotToUse: string[];
5
+ };
6
+ export type AuthoredKnowledge = {
7
+ knowledge: HumanKnowledge;
8
+ sourceRef: string;
9
+ };
10
+ export declare function loadComponentKnowledge(cwd: string, resourceId: string): Promise<AuthoredKnowledge | null>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadComponentKnowledge = loadComponentKnowledge;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const yaml_1 = require("yaml");
9
+ const fs_1 = require("../io/fs");
10
+ const json_1 = require("../io/json");
11
+ function readStringArray(value, field, sourceRef) {
12
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
13
+ throw new Error(`${sourceRef}: '${field}' must be an array of strings`);
14
+ }
15
+ return value;
16
+ }
17
+ async function loadComponentKnowledge(cwd, resourceId) {
18
+ const sourceRef = `aps/knowledge/components/${resourceId}.yaml`;
19
+ const filePath = node_path_1.default.join(cwd, "aps", "knowledge", "components", `${resourceId}.yaml`);
20
+ if (!(await (0, fs_1.fileExists)(filePath))) {
21
+ return null;
22
+ }
23
+ let value;
24
+ try {
25
+ value = (0, yaml_1.parse)(await (0, fs_1.readText)(filePath));
26
+ }
27
+ catch (error) {
28
+ const message = error instanceof Error ? error.message : String(error);
29
+ throw new Error(`Invalid author knowledge at ${sourceRef}: ${message}`);
30
+ }
31
+ if (!(0, json_1.isObject)(value)) {
32
+ throw new Error(`${sourceRef}: author knowledge must be a YAML object`);
33
+ }
34
+ if (typeof value.description !== "string") {
35
+ throw new Error(`${sourceRef}: 'description' must be a string`);
36
+ }
37
+ return {
38
+ knowledge: {
39
+ description: value.description,
40
+ whenToUse: readStringArray(value.whenToUse, "whenToUse", sourceRef),
41
+ whenNotToUse: readStringArray(value.whenNotToUse, "whenNotToUse", sourceRef)
42
+ },
43
+ sourceRef
44
+ };
45
+ }
46
+ //# sourceMappingURL=knowledge-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-loader.js","sourceRoot":"","sources":["../../../src/implementation/authoring/knowledge-loader.ts"],"names":[],"mappings":";;;;;AAwBA,wDAmCC;AA3DD,0DAA6B;AAC7B,+BAA6B;AAC7B,iCAAgD;AAChD,qCAAsC;AAatC,SAAS,eAAe,CAAC,KAAc,EAAE,KAAa,EAAE,SAAiB;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,MAAM,KAAK,+BAA+B,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,KAAiB,CAAC;AAC3B,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,GAAW,EACX,UAAkB;IAElB,MAAM,SAAS,GAAG,4BAA4B,UAAU,OAAO,CAAC;IAChE,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;IAExF,IAAI,CAAC,CAAC,MAAM,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAA,YAAK,EAAC,MAAM,IAAA,aAAQ,EAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,0CAA0C,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,kCAAkC,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,SAAS,EAAE;YACT,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;YACnE,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC;SAC7E;QACD,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -14,6 +14,8 @@ const storybook_extractor_1 = require("./extractors/storybook-extractor");
14
14
  const typescript_extractor_1 = require("./extractors/typescript-extractor");
15
15
  const component_builder_1 = require("./resource-builders/component-builder");
16
16
  const example_builder_1 = require("./resource-builders/example-builder");
17
+ const knowledge_loader_1 = require("../authoring/knowledge-loader");
18
+ const resource_identity_1 = require("../resource-identity");
17
19
  const APS_MANIFEST_RELATIVE_PATH = "./dist/aps/manifest.json";
18
20
  function hasHumanMetadata(component) {
19
21
  return component.description.trim() !== "" && component.whenToUse.length > 0 && component.whenNotToUse.length > 0;
@@ -82,7 +84,11 @@ async function generateApsFromEvidence(cwd, options = {}) {
82
84
  (0, storybook_extractor_1.extractStorybookFacts)(cwd),
83
85
  (0, readme_extractor_1.extractReadmeFacts)(cwd)
84
86
  ]);
85
- const components = typescriptComponents.map((component) => (0, component_builder_1.buildComponentResource)(component, storybookFacts, readmeFacts));
87
+ const components = await Promise.all(typescriptComponents.map(async (component) => {
88
+ const resourceId = (0, resource_identity_1.createComponentResourceId)(component.packageName, component.name);
89
+ const authored = await (0, knowledge_loader_1.loadComponentKnowledge)(cwd, resourceId);
90
+ return (0, component_builder_1.buildComponentResource)(component, storybookFacts, readmeFacts, authored);
91
+ }));
86
92
  const exampleResult = (0, example_builder_1.buildExamplesNotImplemented)();
87
93
  const output = {
88
94
  components,
@@ -1 +1 @@
1
- {"version":3,"file":"generate-service.js","sourceRoot":"","sources":["../../../src/implementation/generation/generate-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-service.js","sourceRoot":"","sources":["../../../src/implementation/generation/generate-service.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export declare function fromTypeScript(sourceRef: string): FieldEvidence;
3
3
  export declare function fromPackageJson(): FieldEvidence;
4
4
  export declare function fromStorybook(sourceRef: string): FieldEvidence;
5
5
  export declare function fromReadme(sourceRef: string): FieldEvidence;
6
+ export declare function fromHumanKnowledge(sourceRef: string): FieldEvidence;
6
7
  export declare function missingHumanSource(fieldName: string): FieldEvidence;
@@ -4,6 +4,7 @@ exports.fromTypeScript = fromTypeScript;
4
4
  exports.fromPackageJson = fromPackageJson;
5
5
  exports.fromStorybook = fromStorybook;
6
6
  exports.fromReadme = fromReadme;
7
+ exports.fromHumanKnowledge = fromHumanKnowledge;
7
8
  exports.missingHumanSource = missingHumanSource;
8
9
  function fromTypeScript(sourceRef) {
9
10
  return {
@@ -33,6 +34,13 @@ function fromReadme(sourceRef) {
33
34
  confidence: "medium"
34
35
  };
35
36
  }
37
+ function fromHumanKnowledge(sourceRef) {
38
+ return {
39
+ sourceType: "human",
40
+ sourceRef,
41
+ confidence: "high"
42
+ };
43
+ }
36
44
  function missingHumanSource(fieldName) {
37
45
  return {
38
46
  sourceType: "human",
@@ -1 +1 @@
1
- {"version":3,"file":"provenance-builder.js","sourceRoot":"","sources":["../../../../src/implementation/generation/provenance/provenance-builder.ts"],"names":[],"mappings":";;AAEA,wCAMC;AAED,0CAMC;AAED,sCAMC;AAED,gCAMC;AAED,gDAOC;AAvCD,SAAgB,cAAc,CAAC,SAAiB;IAC9C,OAAO;QACL,UAAU,EAAE,YAAY;QACxB,SAAS;QACT,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,SAAiB;IAC7C,OAAO;QACL,UAAU,EAAE,WAAW;QACvB,SAAS;QACT,UAAU,EAAE,QAAQ;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,SAAiB;IAC1C,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,SAAS;QACT,UAAU,EAAE,QAAQ;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,sCAAsC,SAAS,GAAG;KACzD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"provenance-builder.js","sourceRoot":"","sources":["../../../../src/implementation/generation/provenance/provenance-builder.ts"],"names":[],"mappings":";;AAEA,wCAMC;AAED,0CAMC;AAED,sCAMC;AAED,gCAMC;AAED,gDAMC;AAED,gDAOC;AA/CD,SAAgB,cAAc,CAAC,SAAiB;IAC9C,OAAO;QACL,UAAU,EAAE,YAAY;QACxB,SAAS;QACT,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,SAAiB;IAC7C,OAAO;QACL,UAAU,EAAE,WAAW;QACvB,SAAS;QACT,UAAU,EAAE,QAAQ;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,SAAiB;IAC1C,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,SAAS;QACT,UAAU,EAAE,QAAQ;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,SAAS;QACT,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,sCAAsC,SAAS,GAAG;KACzD,CAAC;AACJ,CAAC"}
@@ -1,2 +1,3 @@
1
+ import type { AuthoredKnowledge } from "../../authoring/knowledge-loader";
1
2
  import type { ExtractedComponentFact, GeneratedComponentResource, ReadmeFacts, StorybookFacts } from "../types";
2
- export declare function buildComponentResource(component: ExtractedComponentFact, storybook: StorybookFacts, readme: ReadmeFacts): GeneratedComponentResource;
3
+ export declare function buildComponentResource(component: ExtractedComponentFact, storybook: StorybookFacts, readme: ReadmeFacts, authored?: AuthoredKnowledge | null): GeneratedComponentResource;
@@ -2,32 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildComponentResource = buildComponentResource;
4
4
  const provenance_builder_1 = require("../provenance/provenance-builder");
5
- function sanitizeSegment(value) {
6
- return value
7
- .toLowerCase()
8
- .replace(/^@/, "")
9
- .replace(/[^a-z0-9]+/g, "")
10
- .trim();
11
- }
12
- function splitPackageName(packageName) {
13
- if (packageName.startsWith("@")) {
14
- const parts = packageName.split("/");
15
- const org = sanitizeSegment(parts[0] ?? "local");
16
- const pkg = sanitizeSegment(parts[1] ?? "package");
17
- return { org: org || "local", pkg: pkg || "package" };
18
- }
19
- return {
20
- org: "local",
21
- pkg: sanitizeSegment(packageName) || "package"
22
- };
23
- }
24
- function createDeterministicId(packageName, componentName) {
25
- const { org, pkg } = splitPackageName(packageName);
26
- const name = sanitizeSegment(componentName) || "component";
27
- return `${org}.${pkg}.component.${name}`;
28
- }
29
- function buildComponentResource(component, storybook, readme) {
30
- const description = readme.descriptionsByComponent[component.name] ?? "";
5
+ const resource_identity_1 = require("../../resource-identity");
6
+ function buildComponentResource(component, storybook, readme, authored = null) {
7
+ const authoredDescription = authored?.knowledge.description.trim() ?? "";
8
+ const description = authoredDescription || readme.descriptionsByComponent[component.name] || "";
9
+ const whenToUse = authored?.knowledge.whenToUse ?? [];
10
+ const whenNotToUse = authored?.knowledge.whenNotToUse ?? [];
31
11
  const variants = storybook.variantsByComponent[component.name] ?? [];
32
12
  const storyFiles = storybook.storyFilesByComponent[component.name] ?? [];
33
13
  const evidenceByField = {
@@ -36,9 +16,11 @@ function buildComponentResource(component, storybook, readme) {
36
16
  package: { evidence: [(0, provenance_builder_1.fromPackageJson)()] },
37
17
  import: { evidence: [(0, provenance_builder_1.fromTypeScript)(component.filePath)] },
38
18
  description: {
39
- evidence: description !== ""
40
- ? [(0, provenance_builder_1.fromReadme)("README.md")]
41
- : [(0, provenance_builder_1.missingHumanSource)("description")]
19
+ evidence: authoredDescription !== "" && authored
20
+ ? [(0, provenance_builder_1.fromHumanKnowledge)(authored.sourceRef)]
21
+ : description !== ""
22
+ ? [(0, provenance_builder_1.fromReadme)("README.md")]
23
+ : [(0, provenance_builder_1.missingHumanSource)("description")]
42
24
  },
43
25
  props: { evidence: [(0, provenance_builder_1.fromTypeScript)(component.filePath)] },
44
26
  variants: {
@@ -46,20 +28,28 @@ function buildComponentResource(component, storybook, readme) {
46
28
  ? storyFiles.map((file) => (0, provenance_builder_1.fromStorybook)(file))
47
29
  : [(0, provenance_builder_1.missingHumanSource)("variants")]
48
30
  },
49
- whenToUse: { evidence: [(0, provenance_builder_1.missingHumanSource)("whenToUse")] },
50
- whenNotToUse: { evidence: [(0, provenance_builder_1.missingHumanSource)("whenNotToUse")] }
31
+ whenToUse: {
32
+ evidence: whenToUse.length > 0 && authored
33
+ ? [(0, provenance_builder_1.fromHumanKnowledge)(authored.sourceRef)]
34
+ : [(0, provenance_builder_1.missingHumanSource)("whenToUse")]
35
+ },
36
+ whenNotToUse: {
37
+ evidence: whenNotToUse.length > 0 && authored
38
+ ? [(0, provenance_builder_1.fromHumanKnowledge)(authored.sourceRef)]
39
+ : [(0, provenance_builder_1.missingHumanSource)("whenNotToUse")]
40
+ }
51
41
  };
52
42
  return {
53
43
  type: "component",
54
- id: createDeterministicId(component.packageName, component.name),
44
+ id: (0, resource_identity_1.createComponentResourceId)(component.packageName, component.name),
55
45
  name: component.name,
56
46
  package: component.packageName,
57
47
  import: component.importName,
58
48
  description,
59
49
  props: component.props,
60
50
  variants,
61
- whenToUse: [],
62
- whenNotToUse: [],
51
+ whenToUse,
52
+ whenNotToUse,
63
53
  governance: {
64
54
  fields: evidenceByField
65
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"component-builder.js","sourceRoot":"","sources":["../../../../src/implementation/generation/resource-builders/component-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component-builder.js","sourceRoot":"","sources":["../../../../src/implementation/generation/resource-builders/component-builder.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ export declare function fileExists(filePath: string): Promise<boolean>;
2
2
  export declare function ensureDir(dirPath: string): Promise<void>;
3
3
  export declare function readText(filePath: string): Promise<string>;
4
4
  export declare function writeText(filePath: string, content: string): Promise<void>;
5
+ export declare function writeTextIfMissing(filePath: string, content: string): Promise<boolean>;
5
6
  export declare function readJson<T>(filePath: string): Promise<T>;
6
7
  export declare function writeJson(filePath: string, data: unknown): Promise<void>;
@@ -7,6 +7,7 @@ exports.fileExists = fileExists;
7
7
  exports.ensureDir = ensureDir;
8
8
  exports.readText = readText;
9
9
  exports.writeText = writeText;
10
+ exports.writeTextIfMissing = writeTextIfMissing;
10
11
  exports.readJson = readJson;
11
12
  exports.writeJson = writeJson;
12
13
  const promises_1 = require("node:fs/promises");
@@ -30,6 +31,19 @@ async function writeText(filePath, content) {
30
31
  await ensureDir(node_path_1.default.dirname(filePath));
31
32
  await (0, promises_1.writeFile)(filePath, content, "utf8");
32
33
  }
34
+ async function writeTextIfMissing(filePath, content) {
35
+ await ensureDir(node_path_1.default.dirname(filePath));
36
+ try {
37
+ await (0, promises_1.writeFile)(filePath, content, { encoding: "utf8", flag: "wx" });
38
+ return true;
39
+ }
40
+ catch (error) {
41
+ if (error.code === "EEXIST") {
42
+ return false;
43
+ }
44
+ throw error;
45
+ }
46
+ }
33
47
  async function readJson(filePath) {
34
48
  const raw = await readText(filePath);
35
49
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/implementation/io/fs.ts"],"names":[],"mappings":";;;;;AAGA,gCAOC;AAED,8BAEC;AAED,4BAEC;AAED,8BAGC;AAED,4BASC;AAED,8BAGC;AAvCD,+CAAsE;AACtE,0DAA6B;AAEtB,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,IAAA,iBAAM,EAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,IAAA,gBAAK,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,OAAO,IAAA,mBAAQ,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAI,QAAgB;IAChD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAa;IAC7D,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACxD,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/implementation/io/fs.ts"],"names":[],"mappings":";;;;;AAGA,gCAOC;AAED,8BAEC;AAED,4BAEC;AAED,8BAGC;AAED,gDAYC;AAED,4BASC;AAED,8BAGC;AArDD,+CAAsE;AACtE,0DAA6B;AAEtB,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,IAAA,iBAAM,EAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,IAAA,gBAAK,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,OAAO,IAAA,mBAAQ,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,OAAe;IACxE,MAAM,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAI,QAAgB;IAChD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAa;IAC7D,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACxD,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function createComponentResourceId(packageName: string, componentName: string): string;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createComponentResourceId = createComponentResourceId;
4
+ function sanitizeSegment(value) {
5
+ return value
6
+ .toLowerCase()
7
+ .replace(/^@/, "")
8
+ .replace(/[^a-z0-9]+/g, "")
9
+ .trim();
10
+ }
11
+ function splitPackageName(packageName) {
12
+ if (packageName.startsWith("@")) {
13
+ const parts = packageName.split("/");
14
+ const org = sanitizeSegment(parts[0] ?? "local");
15
+ const pkg = sanitizeSegment(parts[1] ?? "package");
16
+ return { org: org || "local", pkg: pkg || "package" };
17
+ }
18
+ return {
19
+ org: "local",
20
+ pkg: sanitizeSegment(packageName) || "package"
21
+ };
22
+ }
23
+ function createComponentResourceId(packageName, componentName) {
24
+ // TODO: APS resource IDs currently include the visible component name. Making IDs
25
+ // rename-stable requires a protocol-level identity decision and is outside authoring.
26
+ const { org, pkg } = splitPackageName(packageName);
27
+ const name = sanitizeSegment(componentName) || "component";
28
+ return `${org}.${pkg}.component.${name}`;
29
+ }
30
+ //# sourceMappingURL=resource-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-identity.js","sourceRoot":"","sources":["../../src/implementation/resource-identity.ts"],"names":[],"mappings":";;AAsBA,8DAMC;AA5BD,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;QACnD,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IACxD,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,eAAe,CAAC,WAAW,CAAC,IAAI,SAAS;KAC/C,CAAC;AACJ,CAAC;AAED,SAAgB,yBAAyB,CAAC,WAAmB,EAAE,aAAqB;IAClF,kFAAkF;IAClF,sFAAsF;IACtF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC;IAC3D,OAAO,GAAG,GAAG,IAAI,GAAG,cAAc,IAAI,EAAE,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,13 @@
1
+ type AuthoringOptions = {
2
+ dryRun?: boolean;
3
+ };
4
+ export type AuthoringReport = {
5
+ outputDir: string;
6
+ discoveredResources: number;
7
+ createdFiles: string[];
8
+ existingFiles: string[];
9
+ plannedFiles: string[];
10
+ dryRun: boolean;
11
+ };
12
+ export declare function runAuthoringWorkflow(cwd: string, options?: AuthoringOptions): Promise<AuthoringReport>;
13
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runAuthoringWorkflow = runAuthoringWorkflow;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const typescript_extractor_1 = require("../generation/extractors/typescript-extractor");
9
+ const fs_1 = require("../io/fs");
10
+ const resource_identity_1 = require("../resource-identity");
11
+ const AUTHORING_TEMPLATE = `description: ""
12
+ # Describe brevemente qué hace este recurso.
13
+
14
+ whenToUse: []
15
+ # ¿Cuándo recomendarías utilizar este recurso?
16
+
17
+ whenNotToUse: []
18
+ # ¿En qué casos elegirías otra alternativa?
19
+ `;
20
+ async function readPackageName(cwd) {
21
+ const packageJson = await (0, fs_1.readJson)(node_path_1.default.join(cwd, "package.json"));
22
+ if (typeof packageJson.name !== "string" || packageJson.name.trim() === "") {
23
+ throw new Error("package.json name is required for authoring");
24
+ }
25
+ return packageJson.name;
26
+ }
27
+ async function runAuthoringWorkflow(cwd, options = {}) {
28
+ const packageName = await readPackageName(cwd);
29
+ const components = await (0, typescript_extractor_1.extractTypeScriptComponents)(cwd, packageName);
30
+ const outputDir = node_path_1.default.join(cwd, "aps", "knowledge", "components");
31
+ const createdFiles = [];
32
+ const existingFiles = [];
33
+ const plannedFiles = [];
34
+ for (const component of components) {
35
+ const resourceId = (0, resource_identity_1.createComponentResourceId)(component.packageName, component.name);
36
+ const filePath = node_path_1.default.join(outputDir, `${resourceId}.yaml`);
37
+ const relativePath = node_path_1.default.relative(cwd, filePath);
38
+ if (await (0, fs_1.fileExists)(filePath)) {
39
+ existingFiles.push(relativePath);
40
+ continue;
41
+ }
42
+ if (options.dryRun) {
43
+ plannedFiles.push(relativePath);
44
+ continue;
45
+ }
46
+ if (await (0, fs_1.writeTextIfMissing)(filePath, AUTHORING_TEMPLATE)) {
47
+ createdFiles.push(relativePath);
48
+ }
49
+ else {
50
+ existingFiles.push(relativePath);
51
+ }
52
+ }
53
+ return {
54
+ outputDir: node_path_1.default.relative(cwd, outputDir),
55
+ discoveredResources: components.length,
56
+ createdFiles,
57
+ existingFiles,
58
+ plannedFiles,
59
+ dryRun: Boolean(options.dryRun)
60
+ };
61
+ }
62
+ //# sourceMappingURL=authoring-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-service.js","sourceRoot":"","sources":["../../../src/implementation/services/authoring-service.ts"],"names":[],"mappings":";;;;;AA0CA,oDAyCC;AAnFD,0DAA6B;AAC7B,wFAA4F;AAC5F,iCAAoE;AACpE,4DAAiE;AAmBjE,MAAM,kBAAkB,GAAG;;;;;;;;CAQ1B,CAAC;AAEF,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,MAAM,WAAW,GAAG,MAAM,IAAA,aAAQ,EAAc,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhF,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC;AAC1B,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,UAA4B,EAAE;IAE9B,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,IAAA,kDAA2B,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACnE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAA,6CAAyB,EAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,mBAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAElD,IAAI,MAAM,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,IAAI,MAAM,IAAA,uBAAkB,EAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAC3D,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,mBAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;QACxC,mBAAmB,EAAE,UAAU,CAAC,MAAM;QACtC,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KAChC,CAAC;AACJ,CAAC"}
@@ -36,6 +36,45 @@ function extractNamedEntries(manifest, key) {
36
36
  .sort((a, b) => a.localeCompare(b));
37
37
  return entries;
38
38
  }
39
+ function readStringArray(value) {
40
+ return Array.isArray(value)
41
+ ? value.filter((item) => typeof item === "string")
42
+ : [];
43
+ }
44
+ function extractComponents(provider) {
45
+ const section = provider.manifest?.components;
46
+ if (!Array.isArray(section)) {
47
+ return [];
48
+ }
49
+ return section
50
+ .map((item) => {
51
+ if (typeof item === "string") {
52
+ return {
53
+ provider: provider.name,
54
+ name: item,
55
+ whenToUse: [],
56
+ whenNotToUse: []
57
+ };
58
+ }
59
+ if (!(0, json_1.isObject)(item)) {
60
+ return null;
61
+ }
62
+ const nameCandidate = item.name ?? item.id;
63
+ if (typeof nameCandidate !== "string" || nameCandidate.trim() === "") {
64
+ return null;
65
+ }
66
+ return {
67
+ provider: provider.name,
68
+ id: typeof item.id === "string" ? item.id : undefined,
69
+ name: nameCandidate,
70
+ description: typeof item.description === "string" ? item.description : undefined,
71
+ whenToUse: readStringArray(item.whenToUse),
72
+ whenNotToUse: readStringArray(item.whenNotToUse)
73
+ };
74
+ })
75
+ .filter((item) => item !== null)
76
+ .sort((a, b) => a.provider.localeCompare(b.provider) || a.name.localeCompare(b.name));
77
+ }
39
78
  function uniqueSorted(values) {
40
79
  return [...new Set(values)].sort((a, b) => a.localeCompare(b));
41
80
  }
@@ -70,6 +109,32 @@ function buildSimpleList(title, items) {
70
109
  lines.push("");
71
110
  return lines.join("\n");
72
111
  }
112
+ function buildComponentsMd(components) {
113
+ const lines = ["# APS Components", ""];
114
+ if (components.length === 0) {
115
+ lines.push("No entries found.", "");
116
+ return lines.join("\n");
117
+ }
118
+ for (const component of components) {
119
+ lines.push(`## ${component.name}`, "", `Provider: ${component.provider}`);
120
+ if (component.id) {
121
+ lines.push(`Resource ID: ${component.id}`);
122
+ }
123
+ if (component.description?.trim()) {
124
+ lines.push("", component.description.trim());
125
+ }
126
+ if (component.whenToUse.length > 0) {
127
+ lines.push("", "### When to use", "");
128
+ lines.push(...component.whenToUse.map((item) => `- ${item}`));
129
+ }
130
+ if (component.whenNotToUse.length > 0) {
131
+ lines.push("", "### When not to use", "");
132
+ lines.push(...component.whenNotToUse.map((item) => `- ${item}`));
133
+ }
134
+ lines.push("");
135
+ }
136
+ return lines.join("\n");
137
+ }
73
138
  function buildIndexMd() {
74
139
  return [
75
140
  "# APS Context",
@@ -87,7 +152,7 @@ function buildIndexMd() {
87
152
  async function generateContext(cwd, discovery) {
88
153
  const outputDir = node_path_1.default.join(cwd, ".agents", "aps");
89
154
  await (0, fs_1.ensureDir)(outputDir);
90
- const components = uniqueSorted(discovery.providers.flatMap((provider) => extractNamedEntries(provider.manifest, "components")));
155
+ const components = discovery.providers.flatMap(extractComponents);
91
156
  const rules = uniqueSorted(discovery.providers.flatMap((provider) => extractNamedEntries(provider.manifest, "rules")));
92
157
  const examples = uniqueSorted(discovery.providers.flatMap((provider) => extractNamedEntries(provider.manifest, "examples")));
93
158
  const files = [
@@ -99,7 +164,7 @@ async function generateContext(cwd, discovery) {
99
164
  ];
100
165
  await (0, fs_1.writeText)(files[0], buildIndexMd());
101
166
  await (0, fs_1.writeText)(files[1], buildProvidersMd(discovery));
102
- await (0, fs_1.writeText)(files[2], buildSimpleList("APS Components", components));
167
+ await (0, fs_1.writeText)(files[2], buildComponentsMd(components));
103
168
  await (0, fs_1.writeText)(files[3], buildSimpleList("APS Rules", rules));
104
169
  await (0, fs_1.writeText)(files[4], buildSimpleList("APS Examples", examples));
105
170
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"context-generator.js","sourceRoot":"","sources":["../../../src/implementation/synchronization/context-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-generator.js","sourceRoot":"","sources":["../../../src/implementation/synchronization/context-generator.ts"],"names":[],"mappings":";;;;;AAiMA,0CA8BC;AA/ND,0DAA6B;AAG7B,iCAAgD;AAChD,qCAAsC;AAgBtC,SAAS,YAAY,CAAC,QAA4B;IAChD,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAwC,EAAE,GAAW;IAChF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO;SACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;YAClE,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA4B;IACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,IAAI,EAA2B,EAAE;QACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,EAAE;aACjB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAA,eAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACrD,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAChF,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1C,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;SACjD,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;SACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACb,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CACrE,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,MAAgB;IACpC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA0B;IAClD,MAAM,KAAK,GAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,kCAAkC,EAAE,EAAE,CAAC,CAAC;IAExF,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,kBAAkB,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,KAAe;IACrD,MAAM,KAAK,GAAa,CAAC,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAE3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA8B;IACvD,MAAM,KAAK,GAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,aAAa,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,gBAAgB,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;QACL,eAAe;QACf,EAAE;QACF,wCAAwC;QACxC,EAAE;QACF,gBAAgB;QAChB,gBAAgB;QAChB,iBAAiB;QACjB,YAAY;QACZ,eAAe;QACf,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,SAA0B;IAC3E,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,IAAA,cAAS,EAAC,SAAS,CAAC,CAAC;IAE3B,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,YAAY,CACxB,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAC3F,CAAC;IACF,MAAM,QAAQ,GAAG,YAAY,CAC3B,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAC9F,CAAC;IAEF,MAAM,KAAK,GAAG;QACZ,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QAChC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;QACpC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;QACrC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QAChC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;KACpC,CAAC;IAEF,MAAM,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,MAAM,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,MAAM,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAA,cAAS,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErE,OAAO;QACL,SAAS;QACT,KAAK;KACN,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export { runContextWorkflow } from "./implementation/services/context-service";
6
6
  export { runSyncWorkflow } from "./implementation/services/sync-service";
7
7
  export { prepareApsConfig } from "./implementation/services/init-service";
8
8
  export { runGovernanceValidation } from "./implementation/services/governance-service";
9
+ export { runAuthoringWorkflow } from "./implementation/services/authoring-service";
10
+ export type { AuthoringReport } from "./implementation/services/authoring-service";
9
11
  export { registerAdapter, getAdapter, getConfiguredAdapters } from "./implementation/adapters";
10
12
  export type { AgentAdapter, AgentContext, SyncResult } from "./implementation/adapters";
11
13
  export { registerGenerator, resolveGenerator } from "./implementation/generators";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateGovernance = exports.validateApsManifest = exports.resolveGenerator = exports.registerGenerator = exports.getConfiguredAdapters = exports.getAdapter = exports.registerAdapter = exports.runGovernanceValidation = exports.prepareApsConfig = exports.runSyncWorkflow = exports.runContextWorkflow = exports.runDoctorAssessment = exports.runGeneration = exports.runValidation = exports.runDiscovery = void 0;
3
+ exports.validateGovernance = exports.validateApsManifest = exports.resolveGenerator = exports.registerGenerator = exports.getConfiguredAdapters = exports.getAdapter = exports.registerAdapter = exports.runAuthoringWorkflow = exports.runGovernanceValidation = exports.prepareApsConfig = exports.runSyncWorkflow = exports.runContextWorkflow = exports.runDoctorAssessment = exports.runGeneration = exports.runValidation = exports.runDiscovery = void 0;
4
4
  var discovery_service_1 = require("./implementation/services/discovery-service");
5
5
  Object.defineProperty(exports, "runDiscovery", { enumerable: true, get: function () { return discovery_service_1.runDiscovery; } });
6
6
  var validate_service_1 = require("./implementation/services/validate-service");
@@ -17,6 +17,8 @@ var init_service_1 = require("./implementation/services/init-service");
17
17
  Object.defineProperty(exports, "prepareApsConfig", { enumerable: true, get: function () { return init_service_1.prepareApsConfig; } });
18
18
  var governance_service_1 = require("./implementation/services/governance-service");
19
19
  Object.defineProperty(exports, "runGovernanceValidation", { enumerable: true, get: function () { return governance_service_1.runGovernanceValidation; } });
20
+ var authoring_service_1 = require("./implementation/services/authoring-service");
21
+ Object.defineProperty(exports, "runAuthoringWorkflow", { enumerable: true, get: function () { return authoring_service_1.runAuthoringWorkflow; } });
20
22
  var adapters_1 = require("./implementation/adapters");
21
23
  Object.defineProperty(exports, "registerAdapter", { enumerable: true, get: function () { return adapters_1.registerAdapter; } });
22
24
  Object.defineProperty(exports, "getAdapter", { enumerable: true, get: function () { return adapters_1.getAdapter; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iFAA2E;AAAlE,iHAAA,YAAY,OAAA;AACrB,+EAA2E;AAAlE,iHAAA,aAAa,OAAA;AACtB,+EAA2E;AAAlE,iHAAA,aAAa,OAAA;AACtB,2EAA+E;AAAtE,qHAAA,mBAAmB,OAAA;AAC5B,6EAA+E;AAAtE,qHAAA,kBAAkB,OAAA;AAC3B,uEAAyE;AAAhE,+GAAA,eAAe,OAAA;AACxB,uEAA0E;AAAjE,gHAAA,gBAAgB,OAAA;AACzB,mFAAuF;AAA9E,6HAAA,uBAAuB,OAAA;AAChC,sDAA+F;AAAtF,2GAAA,eAAe,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAE3D,0DAAkF;AAAzE,+GAAA,iBAAiB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAI5C,0DAA+D;AAAtD,oHAAA,mBAAmB,OAAA;AAC5B,oDAA2D;AAAlD,gHAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iFAA2E;AAAlE,iHAAA,YAAY,OAAA;AACrB,+EAA2E;AAAlE,iHAAA,aAAa,OAAA;AACtB,+EAA2E;AAAlE,iHAAA,aAAa,OAAA;AACtB,2EAA+E;AAAtE,qHAAA,mBAAmB,OAAA;AAC5B,6EAA+E;AAAtE,qHAAA,kBAAkB,OAAA;AAC3B,uEAAyE;AAAhE,+GAAA,eAAe,OAAA;AACxB,uEAA0E;AAAjE,gHAAA,gBAAgB,OAAA;AACzB,mFAAuF;AAA9E,6HAAA,uBAAuB,OAAA;AAChC,iFAAmF;AAA1E,yHAAA,oBAAoB,OAAA;AAE7B,sDAA+F;AAAtF,2GAAA,eAAe,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAE3D,0DAAkF;AAAzE,+GAAA,iBAAiB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAI5C,0DAA+D;AAAtD,oHAAA,mBAAmB,OAAA;AAC5B,oDAA2D;AAAlD,gHAAA,kBAAkB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mimir-labs/core",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Reusable core services for the Mimir APS implementation",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -40,6 +40,9 @@
40
40
  "metadata",
41
41
  "interoperability"
42
42
  ],
43
+ "dependencies": {
44
+ "yaml": "^2.9.0"
45
+ },
43
46
  "scripts": {
44
47
  "build": "tsc -p tsconfig.json"
45
48
  }