agentskeptic 1.4.0 → 2.0.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.
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/publicDistribution.generated.d.ts +1 -1
- package/dist/publicDistribution.generated.js +1 -1
- package/dist/registryDraft/bootstrapArgsMerge.d.ts +5 -0
- package/dist/registryDraft/bootstrapArgsMerge.d.ts.map +1 -0
- package/dist/registryDraft/bootstrapArgsMerge.js +43 -0
- package/dist/registryDraft/bootstrapArgsMerge.js.map +1 -0
- package/dist/registryDraft/buildRegistryDraftPrompt.d.ts.map +1 -1
- package/dist/registryDraft/buildRegistryDraftPrompt.js +3 -2
- package/dist/registryDraft/buildRegistryDraftPrompt.js.map +1 -1
- package/dist/registryDraft/buildRegistryDraftPrompt.test.js +1 -0
- package/dist/registryDraft/buildRegistryDraftPrompt.test.js.map +1 -1
- package/dist/registryDraft/createRegistryDraftAjv.js +2 -2
- package/dist/registryDraft/createRegistryDraftAjv.js.map +1 -1
- package/dist/registryDraft/draftEnv.d.ts +20 -0
- package/dist/registryDraft/draftEnv.d.ts.map +1 -0
- package/dist/registryDraft/draftEnv.js +47 -0
- package/dist/registryDraft/draftEnv.js.map +1 -0
- package/dist/registryDraft/engine.d.ts +26 -0
- package/dist/registryDraft/engine.d.ts.map +1 -0
- package/dist/registryDraft/engine.js +149 -0
- package/dist/registryDraft/engine.js.map +1 -0
- package/dist/registryDraft/index.d.ts +5 -1
- package/dist/registryDraft/index.d.ts.map +1 -1
- package/dist/registryDraft/index.js +3 -0
- package/dist/registryDraft/index.js.map +1 -1
- package/dist/registryDraft/jsonPointer.d.ts +8 -0
- package/dist/registryDraft/jsonPointer.d.ts.map +1 -0
- package/dist/registryDraft/jsonPointer.js +56 -0
- package/dist/registryDraft/jsonPointer.js.map +1 -0
- package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.d.ts +3 -0
- package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.d.ts.map +1 -1
- package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.js +3 -1
- package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.js.map +1 -1
- package/dist/registryDraft/providers/hosted_openai.d.ts +15 -0
- package/dist/registryDraft/providers/hosted_openai.d.ts.map +1 -0
- package/dist/registryDraft/providers/hosted_openai.js +77 -0
- package/dist/registryDraft/providers/hosted_openai.js.map +1 -0
- package/dist/registryDraft/providers/local_ollama.d.ts +14 -0
- package/dist/registryDraft/providers/local_ollama.d.ts.map +1 -0
- package/dist/registryDraft/providers/local_ollama.js +78 -0
- package/dist/registryDraft/providers/local_ollama.js.map +1 -0
- package/dist/registryDraft/readiness.d.ts +16 -0
- package/dist/registryDraft/readiness.d.ts.map +1 -0
- package/dist/registryDraft/readiness.js +58 -0
- package/dist/registryDraft/readiness.js.map +1 -0
- package/dist/registryDraft/runRegistryDraftCli.d.ts +2 -0
- package/dist/registryDraft/runRegistryDraftCli.d.ts.map +1 -0
- package/dist/registryDraft/runRegistryDraftCli.js +100 -0
- package/dist/registryDraft/runRegistryDraftCli.js.map +1 -0
- package/package.json +3 -1
- package/schemas/openapi-commercial-v1.yaml +1 -1
- package/schemas/registry-draft-llm-partial-v1.schema.json +18 -4
- package/schemas/registry-draft-request-v1.schema.json +11 -0
- package/schemas/registry-draft-response.schema.json +89 -0
- package/schemas/registry-draft-response-v2.schema.json +0 -52
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export { createRegistryDraftAjv, getRegistryDraftRequestValidator, getRegistryDraftResponseEnvelopeValidator, getBootstrapPackInputValidator, getToolsRegistryArrayValidator, } from "./createRegistryDraftAjv.js";
|
|
2
2
|
export { normalizeOpenAiToolCallsToBootstrapPackInput } from "./normalizeOpenAiToolCallsToBootstrapPackInput.js";
|
|
3
3
|
export { parseAndNormalizeRegistryDraftRequest } from "./parseAndNormalizeRegistryDraftRequest.js";
|
|
4
|
-
export type { RegistryDraftParseResult } from "./parseAndNormalizeRegistryDraftRequest.js";
|
|
4
|
+
export type { DraftProviderId, RegistryDraftParseResult } from "./parseAndNormalizeRegistryDraftRequest.js";
|
|
5
5
|
export { buildRegistryDraftPrompt } from "./buildRegistryDraftPrompt.js";
|
|
6
6
|
export { getOpenAiRegistryDraftLlmResponseJsonSchemaRoot } from "./openAiLlmResponseSchema.js";
|
|
7
|
+
export { credentialMissingForDraftProvider, generateRegistryDraft } from "./engine.js";
|
|
8
|
+
export type { DraftEngineFailure, DraftEngineSuccess } from "./engine.js";
|
|
9
|
+
export { callHostedOpenAiRegistryDraftJson } from "./providers/hosted_openai.js";
|
|
10
|
+
export { callLocalOllamaRegistryDraftJson } from "./providers/local_ollama.js";
|
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registryDraft/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,yCAAyC,EACzC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4CAA4C,EAAE,MAAM,mDAAmD,CAAC;AACjH,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AACnG,YAAY,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registryDraft/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,yCAAyC,EACzC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4CAA4C,EAAE,MAAM,mDAAmD,CAAC;AACjH,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AACnG,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAC5G,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,+CAA+C,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -3,4 +3,7 @@ export { normalizeOpenAiToolCallsToBootstrapPackInput } from "./normalizeOpenAiT
|
|
|
3
3
|
export { parseAndNormalizeRegistryDraftRequest } from "./parseAndNormalizeRegistryDraftRequest.js";
|
|
4
4
|
export { buildRegistryDraftPrompt } from "./buildRegistryDraftPrompt.js";
|
|
5
5
|
export { getOpenAiRegistryDraftLlmResponseJsonSchemaRoot } from "./openAiLlmResponseSchema.js";
|
|
6
|
+
export { credentialMissingForDraftProvider, generateRegistryDraft } from "./engine.js";
|
|
7
|
+
export { callHostedOpenAiRegistryDraftJson } from "./providers/hosted_openai.js";
|
|
8
|
+
export { callLocalOllamaRegistryDraftJson } from "./providers/local_ollama.js";
|
|
6
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registryDraft/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,yCAAyC,EACzC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4CAA4C,EAAE,MAAM,mDAAmD,CAAC;AACjH,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AAEnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,+CAA+C,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registryDraft/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,yCAAyC,EACzC,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4CAA4C,EAAE,MAAM,mDAAmD,CAAC;AACjH,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AAEnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,+CAA+C,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,iCAAiC,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Minimal RFC 6901 pointer resolution for draft verification pointerStress (integrator payloads). */
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a JSON Pointer against `doc`.
|
|
4
|
+
* Supports `/a/b`; returns `undefined` if path missing.
|
|
5
|
+
*/
|
|
6
|
+
export declare function resolveJsonPointer(doc: unknown, pointer: string): unknown;
|
|
7
|
+
export declare function collectPointerStringsFromDraftTools(toolsArrayOrNested: unknown): string[];
|
|
8
|
+
//# sourceMappingURL=jsonPointer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonPointer.d.ts","sourceRoot":"","sources":["../../src/registryDraft/jsonPointer.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAMtG;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBzE;AAED,wBAAgB,mCAAmC,CAAC,kBAAkB,EAAE,OAAO,GAAG,MAAM,EAAE,CAmBzF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** Minimal RFC 6901 pointer resolution for draft verification pointerStress (integrator payloads). */
|
|
2
|
+
function decodeJsonPointerSegment(seg) {
|
|
3
|
+
return seg.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a JSON Pointer against `doc`.
|
|
7
|
+
* Supports `/a/b`; returns `undefined` if path missing.
|
|
8
|
+
*/
|
|
9
|
+
export function resolveJsonPointer(doc, pointer) {
|
|
10
|
+
if (pointer === "")
|
|
11
|
+
return doc;
|
|
12
|
+
if (!pointer.startsWith("/"))
|
|
13
|
+
return undefined;
|
|
14
|
+
const parts = pointer.slice(1).split("/").map(decodeJsonPointerSegment);
|
|
15
|
+
let cur = doc;
|
|
16
|
+
for (const p of parts) {
|
|
17
|
+
if (cur === null || typeof cur !== "object")
|
|
18
|
+
return undefined;
|
|
19
|
+
if (Array.isArray(cur)) {
|
|
20
|
+
const i = Number(p);
|
|
21
|
+
if (!Number.isFinite(i) || i < 0 || i >= cur.length)
|
|
22
|
+
return undefined;
|
|
23
|
+
cur = cur[i];
|
|
24
|
+
}
|
|
25
|
+
else if (Object.prototype.hasOwnProperty.call(cur, p)) {
|
|
26
|
+
cur = cur[p];
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return cur;
|
|
33
|
+
}
|
|
34
|
+
export function collectPointerStringsFromDraftTools(toolsArrayOrNested) {
|
|
35
|
+
const out = new Set();
|
|
36
|
+
function walk(node) {
|
|
37
|
+
if (node === null || typeof node !== "object")
|
|
38
|
+
return;
|
|
39
|
+
if (Array.isArray(node)) {
|
|
40
|
+
node.forEach(walk);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const o = node;
|
|
44
|
+
if (typeof o.pointer === "string") {
|
|
45
|
+
const s = o.pointer;
|
|
46
|
+
if (s.startsWith("/"))
|
|
47
|
+
out.add(s);
|
|
48
|
+
}
|
|
49
|
+
for (const v of Object.values(o)) {
|
|
50
|
+
walk(v);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
walk(toolsArrayOrNested);
|
|
54
|
+
return [...out.values()];
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=jsonPointer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonPointer.js","sourceRoot":"","sources":["../../src/registryDraft/jsonPointer.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAEtG,SAAS,wBAAwB,CAAC,GAAW;IAC3C,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY,EAAE,OAAe;IAC9D,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxE,IAAI,GAAG,GAAY,GAAG,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YACtE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,GAAI,GAA+B,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,kBAA2B;IAC7E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,SAAS,IAAI,CAAC,IAAa;QACzB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO;QACtD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { ValidateFunction } from "ajv/dist/2020.js";
|
|
2
|
+
/** Explicit backend — default `hosted_openai`. No silent failover. */
|
|
3
|
+
export type DraftProviderId = "hosted_openai" | "local_ollama";
|
|
2
4
|
export type RegistryDraftParseResult = {
|
|
3
5
|
ok: true;
|
|
4
6
|
normalizedBootstrapPackInput: Record<string, unknown>;
|
|
5
7
|
ddlHint: string | undefined;
|
|
8
|
+
draftProvider: DraftProviderId;
|
|
6
9
|
} | {
|
|
7
10
|
ok: false;
|
|
8
11
|
errors: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAndNormalizeRegistryDraftRequest.d.ts","sourceRoot":"","sources":["../../src/registryDraft/parseAndNormalizeRegistryDraftRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,MAAM,MAAM,wBAAwB,GAChC;IACE,EAAE,EAAE,IAAI,CAAC;IACT,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"parseAndNormalizeRegistryDraftRequest.d.ts","sourceRoot":"","sources":["../../src/registryDraft/parseAndNormalizeRegistryDraftRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,sEAAsE;AACtE,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,cAAc,CAAC;AAE/D,MAAM,MAAM,wBAAwB,GAChC;IACE,EAAE,EAAE,IAAI,CAAC;IACT,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,aAAa,EAAE,eAAe,CAAC;CAChC,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAMnC;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,gBAAgB,EACjC,iBAAiB,EAAE,gBAAgB,GAClC,wBAAwB,CA8B1B"}
|
|
@@ -13,6 +13,8 @@ export function parseAndNormalizeRegistryDraftRequest(envelope, validateRequest,
|
|
|
13
13
|
const e = envelope;
|
|
14
14
|
const ddlHintRaw = e.ddlHint;
|
|
15
15
|
const ddlHint = typeof ddlHintRaw === "string" && ddlHintRaw.length > 0 ? ddlHintRaw : undefined;
|
|
16
|
+
const draftProviderRaw = e["draftProvider"];
|
|
17
|
+
const draftProvider = draftProviderRaw === "local_ollama" ? "local_ollama" : "hosted_openai";
|
|
16
18
|
let normalized;
|
|
17
19
|
if (e.inputKind === "bootstrap_pack_v1") {
|
|
18
20
|
normalized = cloneJson(e.bootstrapPackInput);
|
|
@@ -29,6 +31,6 @@ export function parseAndNormalizeRegistryDraftRequest(envelope, validateRequest,
|
|
|
29
31
|
if (!validateBootstrap(normalized)) {
|
|
30
32
|
return { ok: false, errors: validateBootstrap.errors ?? [] };
|
|
31
33
|
}
|
|
32
|
-
return { ok: true, normalizedBootstrapPackInput: normalized, ddlHint };
|
|
34
|
+
return { ok: true, normalizedBootstrapPackInput: normalized, ddlHint, draftProvider };
|
|
33
35
|
}
|
|
34
36
|
//# sourceMappingURL=parseAndNormalizeRegistryDraftRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAndNormalizeRegistryDraftRequest.js","sourceRoot":"","sources":["../../src/registryDraft/parseAndNormalizeRegistryDraftRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4CAA4C,EAAE,MAAM,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"parseAndNormalizeRegistryDraftRequest.js","sourceRoot":"","sources":["../../src/registryDraft/parseAndNormalizeRegistryDraftRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4CAA4C,EAAE,MAAM,mDAAmD,CAAC;AAcjH,SAAS,SAAS,CAAI,CAAI;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAM,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CACnD,QAAiB,EACjB,eAAiC,EACjC,iBAAmC;IAEnC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,GAAG,QAAmC,CAAC;IAC9C,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC;IAC7B,MAAM,OAAO,GACX,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,gBAAgB,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,aAAa,GACjB,gBAAgB,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;IAEzE,IAAI,UAAmC,CAAC;IACxC,IAAI,CAAC,CAAC,SAAS,KAAK,mBAAmB,EAAE,CAAC;QACxC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,kBAA6C,CAAC,CAAC;IAC1E,CAAC;SAAM,IAAI,CAAC,CAAC,SAAS,KAAK,sBAAsB,EAAE,CAAC;QAClD,UAAU,GAAG,4CAA4C,CAAC;YACxD,UAAU,EAAE,CAAC,CAAC,UAAoB;YAClC,UAAU,EAAE,CAAC,CAAC,UAAuB;SACtC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type HostedOpenAiResult = {
|
|
2
|
+
ok: true;
|
|
3
|
+
contentText: string;
|
|
4
|
+
} | {
|
|
5
|
+
ok: false;
|
|
6
|
+
status: number;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function callHostedOpenAiRegistryDraftJson(args: {
|
|
10
|
+
prompt: string;
|
|
11
|
+
model: string;
|
|
12
|
+
env: NodeJS.ProcessEnv;
|
|
13
|
+
fetchImpl?: typeof fetch;
|
|
14
|
+
}): Promise<HostedOpenAiResult>;
|
|
15
|
+
//# sourceMappingURL=hosted_openai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted_openai.d.ts","sourceRoot":"","sources":["../../../src/registryDraft/providers/hosted_openai.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,wBAAsB,iCAAiC,CAAC,IAAI,EAAE;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqE9B"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { getOpenAiRegistryDraftLlmResponseJsonSchemaRoot } from "../openAiLlmResponseSchema.js";
|
|
2
|
+
import { draftHttpTimeoutMs, fetchWithTransientRetry } from "../draftEnv.js";
|
|
3
|
+
/**
|
|
4
|
+
* OpenAI Chat Completions with `response_format.json_schema` (LLM partial).
|
|
5
|
+
*/
|
|
6
|
+
function openAiJsonSchemaPayload(root) {
|
|
7
|
+
const out = { ...root };
|
|
8
|
+
delete out["$schema"];
|
|
9
|
+
delete out["$id"];
|
|
10
|
+
delete out["title"];
|
|
11
|
+
delete out["description"];
|
|
12
|
+
return out;
|
|
13
|
+
}
|
|
14
|
+
export async function callHostedOpenAiRegistryDraftJson(args) {
|
|
15
|
+
const key = (args.env["OPENAI_API_KEY"] ?? "").trim();
|
|
16
|
+
if (!key) {
|
|
17
|
+
return { ok: false, status: 503, message: "OPENAI_API_KEY missing" };
|
|
18
|
+
}
|
|
19
|
+
const fetchFn = args.fetchImpl ?? globalThis.fetch;
|
|
20
|
+
const schemaRoot = openAiJsonSchemaPayload(getOpenAiRegistryDraftLlmResponseJsonSchemaRoot());
|
|
21
|
+
const ac = new AbortController();
|
|
22
|
+
const t = setTimeout(() => ac.abort(), draftHttpTimeoutMs(args.env));
|
|
23
|
+
let res;
|
|
24
|
+
try {
|
|
25
|
+
res = await fetchWithTransientRetry("https://api.openai.com/v1/chat/completions", {
|
|
26
|
+
method: "POST",
|
|
27
|
+
headers: {
|
|
28
|
+
Authorization: `Bearer ${key}`,
|
|
29
|
+
"Content-Type": "application/json",
|
|
30
|
+
},
|
|
31
|
+
body: JSON.stringify({
|
|
32
|
+
model: args.model,
|
|
33
|
+
messages: [{ role: "user", content: args.prompt }],
|
|
34
|
+
temperature: 0,
|
|
35
|
+
response_format: {
|
|
36
|
+
type: "json_schema",
|
|
37
|
+
json_schema: {
|
|
38
|
+
name: "RegistryDraftLlmPartialV1",
|
|
39
|
+
strict: false,
|
|
40
|
+
schema: schemaRoot,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
}),
|
|
44
|
+
signal: ac.signal,
|
|
45
|
+
}, { timeouts: [100, 250], fetchFn });
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
clearTimeout(t);
|
|
49
|
+
if (ac.signal.aborted) {
|
|
50
|
+
return { ok: false, status: 503, message: "PROVIDER_TIMEOUT" };
|
|
51
|
+
}
|
|
52
|
+
const nm = e instanceof Error ? e.name : "";
|
|
53
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
54
|
+
if (nm === "AbortError" || /\babort\b/i.test(msg)) {
|
|
55
|
+
return { ok: false, status: 503, message: "PROVIDER_TIMEOUT" };
|
|
56
|
+
}
|
|
57
|
+
return { ok: false, status: 503, message: "OPENAI_FETCH_FAILED" };
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
clearTimeout(t);
|
|
61
|
+
}
|
|
62
|
+
if (!res || !res.ok) {
|
|
63
|
+
return { ok: false, status: res?.status ?? 503, message: res?.message ?? "OPENAI_ERROR" };
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
const body = JSON.parse(res.text);
|
|
67
|
+
const content = body.choices?.[0]?.message?.content;
|
|
68
|
+
if (typeof content !== "string" || content.length === 0) {
|
|
69
|
+
return { ok: false, status: 503, message: "empty model content" };
|
|
70
|
+
}
|
|
71
|
+
return { ok: true, contentText: content };
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return { ok: false, status: 503, message: "OPENAI_PARSE_ERROR" };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=hosted_openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted_openai.js","sourceRoot":"","sources":["../../../src/registryDraft/providers/hosted_openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type LocalOllamaResult = {
|
|
2
|
+
ok: true;
|
|
3
|
+
contentText: string;
|
|
4
|
+
} | {
|
|
5
|
+
ok: false;
|
|
6
|
+
status: number;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function callLocalOllamaRegistryDraftJson(args: {
|
|
10
|
+
prompt: string;
|
|
11
|
+
env: NodeJS.ProcessEnv;
|
|
12
|
+
fetchImpl?: typeof fetch;
|
|
13
|
+
}): Promise<LocalOllamaResult>;
|
|
14
|
+
//# sourceMappingURL=local_ollama.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local_ollama.d.ts","sourceRoot":"","sources":["../../../src/registryDraft/providers/local_ollama.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,wBAAsB,gCAAgC,CAAC,IAAI,EAAE;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0E7B"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { getOpenAiRegistryDraftLlmResponseJsonSchemaRoot } from "../openAiLlmResponseSchema.js";
|
|
2
|
+
import { defaultOllamaChatUrl, draftHttpTimeoutMs, fetchWithTransientRetry } from "../draftEnv.js";
|
|
3
|
+
/** Ollama `POST /api/chat` — `format: "json"` forces JSON-only content in `message.content`. */
|
|
4
|
+
function openAiJsonSchemaPayload(root) {
|
|
5
|
+
const out = { ...root };
|
|
6
|
+
delete out["$schema"];
|
|
7
|
+
delete out["$id"];
|
|
8
|
+
delete out["title"];
|
|
9
|
+
delete out["description"];
|
|
10
|
+
return out;
|
|
11
|
+
}
|
|
12
|
+
export async function callLocalOllamaRegistryDraftJson(args) {
|
|
13
|
+
const fetchFn = args.fetchImpl ?? globalThis.fetch;
|
|
14
|
+
const model = (args.env["AGENTSKEPTIC_DRAFT_LOCAL_MODEL"] ?? "").trim();
|
|
15
|
+
if (!model) {
|
|
16
|
+
return { ok: false, status: 503, message: "AGENTSKEPTIC_DRAFT_LOCAL_MODEL missing" };
|
|
17
|
+
}
|
|
18
|
+
const timeoutMs = draftHttpTimeoutMs(args.env);
|
|
19
|
+
const url = defaultOllamaChatUrl(args.env);
|
|
20
|
+
/** Ask Ollama to emit JSON-shaped output for downstream partial parse parity with hosted `_partial` schema prose in prompt body. */
|
|
21
|
+
const schemaGuide = JSON.stringify(openAiJsonSchemaPayload(getOpenAiRegistryDraftLlmResponseJsonSchemaRoot()));
|
|
22
|
+
const userContent = `${args.prompt}\n\nStrict output: conform to this JSON shape (RFC JSON only, no prose): ${schemaGuide.slice(0, 12000)}`;
|
|
23
|
+
const ac = new AbortController();
|
|
24
|
+
const tm = setTimeout(() => ac.abort(), timeoutMs);
|
|
25
|
+
let res;
|
|
26
|
+
try {
|
|
27
|
+
res = await fetchWithTransientRetry(url, {
|
|
28
|
+
method: "POST",
|
|
29
|
+
headers: { "Content-Type": "application/json" },
|
|
30
|
+
signal: ac.signal,
|
|
31
|
+
body: JSON.stringify({
|
|
32
|
+
model,
|
|
33
|
+
stream: false,
|
|
34
|
+
format: "json",
|
|
35
|
+
messages: [{ role: "user", content: userContent }],
|
|
36
|
+
}),
|
|
37
|
+
}, { timeouts: [100, 250], fetchFn });
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
clearTimeout(tm);
|
|
41
|
+
if (ac.signal.aborted) {
|
|
42
|
+
return { ok: false, status: 503, message: "PROVIDER_TIMEOUT" };
|
|
43
|
+
}
|
|
44
|
+
const nm = e instanceof Error ? e.name : "";
|
|
45
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
46
|
+
if (nm === "AbortError" || /\babort\b/i.test(msg)) {
|
|
47
|
+
return { ok: false, status: 503, message: "PROVIDER_TIMEOUT" };
|
|
48
|
+
}
|
|
49
|
+
return { ok: false, status: 503, message: "OLLAMA_FETCH_FAILED" };
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
clearTimeout(tm);
|
|
53
|
+
}
|
|
54
|
+
if (!res || !res.ok) {
|
|
55
|
+
return { ok: false, status: res?.status ?? 503, message: res?.message ?? "OLLAMA_ERROR" };
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const body = JSON.parse(res.text);
|
|
59
|
+
const content = typeof body.message?.content === "string"
|
|
60
|
+
? body.message.content
|
|
61
|
+
: typeof body === "object" && body !== null && "response" in body
|
|
62
|
+
? String(body.response ?? "")
|
|
63
|
+
: "";
|
|
64
|
+
/** Some Ollama builds return structured object already */
|
|
65
|
+
let textOut = content;
|
|
66
|
+
if (!textOut && typeof body.message?.content === "object" && body.message.content !== null) {
|
|
67
|
+
textOut = JSON.stringify(body.message.content);
|
|
68
|
+
}
|
|
69
|
+
if (typeof textOut !== "string" || textOut.length === 0) {
|
|
70
|
+
return { ok: false, status: 503, message: "empty ollama model content" };
|
|
71
|
+
}
|
|
72
|
+
return { ok: true, contentText: textOut };
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return { ok: false, status: 503, message: "OLLAMA_PARSE_ERROR" };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=local_ollama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local_ollama.js","sourceRoot":"","sources":["../../../src/registryDraft/providers/local_ollama.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DraftProviderId } from "./parseAndNormalizeRegistryDraftRequest.js";
|
|
2
|
+
export type ReadinessStatus = "ready" | "review" | "blocked";
|
|
3
|
+
declare const REASON_VALUES: readonly ["REGISTRY_INVALID", "MERGE_FAILED", "MODEL_NON_JSON", "POINTERS_UNRESOLVED", "ASSUMPTIONS_PRESENT", "WARNINGS_PRESENT", "OK"];
|
|
4
|
+
export type ReadinessReasonCode = (typeof REASON_VALUES)[number];
|
|
5
|
+
export declare function scoreDraftReadiness(input: {
|
|
6
|
+
assumptions: string[];
|
|
7
|
+
warnings: string[];
|
|
8
|
+
normalizedBootstrap: Record<string, unknown>;
|
|
9
|
+
draftToolsUnknown: unknown;
|
|
10
|
+
}): {
|
|
11
|
+
status: ReadinessStatus;
|
|
12
|
+
reasons: ReadinessReasonCode[];
|
|
13
|
+
};
|
|
14
|
+
export declare function modelLabelForGeneration(draftProvider: DraftProviderId, llmModelField: unknown, env: NodeJS.ProcessEnv): string;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/registryDraft/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAOlF,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D,QAAA,MAAM,aAAa,yIAQT,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,iBAAiB,EAAE,OAAO,CAAC;CAC5B,GAAG;IACF,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC,CA2BA;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,eAAe,EAC9B,aAAa,EAAE,OAAO,EACtB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,CAKR"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { collectPointerStringsFromDraftTools, resolveJsonPointer, } from "./jsonPointer.js";
|
|
2
|
+
import { mergeBootstrapToolArgumentsForPointers } from "./bootstrapArgsMerge.js";
|
|
3
|
+
const REASON_VALUES = [
|
|
4
|
+
"REGISTRY_INVALID",
|
|
5
|
+
"MERGE_FAILED",
|
|
6
|
+
"MODEL_NON_JSON",
|
|
7
|
+
"POINTERS_UNRESOLVED",
|
|
8
|
+
"ASSUMPTIONS_PRESENT",
|
|
9
|
+
"WARNINGS_PRESENT",
|
|
10
|
+
"OK",
|
|
11
|
+
];
|
|
12
|
+
export function scoreDraftReadiness(input) {
|
|
13
|
+
let pointerUnresolvedCount = 0;
|
|
14
|
+
try {
|
|
15
|
+
const doc = mergeBootstrapToolArgumentsForPointers(input.normalizedBootstrap);
|
|
16
|
+
const ptrs = collectPointerStringsFromDraftTools(input.draftToolsUnknown);
|
|
17
|
+
for (const p of ptrs) {
|
|
18
|
+
const v = resolveJsonPointer(doc, p);
|
|
19
|
+
if (v === undefined)
|
|
20
|
+
pointerUnresolvedCount += 1;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
pointerUnresolvedCount = 999;
|
|
25
|
+
}
|
|
26
|
+
const ass = input.assumptions.length > 0;
|
|
27
|
+
const warn = input.warnings.length > 0;
|
|
28
|
+
const ptr = pointerUnresolvedCount > 0;
|
|
29
|
+
if (!ass && !warn && !ptr) {
|
|
30
|
+
return { status: "ready", reasons: ["OK"] };
|
|
31
|
+
}
|
|
32
|
+
const reasons = [];
|
|
33
|
+
if (ass)
|
|
34
|
+
reasons.push("ASSUMPTIONS_PRESENT");
|
|
35
|
+
if (warn)
|
|
36
|
+
reasons.push("WARNINGS_PRESENT");
|
|
37
|
+
if (ptr)
|
|
38
|
+
reasons.push("POINTERS_UNRESOLVED");
|
|
39
|
+
return { status: "review", reasons };
|
|
40
|
+
}
|
|
41
|
+
export function modelLabelForGeneration(draftProvider, llmModelField, env) {
|
|
42
|
+
if (draftProvider === "local_ollama") {
|
|
43
|
+
return (env["AGENTSKEPTIC_DRAFT_LOCAL_MODEL"] ?? "").trim() || fallbackModel(llmModelField);
|
|
44
|
+
}
|
|
45
|
+
return (env["REGISTRY_DRAFT_MODEL"] ?? "").trim() || fallbackModel(llmModelField) || "gpt-4o-mini";
|
|
46
|
+
}
|
|
47
|
+
function fallbackModel(llmModelField) {
|
|
48
|
+
if (llmModelField !== null &&
|
|
49
|
+
typeof llmModelField === "object" &&
|
|
50
|
+
"model" in llmModelField &&
|
|
51
|
+
typeof llmModelField.model === "string") {
|
|
52
|
+
const m = (llmModelField.model ?? "").trim();
|
|
53
|
+
if (m.length > 0)
|
|
54
|
+
return m;
|
|
55
|
+
}
|
|
56
|
+
return "";
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/registryDraft/readiness.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mCAAmC,EACnC,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sCAAsC,EAAE,MAAM,yBAAyB,CAAC;AAIjF,MAAM,aAAa,GAAG;IACpB,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,IAAI;CACI,CAAC;AAIX,MAAM,UAAU,mBAAmB,CAAC,KAKnC;IAIC,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,sCAAsC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,mCAAmC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC1E,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,SAAS;gBAAE,sBAAsB,IAAI,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB,GAAG,GAAG,CAAC;IAC/B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,sBAAsB,GAAG,CAAC,CAAC;IAEvC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,IAAI,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC7C,IAAI,IAAI;QAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAE7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,aAA8B,EAC9B,aAAsB,EACtB,GAAsB;IAEtB,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;AACrG,CAAC;AAED,SAAS,aAAa,CAAC,aAAsB;IAC3C,IACE,aAAa,KAAK,IAAI;QACtB,OAAO,aAAa,KAAK,QAAQ;QACjC,OAAO,IAAK,aAAwB;QACpC,OAAQ,aAAqC,CAAC,KAAK,KAAK,QAAQ,EAChE,CAAC;QACD,MAAM,CAAC,GAAG,CAAE,aAAmC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runRegistryDraftCli.d.ts","sourceRoot":"","sources":["../../src/registryDraft/runRegistryDraftCli.ts"],"names":[],"mappings":"AAkCA,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqF9E"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI `agentskeptic registry-draft` — mirrors POST /api/integrator/registry-draft without HTTP.
|
|
3
|
+
*/
|
|
4
|
+
import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
5
|
+
import { resolve } from "node:path";
|
|
6
|
+
import { argValue } from "../cliArgv.js";
|
|
7
|
+
import { getBootstrapPackInputValidator, getRegistryDraftRequestValidator, getRegistryDraftResponseEnvelopeValidator, getToolsRegistryArrayValidator, } from "./createRegistryDraftAjv.js";
|
|
8
|
+
import { generateRegistryDraft, credentialMissingForDraftProvider } from "./engine.js";
|
|
9
|
+
import { parseAndNormalizeRegistryDraftRequest } from "./parseAndNormalizeRegistryDraftRequest.js";
|
|
10
|
+
function usage() {
|
|
11
|
+
return `Usage:
|
|
12
|
+
agentskeptic registry-draft --provider hosted_openai|local_ollama --request <registry-draft-request.json>
|
|
13
|
+
[--out <directory>]
|
|
14
|
+
|
|
15
|
+
Reads a registry-draft-request-v1 JSON file plus explicit --provider, runs the Draft Engine, prints the v3 envelope JSON to stdout (one line).
|
|
16
|
+
With --out, writes draft tools array as tools.json (array file) and quick-ingest NDJSON as quick-input.ndjson.
|
|
17
|
+
|
|
18
|
+
Exit codes:
|
|
19
|
+
0 — DraftEngine.success
|
|
20
|
+
3 — credential, provider, or malformed input`;
|
|
21
|
+
}
|
|
22
|
+
function parseProvider(s) {
|
|
23
|
+
if (s === "hosted_openai" || s === "local_ollama")
|
|
24
|
+
return s;
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
export async function runRegistryDraftCliAndExit(argv) {
|
|
28
|
+
if (argv.includes("--help") || argv.includes("-h")) {
|
|
29
|
+
console.log(usage());
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
const providerRaw = argValue(argv, "--provider") ?? "";
|
|
33
|
+
const provider = parseProvider(providerRaw);
|
|
34
|
+
if (!provider) {
|
|
35
|
+
console.error(cliErr("Missing or invalid --provider (hosted_openai | local_ollama)"));
|
|
36
|
+
process.exit(3);
|
|
37
|
+
}
|
|
38
|
+
const requestPath = argValue(argv, "--request");
|
|
39
|
+
if (!requestPath || requestPath.length === 0) {
|
|
40
|
+
console.error(cliErr("Missing required --request <registry-draft-request.json>"));
|
|
41
|
+
process.exit(3);
|
|
42
|
+
}
|
|
43
|
+
const outDir = argValue(argv, "--out");
|
|
44
|
+
let rawEnvelope;
|
|
45
|
+
try {
|
|
46
|
+
rawEnvelope = readFileSync(resolve(requestPath), "utf8");
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
console.error(cliErr(`Cannot read ${requestPath}`));
|
|
50
|
+
process.exit(3);
|
|
51
|
+
}
|
|
52
|
+
let root;
|
|
53
|
+
try {
|
|
54
|
+
root = JSON.parse(rawEnvelope);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
console.error(cliErr("registry-draft-request JSON parse failed"));
|
|
58
|
+
process.exit(3);
|
|
59
|
+
}
|
|
60
|
+
/** CLI mandates explicit `--provider` (no silent divergence from envelope). */
|
|
61
|
+
root["draftProvider"] = provider;
|
|
62
|
+
const validateReq = getRegistryDraftRequestValidator();
|
|
63
|
+
const validateBoot = getBootstrapPackInputValidator();
|
|
64
|
+
const validateResponse = getRegistryDraftResponseEnvelopeValidator();
|
|
65
|
+
const validateTools = getToolsRegistryArrayValidator();
|
|
66
|
+
const parsed = parseAndNormalizeRegistryDraftRequest(root, validateReq, validateBoot);
|
|
67
|
+
if (!parsed.ok) {
|
|
68
|
+
console.error(cliErr(`INVALID_REQUEST: ${JSON.stringify(parsed.errors ?? [])}`));
|
|
69
|
+
process.exit(3);
|
|
70
|
+
}
|
|
71
|
+
const cre = credentialMissingForDraftProvider(provider, process.env);
|
|
72
|
+
if (cre) {
|
|
73
|
+
console.error(cliErr(cre));
|
|
74
|
+
process.exit(3);
|
|
75
|
+
}
|
|
76
|
+
const out = await generateRegistryDraft({
|
|
77
|
+
parsed,
|
|
78
|
+
validateResponseEnvelope: validateResponse,
|
|
79
|
+
validateToolsRegistryArray: validateTools,
|
|
80
|
+
env: process.env,
|
|
81
|
+
});
|
|
82
|
+
if (!out.ok) {
|
|
83
|
+
console.log(JSON.stringify({ ...out.body, _httpStatus: out.status }));
|
|
84
|
+
process.exit(3);
|
|
85
|
+
}
|
|
86
|
+
console.log(JSON.stringify(out.body));
|
|
87
|
+
if (outDir) {
|
|
88
|
+
const dir = resolve(outDir);
|
|
89
|
+
mkdirSync(dir, { recursive: true });
|
|
90
|
+
const draft = out.body["draft"];
|
|
91
|
+
writeFileSync(`${dir}/tools.json`, `${JSON.stringify(draft?.tools ?? [], null, 2)}\n`, "utf8");
|
|
92
|
+
const q = out.body["quickIngestInput"];
|
|
93
|
+
writeFileSync(`${dir}/quick-input.ndjson`, q?.body ?? "", "utf8");
|
|
94
|
+
}
|
|
95
|
+
process.exit(0);
|
|
96
|
+
}
|
|
97
|
+
function cliErr(msg) {
|
|
98
|
+
return JSON.stringify({ code: "CLI_REGISTRY_DRAFT", message: msg });
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=runRegistryDraftCli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runRegistryDraftCli.js","sourceRoot":"","sources":["../../src/registryDraft/runRegistryDraftCli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentskeptic",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "AgentSkeptic compares agent claims with real downstream state — databases, APIs, object stores, and vector stores — and returns a clear verdict.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
},
|
|
20
20
|
"./schemaLoad": "./dist/schemaLoad.js",
|
|
21
21
|
"./registryDraft": "./dist/registryDraft/index.js",
|
|
22
|
+
"./registryDraft/engine": "./dist/registryDraft/engine.js",
|
|
23
|
+
"./registryDraft/providers/hosted_openai": "./dist/registryDraft/providers/hosted_openai.js",
|
|
22
24
|
"./bootstrapPackSynthesis": "./dist/bootstrap/bootstrapPackSynthesis.js",
|
|
23
25
|
"./verificationHypothesisContract": "./dist/telemetry/verificationHypothesisContract.js",
|
|
24
26
|
"./firstFiveMinutesChecklist": "./dist/firstFiveMinutesChecklist.js"
|