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.
Files changed (57) hide show
  1. package/dist/cli.js +8 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/publicDistribution.generated.d.ts +1 -1
  4. package/dist/publicDistribution.generated.js +1 -1
  5. package/dist/registryDraft/bootstrapArgsMerge.d.ts +5 -0
  6. package/dist/registryDraft/bootstrapArgsMerge.d.ts.map +1 -0
  7. package/dist/registryDraft/bootstrapArgsMerge.js +43 -0
  8. package/dist/registryDraft/bootstrapArgsMerge.js.map +1 -0
  9. package/dist/registryDraft/buildRegistryDraftPrompt.d.ts.map +1 -1
  10. package/dist/registryDraft/buildRegistryDraftPrompt.js +3 -2
  11. package/dist/registryDraft/buildRegistryDraftPrompt.js.map +1 -1
  12. package/dist/registryDraft/buildRegistryDraftPrompt.test.js +1 -0
  13. package/dist/registryDraft/buildRegistryDraftPrompt.test.js.map +1 -1
  14. package/dist/registryDraft/createRegistryDraftAjv.js +2 -2
  15. package/dist/registryDraft/createRegistryDraftAjv.js.map +1 -1
  16. package/dist/registryDraft/draftEnv.d.ts +20 -0
  17. package/dist/registryDraft/draftEnv.d.ts.map +1 -0
  18. package/dist/registryDraft/draftEnv.js +47 -0
  19. package/dist/registryDraft/draftEnv.js.map +1 -0
  20. package/dist/registryDraft/engine.d.ts +26 -0
  21. package/dist/registryDraft/engine.d.ts.map +1 -0
  22. package/dist/registryDraft/engine.js +149 -0
  23. package/dist/registryDraft/engine.js.map +1 -0
  24. package/dist/registryDraft/index.d.ts +5 -1
  25. package/dist/registryDraft/index.d.ts.map +1 -1
  26. package/dist/registryDraft/index.js +3 -0
  27. package/dist/registryDraft/index.js.map +1 -1
  28. package/dist/registryDraft/jsonPointer.d.ts +8 -0
  29. package/dist/registryDraft/jsonPointer.d.ts.map +1 -0
  30. package/dist/registryDraft/jsonPointer.js +56 -0
  31. package/dist/registryDraft/jsonPointer.js.map +1 -0
  32. package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.d.ts +3 -0
  33. package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.d.ts.map +1 -1
  34. package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.js +3 -1
  35. package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.js.map +1 -1
  36. package/dist/registryDraft/providers/hosted_openai.d.ts +15 -0
  37. package/dist/registryDraft/providers/hosted_openai.d.ts.map +1 -0
  38. package/dist/registryDraft/providers/hosted_openai.js +77 -0
  39. package/dist/registryDraft/providers/hosted_openai.js.map +1 -0
  40. package/dist/registryDraft/providers/local_ollama.d.ts +14 -0
  41. package/dist/registryDraft/providers/local_ollama.d.ts.map +1 -0
  42. package/dist/registryDraft/providers/local_ollama.js +78 -0
  43. package/dist/registryDraft/providers/local_ollama.js.map +1 -0
  44. package/dist/registryDraft/readiness.d.ts +16 -0
  45. package/dist/registryDraft/readiness.d.ts.map +1 -0
  46. package/dist/registryDraft/readiness.js +58 -0
  47. package/dist/registryDraft/readiness.js.map +1 -0
  48. package/dist/registryDraft/runRegistryDraftCli.d.ts +2 -0
  49. package/dist/registryDraft/runRegistryDraftCli.d.ts.map +1 -0
  50. package/dist/registryDraft/runRegistryDraftCli.js +100 -0
  51. package/dist/registryDraft/runRegistryDraftCli.js.map +1 -0
  52. package/package.json +3 -1
  53. package/schemas/openapi-commercial-v1.yaml +1 -1
  54. package/schemas/registry-draft-llm-partial-v1.schema.json +18 -4
  55. package/schemas/registry-draft-request-v1.schema.json +11 -0
  56. package/schemas/registry-draft-response.schema.json +89 -0
  57. 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;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,+CAA+C,EAAE,MAAM,8BAA8B,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;CAC7B,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,CA2B1B"}
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;AAUjH,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;IAEnF,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,CAAC;AACzE,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,2 @@
1
+ export declare function runRegistryDraftCliAndExit(argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=runRegistryDraftCli.d.ts.map
@@ -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": "1.4.0",
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"
@@ -1,7 +1,7 @@
1
1
  openapi: "3.0.3"
2
2
  info:
3
3
  title: AgentSkeptic commercial license API
4
- version: "1.4.0"
4
+ version: "2.0.0"
5
5
  contact:
6
6
  url: https://agentskeptic.com
7
7
  x-agentskeptic-distribution: