@exellix/ai-skills 7.0.11 → 7.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/dist/analysis/analyze-skill-request.d.ts +0 -13
- package/dist/analysis/analyze-skill-request.d.ts.map +0 -1
- package/dist/analysis/analyze-skill-request.js +0 -103
- package/dist/analysis/analyze-skill-request.js.map +0 -1
- package/dist/analysis/build-skill-request-analysis-packet.d.ts +0 -14
- package/dist/analysis/build-skill-request-analysis-packet.d.ts.map +0 -1
- package/dist/analysis/build-skill-request-analysis-packet.js +0 -106
- package/dist/analysis/build-skill-request-analysis-packet.js.map +0 -1
- package/dist/analysis/collect-deterministic-findings.d.ts +0 -14
- package/dist/analysis/collect-deterministic-findings.d.ts.map +0 -1
- package/dist/analysis/collect-deterministic-findings.js +0 -245
- package/dist/analysis/collect-deterministic-findings.js.map +0 -1
- package/dist/analysis/constants.d.ts +0 -5
- package/dist/analysis/constants.d.ts.map +0 -1
- package/dist/analysis/constants.js +0 -5
- package/dist/analysis/constants.js.map +0 -1
- package/dist/analysis/format-skill-request-analysis-markdown.d.ts +0 -8
- package/dist/analysis/format-skill-request-analysis-markdown.d.ts.map +0 -1
- package/dist/analysis/format-skill-request-analysis-markdown.js +0 -121
- package/dist/analysis/format-skill-request-analysis-markdown.js.map +0 -1
- package/dist/analysis/path-utils.d.ts +0 -11
- package/dist/analysis/path-utils.d.ts.map +0 -1
- package/dist/analysis/path-utils.js +0 -69
- package/dist/analysis/path-utils.js.map +0 -1
- package/dist/analysis/sanitize-for-packet.d.ts +0 -28
- package/dist/analysis/sanitize-for-packet.d.ts.map +0 -1
- package/dist/analysis/sanitize-for-packet.js +0 -107
- package/dist/analysis/sanitize-for-packet.js.map +0 -1
- package/dist/analysis/types.d.ts +0 -124
- package/dist/analysis/types.d.ts.map +0 -1
- package/dist/analysis/types.js +0 -2
- package/dist/analysis/types.js.map +0 -1
- package/dist/catalog/canonical-skill-key.d.ts +0 -5
- package/dist/catalog/canonical-skill-key.d.ts.map +0 -1
- package/dist/catalog/canonical-skill-key.js +0 -16
- package/dist/catalog/canonical-skill-key.js.map +0 -1
- package/dist/catalog/constants.d.ts +0 -7
- package/dist/catalog/constants.d.ts.map +0 -1
- package/dist/catalog/constants.js +0 -7
- package/dist/catalog/constants.js.map +0 -1
- package/dist/catalog/env.d.ts +0 -4
- package/dist/catalog/env.d.ts.map +0 -1
- package/dist/catalog/env.js +0 -15
- package/dist/catalog/env.js.map +0 -1
- package/dist/catalog/gateway-template.d.ts +0 -6
- package/dist/catalog/gateway-template.d.ts.map +0 -1
- package/dist/catalog/gateway-template.js +0 -15
- package/dist/catalog/gateway-template.js.map +0 -1
- package/dist/catalog/index.d.ts +0 -3
- package/dist/catalog/index.d.ts.map +0 -1
- package/dist/catalog/index.js +0 -3
- package/dist/catalog/index.js.map +0 -1
- package/dist/catalog/seed.d.ts +0 -12
- package/dist/catalog/seed.d.ts.map +0 -1
- package/dist/catalog/seed.js +0 -45
- package/dist/catalog/seed.js.map +0 -1
- package/dist/catalog/skill-catalog.d.ts +0 -28
- package/dist/catalog/skill-catalog.d.ts.map +0 -1
- package/dist/catalog/skill-catalog.js +0 -139
- package/dist/catalog/skill-catalog.js.map +0 -1
- package/dist/catalog/store-factory.d.ts +0 -18
- package/dist/catalog/store-factory.d.ts.map +0 -1
- package/dist/catalog/store-factory.js +0 -36
- package/dist/catalog/store-factory.js.map +0 -1
- package/dist/catalog/types.d.ts +0 -61
- package/dist/catalog/types.d.ts.map +0 -1
- package/dist/catalog/types.js +0 -22
- package/dist/catalog/types.js.map +0 -1
- package/dist/catalog-manager/createAiSkillsCatalogApi.d.ts +0 -8
- package/dist/catalog-manager/createAiSkillsCatalogApi.d.ts.map +0 -1
- package/dist/catalog-manager/createAiSkillsCatalogApi.js +0 -162
- package/dist/catalog-manager/createAiSkillsCatalogApi.js.map +0 -1
- package/dist/catalog-manager/index.d.ts +0 -3
- package/dist/catalog-manager/index.d.ts.map +0 -1
- package/dist/catalog-manager/index.js +0 -2
- package/dist/catalog-manager/index.js.map +0 -1
- package/dist/catalog-manager/types.d.ts +0 -84
- package/dist/catalog-manager/types.d.ts.map +0 -1
- package/dist/catalog-manager/types.js +0 -2
- package/dist/catalog-manager/types.js.map +0 -1
- package/dist/catalox/ai-skills-catalog.d.ts +0 -45
- package/dist/catalox/ai-skills-catalog.d.ts.map +0 -1
- package/dist/catalox/ai-skills-catalog.js +0 -193
- package/dist/catalox/ai-skills-catalog.js.map +0 -1
- package/dist/catalox/ai-sub-skills-catalog.d.ts +0 -7
- package/dist/catalox/ai-sub-skills-catalog.d.ts.map +0 -1
- package/dist/catalox/ai-sub-skills-catalog.js +0 -72
- package/dist/catalox/ai-sub-skills-catalog.js.map +0 -1
- package/dist/catalox/catalog-guards.d.ts +0 -14
- package/dist/catalox/catalog-guards.d.ts.map +0 -1
- package/dist/catalox/catalog-guards.js +0 -86
- package/dist/catalox/catalog-guards.js.map +0 -1
- package/dist/catalox/catalog-native-store.d.ts +0 -18
- package/dist/catalox/catalog-native-store.d.ts.map +0 -1
- package/dist/catalox/catalog-native-store.js +0 -28
- package/dist/catalox/catalog-native-store.js.map +0 -1
- package/dist/catalox/catalog-normalization.d.ts +0 -82
- package/dist/catalox/catalog-normalization.d.ts.map +0 -1
- package/dist/catalox/catalog-normalization.js +0 -329
- package/dist/catalox/catalog-normalization.js.map +0 -1
- package/dist/catalox/catalox-native-io.d.ts +0 -13
- package/dist/catalox/catalox-native-io.d.ts.map +0 -1
- package/dist/catalox/catalox-native-io.js +0 -16
- package/dist/catalox/catalox-native-io.js.map +0 -1
- package/dist/catalox/catalox-provision-access.d.ts +0 -12
- package/dist/catalox/catalox-provision-access.d.ts.map +0 -1
- package/dist/catalox/catalox-provision-access.js +0 -28
- package/dist/catalox/catalox-provision-access.js.map +0 -1
- package/dist/catalox/catalox-skill-errors.d.ts +0 -15
- package/dist/catalox/catalox-skill-errors.d.ts.map +0 -1
- package/dist/catalox/catalox-skill-errors.js +0 -29
- package/dist/catalox/catalox-skill-errors.js.map +0 -1
- package/dist/catalox/init-firebase-and-catalox.d.ts +0 -8
- package/dist/catalox/init-firebase-and-catalox.d.ts.map +0 -1
- package/dist/catalox/init-firebase-and-catalox.js +0 -48
- package/dist/catalox/init-firebase-and-catalox.js.map +0 -1
- package/dist/catalox/list-ai-skills-catalog.d.ts +0 -30
- package/dist/catalox/list-ai-skills-catalog.d.ts.map +0 -1
- package/dist/catalox/list-ai-skills-catalog.js +0 -135
- package/dist/catalox/list-ai-skills-catalog.js.map +0 -1
- package/dist/catalox/skill-gateway-template-utils.d.ts +0 -11
- package/dist/catalox/skill-gateway-template-utils.d.ts.map +0 -1
- package/dist/catalox/skill-gateway-template-utils.js +0 -31
- package/dist/catalox/skill-gateway-template-utils.js.map +0 -1
- package/dist/catalox/skill-optimixer-catalog.d.ts +0 -33
- package/dist/catalox/skill-optimixer-catalog.d.ts.map +0 -1
- package/dist/catalox/skill-optimixer-catalog.js +0 -106
- package/dist/catalox/skill-optimixer-catalog.js.map +0 -1
- package/dist/catalox/skill-runtime-catalog.d.ts +0 -8
- package/dist/catalox/skill-runtime-catalog.d.ts.map +0 -1
- package/dist/catalox/skill-runtime-catalog.js +0 -39
- package/dist/catalox/skill-runtime-catalog.js.map +0 -1
- package/dist/catalox/skill-search-context.d.ts +0 -25
- package/dist/catalox/skill-search-context.d.ts.map +0 -1
- package/dist/catalox/skill-search-context.js +0 -72
- package/dist/catalox/skill-search-context.js.map +0 -1
- package/dist/catalox/skill-support-templates.d.ts +0 -50
- package/dist/catalox/skill-support-templates.d.ts.map +0 -1
- package/dist/catalox/skill-support-templates.js +0 -170
- package/dist/catalox/skill-support-templates.js.map +0 -1
- package/dist/catalox/skill-synthesis-template-integrity.d.ts +0 -26
- package/dist/catalox/skill-synthesis-template-integrity.d.ts.map +0 -1
- package/dist/catalox/skill-synthesis-template-integrity.js +0 -186
- package/dist/catalox/skill-synthesis-template-integrity.js.map +0 -1
- package/dist/catalox/skill-template-catalog-mutations.d.ts +0 -127
- package/dist/catalox/skill-template-catalog-mutations.d.ts.map +0 -1
- package/dist/catalox/skill-template-catalog-mutations.js +0 -582
- package/dist/catalox/skill-template-catalog-mutations.js.map +0 -1
- package/dist/catalox/skill-template-markdown.d.ts +0 -34
- package/dist/catalox/skill-template-markdown.d.ts.map +0 -1
- package/dist/catalox/skill-template-markdown.js +0 -106
- package/dist/catalox/skill-template-markdown.js.map +0 -1
- package/dist/catalox/skill-template-seeds.d.ts +0 -19
- package/dist/catalox/skill-template-seeds.d.ts.map +0 -1
- package/dist/catalox/skill-template-seeds.js +0 -100
- package/dist/catalox/skill-template-seeds.js.map +0 -1
- package/dist/catalox/skill-template-variables.d.ts +0 -98
- package/dist/catalox/skill-template-variables.d.ts.map +0 -1
- package/dist/catalox/skill-template-variables.js +0 -440
- package/dist/catalox/skill-template-variables.js.map +0 -1
- package/dist/catalox/skill-templates.d.ts +0 -72
- package/dist/catalox/skill-templates.d.ts.map +0 -1
- package/dist/catalox/skill-templates.js +0 -110
- package/dist/catalox/skill-templates.js.map +0 -1
- package/dist/client/audit-manager.d.ts +0 -27
- package/dist/client/audit-manager.d.ts.map +0 -1
- package/dist/client/audit-manager.js +0 -260
- package/dist/client/audit-manager.js.map +0 -1
- package/dist/client/invoke-skill-via-funcx.d.ts +0 -11
- package/dist/client/invoke-skill-via-funcx.d.ts.map +0 -1
- package/dist/client/invoke-skill-via-funcx.js +0 -51
- package/dist/client/invoke-skill-via-funcx.js.map +0 -1
- package/dist/client/task-executor.d.ts +0 -21
- package/dist/client/task-executor.d.ts.map +0 -1
- package/dist/client/task-executor.js +0 -50
- package/dist/client/task-executor.js.map +0 -1
- package/dist/invocation/normalizeModelConfigForGatewayInvoke.d.ts +0 -9
- package/dist/invocation/normalizeModelConfigForGatewayInvoke.d.ts.map +0 -1
- package/dist/invocation/normalizeModelConfigForGatewayInvoke.js +0 -77
- package/dist/invocation/normalizeModelConfigForGatewayInvoke.js.map +0 -1
- package/dist/metadata.d.ts +0 -7
- package/dist/metadata.d.ts.map +0 -1
- package/dist/metadata.js +0 -65
- package/dist/metadata.js.map +0 -1
package/dist/catalog/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/catalog/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/catalog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/catalog/seed.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { SkillCatalog } from "./skill-catalog.js";
|
|
2
|
-
/** Canonical Mongo / xillix keys for skills that ship template seeds (subset of the Catalox catalog). */
|
|
3
|
-
export declare const SEED_CANONICAL_SKILL_KEYS: `skills/${string}`[];
|
|
4
|
-
export interface SeedXillixCatalogOptions {
|
|
5
|
-
/** Root folder containing `<id>.instructions.md` and `<id>.prompt.md` (default: `.metadata/skills`). */
|
|
6
|
-
templatesRoot?: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Idempotent upsert of built-in skills; loads template bodies from disk when present.
|
|
10
|
-
*/
|
|
11
|
-
export declare function seedXillixCatalog(catalog: SkillCatalog, options?: SeedXillixCatalogOptions): Promise<void>;
|
|
12
|
-
//# sourceMappingURL=seed.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/catalog/seed.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,yGAAyG;AACzG,eAAO,MAAM,yBAAyB,sBAA+D,CAAC;AAEtG,MAAM,WAAW,wBAAwB;IACrC,wGAAwG;IACxG,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAUD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BpH"}
|
package/dist/catalog/seed.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import * as path from "path";
|
|
3
|
-
import { AI_SKILLS_CATALOG_ITEMS, AI_SKILLS_MONGO_SEED_KEYS } from "../catalox/ai-skills-catalog.js";
|
|
4
|
-
/** Canonical Mongo / xillix keys for skills that ship template seeds (subset of the Catalox catalog). */
|
|
5
|
-
export const SEED_CANONICAL_SKILL_KEYS = AI_SKILLS_MONGO_SEED_KEYS.map((k) => `skills/${k}`);
|
|
6
|
-
function readOptionalUtf8(filePath) {
|
|
7
|
-
try {
|
|
8
|
-
return fs.readFileSync(filePath, "utf8");
|
|
9
|
-
}
|
|
10
|
-
catch {
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Idempotent upsert of built-in skills; loads template bodies from disk when present.
|
|
16
|
-
*/
|
|
17
|
-
export async function seedXillixCatalog(catalog, options = {}) {
|
|
18
|
-
const root = options.templatesRoot ?? path.join(process.cwd(), ".metadata", "skills");
|
|
19
|
-
for (const spec of AI_SKILLS_CATALOG_ITEMS) {
|
|
20
|
-
if (!spec.xillixSeed)
|
|
21
|
-
continue;
|
|
22
|
-
const skillKey = `skills/${spec.skillKey}`;
|
|
23
|
-
const xs = spec.xillixSeed;
|
|
24
|
-
const id = spec.skillKey;
|
|
25
|
-
const instructionsText = readOptionalUtf8(path.join(root, `${id}.instructions.md`));
|
|
26
|
-
const promptText = readOptionalUtf8(path.join(root, `${id}.prompt.md`));
|
|
27
|
-
await catalog.upsert({
|
|
28
|
-
skillKey,
|
|
29
|
-
displayName: spec.title,
|
|
30
|
-
description: spec.description,
|
|
31
|
-
lifecycle: "active",
|
|
32
|
-
tags: ["xeonox", "seed"],
|
|
33
|
-
deletedAt: null,
|
|
34
|
-
outputFrame: xs.outputFrame,
|
|
35
|
-
requiredVariables: xs.requiredVariables,
|
|
36
|
-
optionalVariables: xs.optionalVariables,
|
|
37
|
-
outputSchema: xs.outputSchema,
|
|
38
|
-
inputHints: { variables: { required: xs.requiredVariables, optional: xs.optionalVariables } },
|
|
39
|
-
outputHints: { frame: xs.outputFrame },
|
|
40
|
-
...(instructionsText !== undefined ? { instructionsText } : {}),
|
|
41
|
-
...(promptText !== undefined ? { promptText } : {}),
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=seed.js.map
|
package/dist/catalog/seed.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/catalog/seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAGrG,yGAAyG;AACzG,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAW,CAAC,CAAC;AAOtG,SAAS,gBAAgB,CAAC,QAAgB;IACtC,IAAI,CAAC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAqB,EAAE,UAAoC,EAAE;IACjG,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEtF,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,SAAS;QAC/B,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QACxE,MAAM,OAAO,CAAC,MAAM,CAAC;YACjB,QAAQ;YACR,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;YACvC,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;YACvC,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE;YAC7F,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE;YACtC,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { XronoxStore } from "@xronoces/xronox-store";
|
|
2
|
-
import type { AiSkillCatalogDocument, SkillCatalogListOptions, SkillCatalogPatchOptions } from "./types.js";
|
|
3
|
-
export declare class SkillCatalog {
|
|
4
|
-
private readonly store;
|
|
5
|
-
constructor(store: XronoxStore);
|
|
6
|
-
private col;
|
|
7
|
-
create(doc: Omit<AiSkillCatalogDocument, "catalogVersion" | "createdAt" | "updatedAt" | "deletedAt"> & {
|
|
8
|
-
deletedAt?: null;
|
|
9
|
-
}): Promise<void>;
|
|
10
|
-
get(skillKey: string, opts?: {
|
|
11
|
-
includeHidden?: boolean;
|
|
12
|
-
}): Promise<AiSkillCatalogDocument | null>;
|
|
13
|
-
patch(skillKey: string, fields: Partial<AiSkillCatalogDocument>, opts?: SkillCatalogPatchOptions): Promise<void>;
|
|
14
|
-
/** Soft-delete: sets `deletedAt` and optional lifecycle. */
|
|
15
|
-
archive(skillKey: string, opts?: SkillCatalogPatchOptions & {
|
|
16
|
-
lifecycle?: "deprecated";
|
|
17
|
-
}): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Hard-remove catalog row. Only when not production and `XILLIX_ALLOW_HARD_DELETE=true`.
|
|
20
|
-
*/
|
|
21
|
-
hardDelete(skillKey: string): Promise<void>;
|
|
22
|
-
list(options?: SkillCatalogListOptions): Promise<AiSkillCatalogDocument[]>;
|
|
23
|
-
/**
|
|
24
|
-
* Insert or full replace by `skillKey` (upsert). Used by seeds and migrations.
|
|
25
|
-
*/
|
|
26
|
-
upsert(doc: Omit<AiSkillCatalogDocument, "catalogVersion" | "createdAt" | "updatedAt"> & Partial<Pick<AiSkillCatalogDocument, "catalogVersion" | "createdAt" | "updatedAt">>): Promise<void>;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=skill-catalog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skill-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/skill-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAsB5G,qBAAa,YAAY;IACT,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAE/C,OAAO,CAAC,GAAG;IAIL,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3I,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IASjG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtH,4DAA4D;IACtD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,wBAAwB,GAAG;QAAE,SAAS,CAAC,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9G;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,IAAI,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiCpF;;OAEG;IACG,MAAM,CACR,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC,GAC3E,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,GACxF,OAAO,CAAC,IAAI,CAAC;CAmBnB"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { AI_SKILL_CATALOG_COLLECTION } from "./constants.js";
|
|
2
|
-
import { isXillixHardDeleteAllowed } from "./env.js";
|
|
3
|
-
import { SkillCatalogDuplicateKeyError, SkillCatalogNotFoundError, SkillCatalogVersionConflictError, } from "./types.js";
|
|
4
|
-
function isDuplicateKeyError(err) {
|
|
5
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
6
|
-
if (msg.includes("E11000") || msg.includes("11000"))
|
|
7
|
-
return true;
|
|
8
|
-
const code = err?.code;
|
|
9
|
-
return code === 11000;
|
|
10
|
-
}
|
|
11
|
-
function stripUndefined(o) {
|
|
12
|
-
const out = { ...o };
|
|
13
|
-
for (const k of Object.keys(out)) {
|
|
14
|
-
if (out[k] === undefined)
|
|
15
|
-
delete out[k];
|
|
16
|
-
}
|
|
17
|
-
return out;
|
|
18
|
-
}
|
|
19
|
-
export class SkillCatalog {
|
|
20
|
-
store;
|
|
21
|
-
constructor(store) {
|
|
22
|
-
this.store = store;
|
|
23
|
-
}
|
|
24
|
-
col() {
|
|
25
|
-
return this.store.collection(AI_SKILL_CATALOG_COLLECTION);
|
|
26
|
-
}
|
|
27
|
-
async create(doc) {
|
|
28
|
-
const now = new Date().toISOString();
|
|
29
|
-
const row = {
|
|
30
|
-
...doc,
|
|
31
|
-
catalogVersion: 1,
|
|
32
|
-
createdAt: now,
|
|
33
|
-
updatedAt: now,
|
|
34
|
-
deletedAt: doc.deletedAt ?? null,
|
|
35
|
-
};
|
|
36
|
-
try {
|
|
37
|
-
await this.col().insert(stripUndefined(row));
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
if (isDuplicateKeyError(err)) {
|
|
41
|
-
throw new SkillCatalogDuplicateKeyError(doc.skillKey);
|
|
42
|
-
}
|
|
43
|
-
throw err;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
async get(skillKey, opts) {
|
|
47
|
-
if (opts?.includeHidden) {
|
|
48
|
-
const r = await this.col().readMany({ skillKey }, { includeHidden: true, limit: 1 });
|
|
49
|
-
return r[0] ?? null;
|
|
50
|
-
}
|
|
51
|
-
const row = await this.col().getByKey(skillKey);
|
|
52
|
-
return row;
|
|
53
|
-
}
|
|
54
|
-
async patch(skillKey, fields, opts) {
|
|
55
|
-
const cur = await this.get(skillKey, { includeHidden: true });
|
|
56
|
-
if (!cur)
|
|
57
|
-
throw new SkillCatalogNotFoundError(skillKey);
|
|
58
|
-
if (opts?.expectedVersion !== undefined && cur.catalogVersion !== opts.expectedVersion) {
|
|
59
|
-
throw new SkillCatalogVersionConflictError(skillKey);
|
|
60
|
-
}
|
|
61
|
-
const nextVersion = (cur.catalogVersion ?? 0) + 1;
|
|
62
|
-
const { skillKey: _sk, catalogVersion: _cv, createdAt: _ca, ...rest } = fields;
|
|
63
|
-
const patch = stripUndefined({
|
|
64
|
-
...rest,
|
|
65
|
-
catalogVersion: nextVersion,
|
|
66
|
-
updatedAt: new Date().toISOString(),
|
|
67
|
-
});
|
|
68
|
-
await this.col().patchByKey(skillKey, patch);
|
|
69
|
-
}
|
|
70
|
-
/** Soft-delete: sets `deletedAt` and optional lifecycle. */
|
|
71
|
-
async archive(skillKey, opts) {
|
|
72
|
-
await this.patch(skillKey, {
|
|
73
|
-
deletedAt: new Date().toISOString(),
|
|
74
|
-
lifecycle: opts?.lifecycle ?? "deprecated",
|
|
75
|
-
}, opts);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Hard-remove catalog row. Only when not production and `XILLIX_ALLOW_HARD_DELETE=true`.
|
|
79
|
-
*/
|
|
80
|
-
async hardDelete(skillKey) {
|
|
81
|
-
if (!isXillixHardDeleteAllowed()) {
|
|
82
|
-
throw new Error("[AI-SKILLS] hardDelete is only allowed when NODE_ENV !== 'production' and XILLIX_ALLOW_HARD_DELETE=true");
|
|
83
|
-
}
|
|
84
|
-
const n = await this.col().deleteMany({ skillKey }, { includeHidden: true, clearCache: "all" });
|
|
85
|
-
if (n < 1)
|
|
86
|
-
throw new SkillCatalogNotFoundError(skillKey);
|
|
87
|
-
}
|
|
88
|
-
async list(options = {}) {
|
|
89
|
-
const scanLimit = options.scanLimit ?? 10_000;
|
|
90
|
-
const rows = await this.col().readMany({}, { includeHidden: options.includeHidden === true, limit: scanLimit, sort: { skillKey: 1 } });
|
|
91
|
-
let out = rows;
|
|
92
|
-
if (options.activeOnly) {
|
|
93
|
-
out = out.filter((r) => r.lifecycle === "active" && (r.deletedAt === null || r.deletedAt === undefined));
|
|
94
|
-
}
|
|
95
|
-
if (options.tag) {
|
|
96
|
-
out = out.filter((r) => Array.isArray(r.tags) && r.tags.includes(options.tag));
|
|
97
|
-
}
|
|
98
|
-
if (options.skillKeyPrefix) {
|
|
99
|
-
const p = options.skillKeyPrefix;
|
|
100
|
-
out = out.filter((r) => typeof r.skillKey === "string" && r.skillKey.startsWith(p));
|
|
101
|
-
}
|
|
102
|
-
if (options.updatedAfter) {
|
|
103
|
-
const after = new Date(options.updatedAfter).getTime();
|
|
104
|
-
out = out.filter((r) => {
|
|
105
|
-
const t = Date.parse(r.updatedAt);
|
|
106
|
-
return !Number.isNaN(t) && t > after;
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
const offset = options.offset ?? 0;
|
|
110
|
-
const limit = options.limit;
|
|
111
|
-
if (offset > 0 || limit !== undefined) {
|
|
112
|
-
const end = limit === undefined ? undefined : offset + limit;
|
|
113
|
-
out = out.slice(offset, end);
|
|
114
|
-
}
|
|
115
|
-
return out;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Insert or full replace by `skillKey` (upsert). Used by seeds and migrations.
|
|
119
|
-
*/
|
|
120
|
-
async upsert(doc) {
|
|
121
|
-
const existing = await this.get(doc.skillKey, { includeHidden: true });
|
|
122
|
-
const now = new Date().toISOString();
|
|
123
|
-
if (!existing) {
|
|
124
|
-
const { catalogVersion: _cv, createdAt: _c, updatedAt: _u, ...forCreate } = doc;
|
|
125
|
-
await this.create(forCreate);
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
const nextVersion = doc.catalogVersion !== undefined ? doc.catalogVersion : (existing.catalogVersion ?? 0) + 1;
|
|
129
|
-
const merged = {
|
|
130
|
-
...existing,
|
|
131
|
-
...doc,
|
|
132
|
-
catalogVersion: nextVersion,
|
|
133
|
-
updatedAt: doc.updatedAt ?? now,
|
|
134
|
-
createdAt: existing.createdAt,
|
|
135
|
-
};
|
|
136
|
-
await this.col().update(doc.skillKey, stripUndefined(merged));
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
//# sourceMappingURL=skill-catalog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skill-catalog.js","sourceRoot":"","sources":["../../src/catalog/skill-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { XronoxStore } from "@xronoces/xronox-store";
|
|
2
|
-
import { SkillCatalog } from "./skill-catalog.js";
|
|
3
|
-
export interface CreateSkillCatalogStoreOptions {
|
|
4
|
-
mongoUri?: string;
|
|
5
|
-
mongoDb?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface SkillCatalogStoreBundle {
|
|
8
|
-
store: XronoxStore;
|
|
9
|
-
catalog: SkillCatalog;
|
|
10
|
-
init: () => Promise<void>;
|
|
11
|
-
close: () => Promise<void>;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Creates an `XronoxStore` scoped to `XILLIX_META_DB` (or `mongoDb`) and a {@link SkillCatalog} facade.
|
|
15
|
-
* Call `init()` before CRUD; call `close()` when finished.
|
|
16
|
-
*/
|
|
17
|
-
export declare function createSkillCatalogStore(options?: CreateSkillCatalogStoreOptions): SkillCatalogStoreBundle;
|
|
18
|
-
//# sourceMappingURL=store-factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store-factory.d.ts","sourceRoot":"","sources":["../../src/catalog/store-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD,MAAM,WAAW,8BAA8B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,8BAAmC,GAAG,uBAAuB,CAoB7G"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { XronoxStore } from "@xronoces/xronox-store";
|
|
2
|
-
import { AI_SKILL_CATALOG_COLLECTION } from "./constants.js";
|
|
3
|
-
import { getXillixMetaDbName } from "./env.js";
|
|
4
|
-
import { SkillCatalog } from "./skill-catalog.js";
|
|
5
|
-
const catalogCollectionDefinition = {
|
|
6
|
-
name: AI_SKILL_CATALOG_COLLECTION,
|
|
7
|
-
primaryKey: "skillKey",
|
|
8
|
-
indexes: [{ keys: { skillKey: 1 }, options: { unique: true, name: "uniq_skillKey" } }],
|
|
9
|
-
visibility: { field: "deletedAt", mode: "hiddenIfNonNull" },
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Creates an `XronoxStore` scoped to `XILLIX_META_DB` (or `mongoDb`) and a {@link SkillCatalog} facade.
|
|
13
|
-
* Call `init()` before CRUD; call `close()` when finished.
|
|
14
|
-
*/
|
|
15
|
-
export function createSkillCatalogStore(options = {}) {
|
|
16
|
-
const mongoUri = options.mongoUri ?? process.env.MONGO_URI?.trim();
|
|
17
|
-
if (!mongoUri) {
|
|
18
|
-
throw new Error("[AI-SKILLS] createSkillCatalogStore: MONGO_URI is required (or pass mongoUri).");
|
|
19
|
-
}
|
|
20
|
-
const mongoDb = options.mongoDb ?? getXillixMetaDbName();
|
|
21
|
-
const store = new XronoxStore({
|
|
22
|
-
mongoUri,
|
|
23
|
-
mongoDb,
|
|
24
|
-
collections: [catalogCollectionDefinition],
|
|
25
|
-
// Surface duplicate key and other persist errors to callers (catalog API maps E11000).
|
|
26
|
-
errorHandling: { onPersistError: "throw" },
|
|
27
|
-
});
|
|
28
|
-
const catalog = new SkillCatalog(store);
|
|
29
|
-
return {
|
|
30
|
-
store,
|
|
31
|
-
catalog,
|
|
32
|
-
init: () => store.init(),
|
|
33
|
-
close: () => store.close(),
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=store-factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store-factory.js","sourceRoot":"","sources":["../../src/catalog/store-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,2BAA2B,GAAyB;IACtD,IAAI,EAAE,2BAA2B;IACjC,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC;IACtF,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE;CAC9D,CAAC;AAcF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA0C,EAAE;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC;QAC1B,QAAQ;QACR,OAAO;QACP,WAAW,EAAE,CAAC,2BAA2B,CAAC;QAC1C,uFAAuF;QACvF,aAAa,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE;KAC7C,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO;QACH,KAAK;QACL,OAAO;QACP,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;QACxB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;KAC7B,CAAC;AACN,CAAC"}
|
package/dist/catalog/types.d.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
export type SkillLifecycle = "active" | "deprecated";
|
|
2
|
-
/**
|
|
3
|
-
* Authoritative catalog row for a remote AI task skill (`skills/...` key).
|
|
4
|
-
* Template fields back optional xillix content mode (inline gateway templates).
|
|
5
|
-
*/
|
|
6
|
-
export interface AiSkillCatalogDocument {
|
|
7
|
-
skillKey: string;
|
|
8
|
-
displayName?: string;
|
|
9
|
-
description?: string;
|
|
10
|
-
inputHints?: Record<string, unknown>;
|
|
11
|
-
outputHints?: Record<string, unknown>;
|
|
12
|
-
/** System / instruction template body (FlexMD + tokens). */
|
|
13
|
-
instructionsText?: string;
|
|
14
|
-
/** User prompt template body (typically contains `{{input}}`). */
|
|
15
|
-
promptText?: string;
|
|
16
|
-
lifecycle: SkillLifecycle;
|
|
17
|
-
tags?: string[];
|
|
18
|
-
/** Monotonic document version for optimistic concurrency. */
|
|
19
|
-
catalogVersion: number;
|
|
20
|
-
createdAt: string;
|
|
21
|
-
updatedAt: string;
|
|
22
|
-
deletedAt?: string | null;
|
|
23
|
-
/** FlexMD frame name after successful run (e.g. professional-answer). */
|
|
24
|
-
outputFrame?: string;
|
|
25
|
-
/** Optional JSON-schema-shaped hint for parsed output. */
|
|
26
|
-
outputSchema?: Record<string, unknown>;
|
|
27
|
-
requiredVariables?: string[];
|
|
28
|
-
optionalVariables?: string[];
|
|
29
|
-
}
|
|
30
|
-
export interface SkillCatalogListOptions {
|
|
31
|
-
/** Only `lifecycle === 'active'` and not soft-deleted. */
|
|
32
|
-
activeOnly?: boolean;
|
|
33
|
-
/** Match any catalog whose `tags` contains this string. */
|
|
34
|
-
tag?: string;
|
|
35
|
-
/** `skillKey.startsWith(prefix)` */
|
|
36
|
-
skillKeyPrefix?: string;
|
|
37
|
-
/** ISO date string — keep rows with `updatedAt` strictly after this instant. */
|
|
38
|
-
updatedAfter?: string;
|
|
39
|
-
/** Include soft-deleted rows (admin). */
|
|
40
|
-
includeHidden?: boolean;
|
|
41
|
-
/** Max rows to scan from store before in-memory filtering (catalog-sized). */
|
|
42
|
-
scanLimit?: number;
|
|
43
|
-
offset?: number;
|
|
44
|
-
limit?: number;
|
|
45
|
-
}
|
|
46
|
-
export interface SkillCatalogPatchOptions {
|
|
47
|
-
expectedVersion?: number;
|
|
48
|
-
}
|
|
49
|
-
export declare class SkillCatalogDuplicateKeyError extends Error {
|
|
50
|
-
readonly code: "SKILL_CATALOG_DUPLICATE_KEY";
|
|
51
|
-
constructor(skillKey: string);
|
|
52
|
-
}
|
|
53
|
-
export declare class SkillCatalogVersionConflictError extends Error {
|
|
54
|
-
readonly code: "SKILL_CATALOG_VERSION_CONFLICT";
|
|
55
|
-
constructor(skillKey: string);
|
|
56
|
-
}
|
|
57
|
-
export declare class SkillCatalogNotFoundError extends Error {
|
|
58
|
-
readonly code: "SKILL_CATALOG_NOT_FOUND";
|
|
59
|
-
constructor(skillKey: string);
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACpC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACpD,QAAQ,CAAC,IAAI,EAAG,6BAA6B,CAAU;gBAC3C,QAAQ,EAAE,MAAM;CAI/B;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACvD,QAAQ,CAAC,IAAI,EAAG,gCAAgC,CAAU;gBAC9C,QAAQ,EAAE,MAAM;CAI/B;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAG,yBAAyB,CAAU;gBACvC,QAAQ,EAAE,MAAM;CAI/B"}
|
package/dist/catalog/types.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export class SkillCatalogDuplicateKeyError extends Error {
|
|
2
|
-
code = "SKILL_CATALOG_DUPLICATE_KEY";
|
|
3
|
-
constructor(skillKey) {
|
|
4
|
-
super(`Skill catalog already has an entry for skillKey: ${skillKey}`);
|
|
5
|
-
this.name = "SkillCatalogDuplicateKeyError";
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
export class SkillCatalogVersionConflictError extends Error {
|
|
9
|
-
code = "SKILL_CATALOG_VERSION_CONFLICT";
|
|
10
|
-
constructor(skillKey) {
|
|
11
|
-
super(`Skill catalog version conflict for skillKey: ${skillKey}`);
|
|
12
|
-
this.name = "SkillCatalogVersionConflictError";
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
export class SkillCatalogNotFoundError extends Error {
|
|
16
|
-
code = "SKILL_CATALOG_NOT_FOUND";
|
|
17
|
-
constructor(skillKey) {
|
|
18
|
-
super(`Skill catalog entry not found: ${skillKey}`);
|
|
19
|
-
this.name = "SkillCatalogNotFoundError";
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"AAoDA,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC3C,IAAI,GAAG,6BAAsC,CAAC;IACvD,YAAY,QAAgB;QACxB,KAAK,CAAC,oDAAoD,QAAQ,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAChD,CAAC;CACJ;AAED,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IAC9C,IAAI,GAAG,gCAAyC,CAAC;IAC1D,YAAY,QAAgB;QACxB,KAAK,CAAC,gDAAgD,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IACnD,CAAC;CACJ;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACvC,IAAI,GAAG,yBAAkC,CAAC;IACnD,YAAY,QAAgB;QACxB,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC5C,CAAC;CACJ"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Catalox } from "@x12i/catalox";
|
|
2
|
-
import type { AiSkillsCatalogApi } from "./types.js";
|
|
3
|
-
export type CreateAiSkillsCatalogApiOptions = {
|
|
4
|
-
catalox: Catalox;
|
|
5
|
-
cataloxAppId?: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function createAiSkillsCatalogApi(options: CreateAiSkillsCatalogApiOptions): AiSkillsCatalogApi;
|
|
8
|
-
//# sourceMappingURL=createAiSkillsCatalogApi.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createAiSkillsCatalogApi.d.ts","sourceRoot":"","sources":["../../src/catalog-manager/createAiSkillsCatalogApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA0B7C,OAAO,KAAK,EACR,kBAAkB,EAUrB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,+BAA+B,GAAG;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA8BF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,kBAAkB,CAmKrG"}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { isSkillLocalForDiscovery } from "../catalox/ai-skills-catalog.js";
|
|
2
|
-
import { listAiSkillsCatalogItems, listSubSkillsCatalogItems } from "../catalox/list-ai-skills-catalog.js";
|
|
3
|
-
import { createSubSkill, deleteSubSkill, getSkillContent, getSkillTemplateInputs, getSkillVariableInventory, getSkillTemplatesForPresentation, getSkillTokens, isSubSkillCatalogItem, softDeleteSkillCatalogItem, updateSkillMetadata as updateSkillMetadataOnCatalog, updateSkillTemplatesFromPresentation, updateSkillVariableMetadata, declareSkillVariable, deleteSkillVariableMetadata, upsertSkillCatalogItem, } from "../catalox/skill-template-catalog-mutations.js";
|
|
4
|
-
import { catalogItemIdFromSkillKey, defaultAiSkillsCataloxContext, resolveSkillRuntimeFromCatalogs } from "../catalox/skill-templates.js";
|
|
5
|
-
import { resolveSearchContextCapability, skillContentPartsFromTexts } from "../catalox/skill-search-context.js";
|
|
6
|
-
import { resolveSynthesizedInputCapability } from "../catalox/skill-synthesis-template-integrity.js";
|
|
7
|
-
function deriveCatalogReleaseStatus(status) {
|
|
8
|
-
return status === "published" ? "published" : "draft";
|
|
9
|
-
}
|
|
10
|
-
function pickTemplatePatch(input) {
|
|
11
|
-
const patch = {};
|
|
12
|
-
if (input.instructionsMarkdown !== undefined)
|
|
13
|
-
patch.instructionsMarkdown = input.instructionsMarkdown;
|
|
14
|
-
if (input.promptMarkdown !== undefined)
|
|
15
|
-
patch.promptMarkdown = input.promptMarkdown;
|
|
16
|
-
if (input.auditInstructionsMarkdown !== undefined) {
|
|
17
|
-
patch.auditInstructionsMarkdown = input.auditInstructionsMarkdown;
|
|
18
|
-
}
|
|
19
|
-
if (input.auditPromptMarkdown !== undefined)
|
|
20
|
-
patch.auditPromptMarkdown = input.auditPromptMarkdown;
|
|
21
|
-
return patch;
|
|
22
|
-
}
|
|
23
|
-
function hasTemplatePatch(patch) {
|
|
24
|
-
return Object.keys(patch).length > 0;
|
|
25
|
-
}
|
|
26
|
-
function hasMetadataPatch(input) {
|
|
27
|
-
return (input.title !== undefined ||
|
|
28
|
-
input.description !== undefined ||
|
|
29
|
-
input.optimixer !== undefined ||
|
|
30
|
-
input.catalogReleaseStatus !== undefined);
|
|
31
|
-
}
|
|
32
|
-
export function createAiSkillsCatalogApi(options) {
|
|
33
|
-
const { catalox, cataloxAppId } = options;
|
|
34
|
-
const context = defaultAiSkillsCataloxContext({ appId: cataloxAppId });
|
|
35
|
-
const listOpts = cataloxAppId ? { appId: cataloxAppId } : undefined;
|
|
36
|
-
async function listSkills(opts = {}) {
|
|
37
|
-
const res = await listAiSkillsCatalogItems(catalox, {
|
|
38
|
-
...listOpts,
|
|
39
|
-
...(opts.limit != null ? { limit: opts.limit } : {}),
|
|
40
|
-
});
|
|
41
|
-
let items = res.items;
|
|
42
|
-
if (opts.status) {
|
|
43
|
-
items = items.filter((it) => it.status === opts.status);
|
|
44
|
-
}
|
|
45
|
-
if (opts.isLocal !== undefined) {
|
|
46
|
-
items = items.filter((it) => opts.isLocal ? isSkillLocalForDiscovery(it.skillKey) : !isSkillLocalForDiscovery(it.skillKey));
|
|
47
|
-
}
|
|
48
|
-
if (opts.search?.trim()) {
|
|
49
|
-
const q = opts.search.trim().toLowerCase();
|
|
50
|
-
items = items.filter((it) => it.skillKey.toLowerCase().includes(q) ||
|
|
51
|
-
it.title.toLowerCase().includes(q) ||
|
|
52
|
-
it.description.toLowerCase().includes(q));
|
|
53
|
-
}
|
|
54
|
-
return { ...res, items };
|
|
55
|
-
}
|
|
56
|
-
async function listSubSkills(parentSkillKey, opts) {
|
|
57
|
-
return listSubSkillsCatalogItems(catalox, parentSkillKey, {
|
|
58
|
-
...listOpts,
|
|
59
|
-
...(opts?.limit != null ? { limit: opts.limit } : {}),
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
async function getSkill(skillKey, opts = {}) {
|
|
63
|
-
const presentation = await getSkillTemplatesForPresentation(catalox, context, skillKey, opts);
|
|
64
|
-
const resolved = await resolveSkillRuntimeFromCatalogs(skillKey, { catalox, context });
|
|
65
|
-
const catalogItemId = catalogItemIdFromSkillKey(skillKey);
|
|
66
|
-
const isSubSkill = Boolean(resolved.parentSkillKey);
|
|
67
|
-
const searchContext = resolveSearchContextCapability(resolved.supportedCapabilities, skillContentPartsFromTexts(resolved));
|
|
68
|
-
const synthesizedInput = resolveSynthesizedInputCapability(resolved.supportedCapabilities, skillContentPartsFromTexts(resolved));
|
|
69
|
-
let supportedCapabilities = resolved.supportedCapabilities;
|
|
70
|
-
if (searchContext.inferredFromTemplates) {
|
|
71
|
-
supportedCapabilities = { ...supportedCapabilities, expectsSearchContext: true };
|
|
72
|
-
}
|
|
73
|
-
if (synthesizedInput.inferredFromTemplates) {
|
|
74
|
-
supportedCapabilities = { ...supportedCapabilities, expectsSynthesizedInput: true };
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
...presentation,
|
|
78
|
-
optimixer: resolved.optimixer,
|
|
79
|
-
isSubSkill,
|
|
80
|
-
catalogReleaseStatus: deriveCatalogReleaseStatus(resolved.status),
|
|
81
|
-
catalogItemId: presentation.catalogItemId || catalogItemId,
|
|
82
|
-
supportedCapabilities,
|
|
83
|
-
searchContext,
|
|
84
|
-
synthesizedInput,
|
|
85
|
-
runtime: resolved.runtime,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
async function createSkill(input) {
|
|
89
|
-
await upsertSkillCatalogItem(catalox, context, input, { ifNotExists: true });
|
|
90
|
-
}
|
|
91
|
-
async function updateSkill(input) {
|
|
92
|
-
const templatePatch = pickTemplatePatch(input);
|
|
93
|
-
const templateOpts = input.catalogReleaseStatus !== undefined ? { catalogReleaseStatus: input.catalogReleaseStatus } : undefined;
|
|
94
|
-
if (hasTemplatePatch(templatePatch)) {
|
|
95
|
-
await updateSkillTemplatesFromPresentation(catalox, context, input.skillKey, templatePatch, templateOpts);
|
|
96
|
-
}
|
|
97
|
-
if (hasMetadataPatch(input)) {
|
|
98
|
-
await updateSkillMetadataOnCatalog(catalox, context, {
|
|
99
|
-
skillKey: input.skillKey,
|
|
100
|
-
...(input.title !== undefined ? { title: input.title } : {}),
|
|
101
|
-
...(input.description !== undefined ? { description: input.description } : {}),
|
|
102
|
-
...(input.optimixer !== undefined ? { optimixer: input.optimixer } : {}),
|
|
103
|
-
...(input.catalogReleaseStatus !== undefined && !hasTemplatePatch(templatePatch)
|
|
104
|
-
? { catalogReleaseStatus: input.catalogReleaseStatus }
|
|
105
|
-
: {}),
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
if (!hasTemplatePatch(templatePatch) && !hasMetadataPatch(input)) {
|
|
109
|
-
throw new Error("[AI-SKILLS] updateSkill: patch must include at least one field.");
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
async function updateSkillMetadata(input) {
|
|
113
|
-
await updateSkillMetadataOnCatalog(catalox, context, input);
|
|
114
|
-
}
|
|
115
|
-
async function updateSkillTemplates(skillKey, patch, opts) {
|
|
116
|
-
await updateSkillTemplatesFromPresentation(catalox, context, skillKey, patch, opts);
|
|
117
|
-
}
|
|
118
|
-
async function publishSkill(skillKey) {
|
|
119
|
-
await updateSkillMetadataOnCatalog(catalox, context, {
|
|
120
|
-
skillKey,
|
|
121
|
-
catalogReleaseStatus: "published",
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
async function unpublishSkill(skillKey) {
|
|
125
|
-
await updateSkillMetadataOnCatalog(catalox, context, {
|
|
126
|
-
skillKey,
|
|
127
|
-
catalogReleaseStatus: "draft",
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
async function forkSkill(input) {
|
|
131
|
-
return createSubSkill(catalox, context, input);
|
|
132
|
-
}
|
|
133
|
-
async function deleteSkill(skillKey) {
|
|
134
|
-
const itemId = catalogItemIdFromSkillKey(skillKey);
|
|
135
|
-
if (await isSubSkillCatalogItem(catalox, context, itemId)) {
|
|
136
|
-
return deleteSubSkill(catalox, context, skillKey);
|
|
137
|
-
}
|
|
138
|
-
await softDeleteSkillCatalogItem(catalox, context, skillKey);
|
|
139
|
-
return { success: true };
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
listSkills,
|
|
143
|
-
listSubSkills,
|
|
144
|
-
getSkill,
|
|
145
|
-
getSkillContent: (skillKey) => getSkillContent(catalox, context, skillKey),
|
|
146
|
-
getSkillTokens: (skillKey) => getSkillTokens(catalox, context, skillKey),
|
|
147
|
-
getSkillTemplateInputs: (skillKey) => getSkillTemplateInputs(catalox, context, skillKey),
|
|
148
|
-
getSkillVariableInventory: (skillKey) => getSkillVariableInventory(catalox, context, skillKey),
|
|
149
|
-
updateSkillVariableMetadata: (skillKey, metadata) => updateSkillVariableMetadata(catalox, context, { skillKey, metadata }),
|
|
150
|
-
declareSkillVariable: (skillKey, kind, key, fields) => declareSkillVariable(catalox, context, { skillKey, kind, key, fields }),
|
|
151
|
-
deleteSkillVariableMetadata: (skillKey, token) => deleteSkillVariableMetadata(catalox, context, { skillKey, token }),
|
|
152
|
-
createSkill,
|
|
153
|
-
updateSkill,
|
|
154
|
-
updateSkillMetadata,
|
|
155
|
-
updateSkillTemplates,
|
|
156
|
-
publishSkill,
|
|
157
|
-
unpublishSkill,
|
|
158
|
-
forkSkill,
|
|
159
|
-
deleteSkill,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
//# sourceMappingURL=createAiSkillsCatalogApi.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createAiSkillsCatalogApi.js","sourceRoot":"","sources":["../../src/catalog-manager/createAiSkillsCatalogApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { createAiSkillsCatalogApi, type CreateAiSkillsCatalogApiOptions } from "./createAiSkillsCatalogApi.js";
|
|
2
|
-
export type { AiSkillsCatalogApi, AiSkillsCatalogItem, CreateSkillInput, DeleteSkillResult, ForkSkillInput, ForkSkillResult, GetSkillOptions, ListAiSkillsCatalogItemsResult, ListSkillsOptions, SkillCatalogDetail, UpdateSkillInput, UpdateSkillMetadataInput, } from "./types.js";
|
|
3
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/catalog-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,KAAK,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAC/G,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,8BAA8B,EAC9B,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,YAAY,CAAC"}
|