agentskeptic 3.7.0 → 4.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 (140) hide show
  1. package/config/first-five-minutes.json +9 -0
  2. package/dist/assurance/buildAssuranceOutput.d.ts.map +1 -1
  3. package/dist/assurance/buildAssuranceOutput.js +6 -2
  4. package/dist/assurance/buildAssuranceOutput.js.map +1 -1
  5. package/dist/cli/migrateCommand.d.ts +1 -1
  6. package/dist/cli/migrateCommand.d.ts.map +1 -1
  7. package/dist/cli/migrateCommand.js +25 -28
  8. package/dist/cli/migrateCommand.js.map +1 -1
  9. package/dist/cli.js +0 -8
  10. package/dist/cli.js.map +1 -1
  11. package/dist/cliOperationalCodes.d.ts +1 -0
  12. package/dist/cliOperationalCodes.d.ts.map +1 -1
  13. package/dist/cliOperationalCodes.js +1 -0
  14. package/dist/cliOperationalCodes.js.map +1 -1
  15. package/dist/decisionGate.d.ts +1 -1
  16. package/dist/decisionGate.js +1 -1
  17. package/dist/execution-identity.v1.json +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/operationalDisposition.d.ts +8 -0
  23. package/dist/operationalDisposition.d.ts.map +1 -1
  24. package/dist/operationalDisposition.js +8 -0
  25. package/dist/operationalDisposition.js.map +1 -1
  26. package/dist/publicDistribution.generated.d.ts +1 -1
  27. package/dist/publicDistribution.generated.js +1 -1
  28. package/dist/relationalInvariant.d.ts +0 -3
  29. package/dist/relationalInvariant.d.ts.map +1 -1
  30. package/dist/relationalInvariant.js +0 -11
  31. package/dist/relationalInvariant.js.map +1 -1
  32. package/dist/sdk/AgentSkeptic.d.ts +1 -3
  33. package/dist/sdk/AgentSkeptic.d.ts.map +1 -1
  34. package/dist/sdk/AgentSkeptic.js +5 -2
  35. package/dist/sdk/AgentSkeptic.js.map +1 -1
  36. package/dist/stateWitness.d.ts.map +1 -1
  37. package/dist/stateWitness.js +4 -141
  38. package/dist/stateWitness.js.map +1 -1
  39. package/dist/stateWitness.test.js +8 -50
  40. package/dist/stateWitness.test.js.map +1 -1
  41. package/dist/telemetry/maybeEmitOssClaimTicketUrl.d.ts +1 -1
  42. package/dist/telemetry/maybeEmitOssClaimTicketUrl.d.ts.map +1 -1
  43. package/dist/telemetry/maybeEmitOssClaimTicketUrl.js +1 -9
  44. package/dist/telemetry/maybeEmitOssClaimTicketUrl.js.map +1 -1
  45. package/dist/types.d.ts +1 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/verificationConnections.d.ts.map +1 -1
  48. package/dist/verificationConnections.js +12 -119
  49. package/dist/verificationConnections.js.map +1 -1
  50. package/dist/verifyAgentskeptic.d.ts +1 -1
  51. package/dist/verifyAgentskeptic.js +1 -1
  52. package/package.json +4 -14
  53. package/schemas/agentskeptic-error-codes.json +103 -96
  54. package/schemas/ci/kernel-browser-open-patterns.json +25 -0
  55. package/schemas/ci/v4-copy-invariants.manifest.json +42 -0
  56. package/schemas/openapi-commercial-v1.yaml +1 -1
  57. package/dist/firstFiveMinutesChecklist.d.ts +0 -11
  58. package/dist/firstFiveMinutesChecklist.d.ts.map +0 -1
  59. package/dist/firstFiveMinutesChecklist.js +0 -18
  60. package/dist/firstFiveMinutesChecklist.js.map +0 -1
  61. package/dist/registryDraft/bootstrapArgsMerge.d.ts +0 -5
  62. package/dist/registryDraft/bootstrapArgsMerge.d.ts.map +0 -1
  63. package/dist/registryDraft/bootstrapArgsMerge.js +0 -43
  64. package/dist/registryDraft/bootstrapArgsMerge.js.map +0 -1
  65. package/dist/registryDraft/buildRegistryDraftPrompt.d.ts +0 -5
  66. package/dist/registryDraft/buildRegistryDraftPrompt.d.ts.map +0 -1
  67. package/dist/registryDraft/buildRegistryDraftPrompt.js +0 -31
  68. package/dist/registryDraft/buildRegistryDraftPrompt.js.map +0 -1
  69. package/dist/registryDraft/buildRegistryDraftPrompt.test.d.ts +0 -2
  70. package/dist/registryDraft/buildRegistryDraftPrompt.test.d.ts.map +0 -1
  71. package/dist/registryDraft/buildRegistryDraftPrompt.test.js +0 -14
  72. package/dist/registryDraft/buildRegistryDraftPrompt.test.js.map +0 -1
  73. package/dist/registryDraft/createRegistryDraftAjv.d.ts +0 -10
  74. package/dist/registryDraft/createRegistryDraftAjv.d.ts.map +0 -1
  75. package/dist/registryDraft/createRegistryDraftAjv.js +0 -71
  76. package/dist/registryDraft/createRegistryDraftAjv.js.map +0 -1
  77. package/dist/registryDraft/draftEnv.d.ts +0 -20
  78. package/dist/registryDraft/draftEnv.d.ts.map +0 -1
  79. package/dist/registryDraft/draftEnv.js +0 -47
  80. package/dist/registryDraft/draftEnv.js.map +0 -1
  81. package/dist/registryDraft/engine.d.ts +0 -26
  82. package/dist/registryDraft/engine.d.ts.map +0 -1
  83. package/dist/registryDraft/engine.js +0 -149
  84. package/dist/registryDraft/engine.js.map +0 -1
  85. package/dist/registryDraft/index.d.ts +0 -11
  86. package/dist/registryDraft/index.d.ts.map +0 -1
  87. package/dist/registryDraft/index.js +0 -9
  88. package/dist/registryDraft/index.js.map +0 -1
  89. package/dist/registryDraft/jsonPointer.d.ts +0 -8
  90. package/dist/registryDraft/jsonPointer.d.ts.map +0 -1
  91. package/dist/registryDraft/jsonPointer.js +0 -56
  92. package/dist/registryDraft/jsonPointer.js.map +0 -1
  93. package/dist/registryDraft/normalizeOpenAiToolCallsToBootstrapPackInput.d.ts +0 -8
  94. package/dist/registryDraft/normalizeOpenAiToolCallsToBootstrapPackInput.d.ts.map +0 -1
  95. package/dist/registryDraft/normalizeOpenAiToolCallsToBootstrapPackInput.js +0 -19
  96. package/dist/registryDraft/normalizeOpenAiToolCallsToBootstrapPackInput.js.map +0 -1
  97. package/dist/registryDraft/openAiLlmResponseSchema.d.ts +0 -6
  98. package/dist/registryDraft/openAiLlmResponseSchema.d.ts.map +0 -1
  99. package/dist/registryDraft/openAiLlmResponseSchema.js +0 -12
  100. package/dist/registryDraft/openAiLlmResponseSchema.js.map +0 -1
  101. package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.d.ts +0 -18
  102. package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.d.ts.map +0 -1
  103. package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.js +0 -36
  104. package/dist/registryDraft/parseAndNormalizeRegistryDraftRequest.js.map +0 -1
  105. package/dist/registryDraft/providers/hosted_openai.d.ts +0 -15
  106. package/dist/registryDraft/providers/hosted_openai.d.ts.map +0 -1
  107. package/dist/registryDraft/providers/hosted_openai.js +0 -77
  108. package/dist/registryDraft/providers/hosted_openai.js.map +0 -1
  109. package/dist/registryDraft/providers/local_ollama.d.ts +0 -14
  110. package/dist/registryDraft/providers/local_ollama.d.ts.map +0 -1
  111. package/dist/registryDraft/providers/local_ollama.js +0 -78
  112. package/dist/registryDraft/providers/local_ollama.js.map +0 -1
  113. package/dist/registryDraft/readiness.d.ts +0 -16
  114. package/dist/registryDraft/readiness.d.ts.map +0 -1
  115. package/dist/registryDraft/readiness.js +0 -58
  116. package/dist/registryDraft/readiness.js.map +0 -1
  117. package/dist/registryDraft/runRegistryDraftCli.d.ts +0 -2
  118. package/dist/registryDraft/runRegistryDraftCli.d.ts.map +0 -1
  119. package/dist/registryDraft/runRegistryDraftCli.js +0 -100
  120. package/dist/registryDraft/runRegistryDraftCli.js.map +0 -1
  121. package/dist/sdk/Gate.d.ts +0 -3
  122. package/dist/sdk/Gate.d.ts.map +0 -1
  123. package/dist/sdk/Gate.js +0 -2
  124. package/dist/sdk/Gate.js.map +0 -1
  125. package/dist/sdk/deprecate.d.ts +0 -6
  126. package/dist/sdk/deprecate.d.ts.map +0 -1
  127. package/dist/sdk/deprecate.js +0 -14
  128. package/dist/sdk/deprecate.js.map +0 -1
  129. package/dist/sdk/deprecatedPublicApi.d.ts +0 -18
  130. package/dist/sdk/deprecatedPublicApi.d.ts.map +0 -1
  131. package/dist/sdk/deprecatedPublicApi.js +0 -36
  132. package/dist/sdk/deprecatedPublicApi.js.map +0 -1
  133. package/dist/telemetry/openHandoffUrlInOsBrowser.d.ts +0 -9
  134. package/dist/telemetry/openHandoffUrlInOsBrowser.d.ts.map +0 -1
  135. package/dist/telemetry/openHandoffUrlInOsBrowser.js +0 -24
  136. package/dist/telemetry/openHandoffUrlInOsBrowser.js.map +0 -1
  137. package/dist/telemetry/postOssClaimContinuation.d.ts +0 -5
  138. package/dist/telemetry/postOssClaimContinuation.d.ts.map +0 -1
  139. package/dist/telemetry/postOssClaimContinuation.js +0 -34
  140. package/dist/telemetry/postOssClaimContinuation.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ {
2
+ "version": 1,
3
+ "patterns": [
4
+ {
5
+ "name": "posix_open_http_url",
6
+ "regex": "(?:open|xdg-open)\\s*[\\(\\`\"'](?:[^)\\`\"']*https?:\\/\\/[^)\\`\"']+)",
7
+ "description": "Shell open helper invoked with literal http(s) URL"
8
+ },
9
+ {
10
+ "name": "windows_start_http_url",
11
+ "regex": "start\\s+[\"']?[a-z]+:https?:\\/\\/\\S",
12
+ "description": "Windows start launcher with explicit URL scheme segment"
13
+ },
14
+ {
15
+ "name": "shell_open_external",
16
+ "regex": "openExternal\\s*\\(\\s*[`'\"`](?:https?:\\/\\/)[^`'\"]+[`'\"`]",
17
+ "description": "Electron/shell-style openExternal with http(s) literal"
18
+ },
19
+ {
20
+ "name": "child_process_spawn_open_url",
21
+ "regex": "(?:exec(?:File)?|spawn)\\s*\\([^)]*['\"`]open['\"`]",
22
+ "description": "child_process spawning open executable"
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "globRoots": ["docs/**/*.md", "README.md", "CONTRIBUTING.md", "website/src/**/*.{tsx,ts,md,mdx}"],
3
+ "ignoredPathSubstrings": ["**/node_modules/**"],
4
+ "symbolHistoricalAllowFiles": ["docs/migrate-2.md", "docs/quick-verify-normative.md", "CHANGELOG.md"],
5
+ "patterns": [
6
+ {
7
+ "name": "registry_draft_phrase",
8
+ "regex": "agentskeptic registry-draft",
9
+ "description": "Deprecated registry-draft prose pattern"
10
+ },
11
+ {
12
+ "name": "registry_draft_export_path",
13
+ "regex": "\\./registryDraft",
14
+ "description": "npm registryDraft export path"
15
+ },
16
+ {
17
+ "name": "bare_artifacts_validation_verdict",
18
+ "regex": "artifacts\\/(?!generated\\/)[^\\n\\r\\s]+\\-validation\\-verdict\\.json",
19
+ "description": "Validation verdict JSON filenames must live under artifacts/generated/"
20
+ },
21
+ {
22
+ "name": "oss_claim_stderr_env_token",
23
+ "regex": "AGENTSKEPTIC_OSS_CLAIM_STDERR",
24
+ "description": "Removed stderr env knob name"
25
+ },
26
+ {
27
+ "name": "first_five_checklist_relative_export",
28
+ "regex": "\\./firstFiveMinutesChecklist",
29
+ "description": "Removed firstFiveMinutesChecklist export path"
30
+ },
31
+ {
32
+ "name": "first_five_pkg_export_string",
33
+ "regex": "\\\"agentskeptic/firstFiveMinutesChecklist\\\"",
34
+ "description": "Removed npm subpath export string"
35
+ },
36
+ {
37
+ "name": "cli_opens_browser_hype",
38
+ "regex": "CLI opens browser",
39
+ "description": "Hyperbolic auto-navigation wording"
40
+ }
41
+ ]
42
+ }
@@ -1,7 +1,7 @@
1
1
  openapi: "3.0.3"
2
2
  info:
3
3
  title: AgentSkeptic commercial license API
4
- version: "3.7.0"
4
+ version: "4.0.0"
5
5
  contact:
6
6
  url: https://agentskeptic.com
7
7
  x-agentskeptic-distribution:
@@ -1,11 +0,0 @@
1
- /**
2
- * Single source of truth for the “first five minutes” onboarding checklist
3
- * (product success decoupled from telemetry). Imported by CLI, website, and
4
- * enforced in CI via doc fingerprints — do not duplicate these strings in markdown.
5
- */
6
- export declare const FIRST_FIVE_MINUTES_CHECKLIST: readonly string[];
7
- /** One line framing telemetry vs product outcome (shown in UI + envelope context). */
8
- export declare const TELEMETRY_ICING_LINE: "Optional telemetry helps connect browser demos and CLI verification. It never affects verification results and can be disabled.";
9
- /** Full lines that must not appear verbatim under docs/ (any .md file; guards hand-copied checklist drift). */
10
- export declare function getChecklistDocFingerprints(): ReadonlyArray<string>;
11
- //# sourceMappingURL=firstFiveMinutesChecklist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firstFiveMinutesChecklist.d.ts","sourceRoot":"","sources":["../src/firstFiveMinutesChecklist.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAKhD,CAAC;AAEX,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,EAC/B,iIAA0I,CAAC;AAE7I,+GAA+G;AAC/G,wBAAgB,2BAA2B,IAAI,aAAa,CAAC,MAAM,CAAC,CAEnE"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Single source of truth for the “first five minutes” onboarding checklist
3
- * (product success decoupled from telemetry). Imported by CLI, website, and
4
- * enforced in CI via doc fingerprints — do not duplicate these strings in markdown.
5
- */
6
- export const FIRST_FIVE_MINUTES_CHECKLIST = [
7
- "Visit an allowlisted marketing page or /integrate so the site can mint or reuse funnel_anon_id (skipped on routes without the beacon).",
8
- "Join CLI to that id: run agentskeptic funnel-anon pull once, or agentskeptic funnel-anon set <uuid> if you already copied one from the browser.",
9
- "Run verification on your workflow; green exit and verdict are product success.",
10
- "Set AGENTSKEPTIC_TELEMETRY=0 to disable opt-in activity posts; they never change verification results.",
11
- ];
12
- /** One line framing telemetry vs product outcome (shown in UI + envelope context). */
13
- export const TELEMETRY_ICING_LINE = "Optional telemetry helps connect browser demos and CLI verification. It never affects verification results and can be disabled.";
14
- /** Full lines that must not appear verbatim under docs/ (any .md file; guards hand-copied checklist drift). */
15
- export function getChecklistDocFingerprints() {
16
- return [...FIRST_FIVE_MINUTES_CHECKLIST, TELEMETRY_ICING_LINE];
17
- }
18
- //# sourceMappingURL=firstFiveMinutesChecklist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firstFiveMinutesChecklist.js","sourceRoot":"","sources":["../src/firstFiveMinutesChecklist.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAsB;IAC7D,wIAAwI;IACxI,iJAAiJ;IACjJ,gFAAgF;IAChF,wGAAwG;CAChG,CAAC;AAEX,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAC/B,iIAA0I,CAAC;AAE7I,+GAA+G;AAC/G,MAAM,UAAU,2BAA2B;IACzC,OAAO,CAAC,GAAG,4BAA4B,EAAE,oBAAoB,CAAC,CAAC;AACjE,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Builds a shallow+deep merger of structured tool-call `arguments` JSON from a normalized BootstrapPackInput.
3
- */
4
- export declare function mergeBootstrapToolArgumentsForPointers(normalizedBootstrap: Record<string, unknown>): Record<string, unknown>;
5
- //# sourceMappingURL=bootstrapArgsMerge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrapArgsMerge.d.ts","sourceRoot":"","sources":["../../src/registryDraft/bootstrapArgsMerge.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,sCAAsC,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyB5H"}
@@ -1,43 +0,0 @@
1
- /**
2
- * Builds a shallow+deep merger of structured tool-call `arguments` JSON from a normalized BootstrapPackInput.
3
- */
4
- export function mergeBootstrapToolArgumentsForPointers(normalizedBootstrap) {
5
- const choices = normalizedBootstrap.openaiChatCompletion;
6
- const toolCalls = choices?.choices?.[0]?.message?.tool_calls;
7
- if (!Array.isArray(toolCalls))
8
- return {};
9
- let merged = {};
10
- for (const tc of toolCalls) {
11
- const raw = tc?.function?.arguments;
12
- if (typeof raw !== "string" || raw.length === 0)
13
- continue;
14
- try {
15
- const parsed = JSON.parse(raw);
16
- merged = deepMergeObjects(merged, parsed);
17
- }
18
- catch {
19
- /* skip malformed */
20
- }
21
- }
22
- return merged;
23
- }
24
- function deepMergeObjects(a, b) {
25
- const out = { ...a };
26
- for (const [k, v] of Object.entries(b)) {
27
- const existing = out[k];
28
- if (isPlainRecord(existing) &&
29
- v !== null &&
30
- typeof v === "object" &&
31
- !Array.isArray(v)) {
32
- out[k] = deepMergeObjects(existing, v);
33
- }
34
- else {
35
- out[k] = v;
36
- }
37
- }
38
- return out;
39
- }
40
- function isPlainRecord(u) {
41
- return typeof u === "object" && u !== null && !Array.isArray(u);
42
- }
43
- //# sourceMappingURL=bootstrapArgsMerge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrapArgsMerge.js","sourceRoot":"","sources":["../../src/registryDraft/bootstrapArgsMerge.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,sCAAsC,CAAC,mBAA4C;IACjG,MAAM,OAAO,GAAG,mBAAmB,CAAC,oBAQvB,CAAC;IACd,MAAM,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC;QACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;YAC1D,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CACvB,CAA0B,EAC1B,CAA0B;IAE1B,MAAM,GAAG,GAA4B,EAAE,GAAG,CAAC,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,IACE,aAAa,CAAC,QAAQ,CAAC;YACvB,CAAC,KAAK,IAAI;YACV,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACjB,CAAC;YACD,GAAG,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAA4B,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Deterministic prompt text for registry-draft LLM (draft only; not verification).
3
- */
4
- export declare function buildRegistryDraftPrompt(normalizedBootstrapPackInput: Record<string, unknown>, ddlHint: string | undefined): string;
5
- //# sourceMappingURL=buildRegistryDraftPrompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildRegistryDraftPrompt.d.ts","sourceRoot":"","sources":["../../src/registryDraft/buildRegistryDraftPrompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrD,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,MAAM,CA0BR"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Deterministic prompt text for registry-draft LLM (draft only; not verification).
3
- */
4
- export function buildRegistryDraftPrompt(normalizedBootstrapPackInput, ddlHint) {
5
- const payload = JSON.stringify(normalizedBootstrapPackInput);
6
- const hint = ddlHint?.trim()
7
- ? `\n\nOptional DDL / schema hint from operator (may be empty; do not treat as executable SQL):\n${ddlHint.trim()}`
8
- : "";
9
- return `You are drafting a tools.json registry for AgentSkeptic verification. Output is NOT executed on the server and is NOT truth.
10
-
11
- Rules:
12
- - Return ONLY JSON (no markdown fences, no prose). Top level: draft, assumptions, warnings, disclaimer, model. Do NOT include schemaVersion, quickIngestInput, or any other keys — the server adds those.
13
- - draft.tools is a JSON array (min length 1). Each element MUST be an object with EXACTLY these three keys — no aliases, no extra keys:
14
- 1) toolId (string, non-empty; use the function name from the bootstrap input, e.g. "crm.upsert_contact")
15
- 2) effectDescriptionTemplate (string; describe the side effect; you may use JSON Pointer fragments like {/recordId} in the text)
16
- 3) verification (object; choose one variant). Prefer sql_row when a single row should exist:
17
- { "kind": "sql_row", "table": { "const": "<table>" }, "identityEq": [ { "column": { "const": "<col>" }, "value": { "pointer": "<json-pointer>" } } ], "requiredFields": { "pointer": "<json-pointer>" } }
18
- The string "sql_row" belongs ONLY inside verification.kind — never use a sibling property named "sql_row", never rename verification to something else, and never put row-check fields at the top level of the tool object.
19
- - Do NOT use "name" instead of toolId. Do NOT nest verification under informal keys.
20
- - assumptions and warnings are string arrays (may be empty). disclaimer is a non-empty string (state human review required).
21
- - model MUST be an object with EXACTLY one property: "model" — the model identifier string you are using (hosted or local). Do NOT include schemaVersion, quickIngestInput, generation, or provider fields.
22
-
23
- Minimal structural example (placeholders — replace with values inferred from the bootstrap input):
24
- {"draft":{"tools":[{"toolId":"namespace.tool_name","effectDescriptionTemplate":"Upsert row {/recordId} with fields {/fields}","verification":{"kind":"sql_row","table":{"const":"contacts"},"identityEq":[{"column":{"const":"id"},"value":{"pointer":"/recordId"}}],"requiredFields":{"pointer":"/fields"}}}]},"assumptions":[],"warnings":[],"disclaimer":"Draft only; review before use.","model":{"model":"gpt-4o-mini"}}
25
-
26
- Do not claim execution correctness.
27
-
28
- BootstrapPackInput (normalized) JSON:
29
- ${payload}${hint}`;
30
- }
31
- //# sourceMappingURL=buildRegistryDraftPrompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildRegistryDraftPrompt.js","sourceRoot":"","sources":["../../src/registryDraft/buildRegistryDraftPrompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,4BAAqD,EACrD,OAA2B;IAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE;QAC1B,CAAC,CAAC,iGAAiG,OAAO,CAAC,IAAI,EAAE,EAAE;QACnH,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;;;;;;;;;;;;;;;;;;;EAoBP,OAAO,GAAG,IAAI,EAAE,CAAC;AACnB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=buildRegistryDraftPrompt.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildRegistryDraftPrompt.test.d.ts","sourceRoot":"","sources":["../../src/registryDraft/buildRegistryDraftPrompt.test.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { buildRegistryDraftPrompt } from "./buildRegistryDraftPrompt.js";
3
- describe("buildRegistryDraftPrompt", () => {
4
- it("names required tool keys and forbids common model mistakes", () => {
5
- const p = buildRegistryDraftPrompt({ workflowId: "wf_x", tool_calls: [] }, undefined);
6
- expect(p).toContain("toolId");
7
- expect(p).toContain("effectDescriptionTemplate");
8
- expect(p).toContain('"kind":"sql_row"');
9
- expect(p).toContain("\"model\":");
10
- expect(p).toContain("Do NOT use \"name\" instead of toolId");
11
- expect(p).toContain("never use a sibling property named \"sql_row\"");
12
- });
13
- });
14
- //# sourceMappingURL=buildRegistryDraftPrompt.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildRegistryDraftPrompt.test.js","sourceRoot":"","sources":["../../src/registryDraft/buildRegistryDraftPrompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,GAAG,wBAAwB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QACtF,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC7D,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { Ajv2020, type ValidateFunction } from "ajv/dist/2020.js";
2
- /**
3
- * Isolated AJV for registry-draft HTTP + tests. Registration order is normative (see docs/registry-draft.md).
4
- */
5
- export declare function createRegistryDraftAjv(): InstanceType<typeof Ajv2020>;
6
- export declare function getRegistryDraftRequestValidator(): ValidateFunction;
7
- export declare function getRegistryDraftResponseEnvelopeValidator(): ValidateFunction;
8
- export declare function getBootstrapPackInputValidator(): ValidateFunction;
9
- export declare function getToolsRegistryArrayValidator(): ValidateFunction;
10
- //# sourceMappingURL=createRegistryDraftAjv.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRegistryDraftAjv.d.ts","sourceRoot":"","sources":["../../src/registryDraft/createRegistryDraftAjv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAqBlE;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,CAAC,OAAO,OAAO,CAAC,CAUrE;AAWD,wBAAgB,gCAAgC,IAAI,gBAAgB,CAOnE;AAED,wBAAgB,yCAAyC,IAAI,gBAAgB,CAO5E;AAED,wBAAgB,8BAA8B,IAAI,gBAAgB,CAOjE;AAED,wBAAgB,8BAA8B,IAAI,gBAAgB,CAOjE"}
@@ -1,71 +0,0 @@
1
- import { Ajv2020 } from "ajv/dist/2020.js";
2
- import ajvFormats from "ajv-formats";
3
- import { readFileSync } from "node:fs";
4
- import path from "node:path";
5
- import { schemasDir } from "../schemaLoad.js";
6
- const applyAjvFormats = ajvFormats;
7
- const SCHEMA_FILES_IN_ORDER = [
8
- "openai-function-tool-call-item-v1.schema.json",
9
- "bootstrap-pack-input-v1.schema.json",
10
- "registry-draft-request-v1.schema.json",
11
- "registry-draft-response.schema.json",
12
- "tools-registry.schema.json",
13
- ];
14
- const REGISTRY_DRAFT_REQUEST_ID = "https://agentskeptic.com/schemas/registry-draft-request-v1.schema.json";
15
- const REGISTRY_DRAFT_RESPONSE_ID = "https://agentskeptic.com/schemas/registry-draft-response.schema.json";
16
- const BOOTSTRAP_PACK_INPUT_ID = "https://agentskeptic.com/schemas/bootstrap-pack-input-v1.schema.json";
17
- const TOOLS_REGISTRY_ID = "https://agentskeptic.com/schemas/tools-registry.schema.json";
18
- /**
19
- * Isolated AJV for registry-draft HTTP + tests. Registration order is normative (see docs/registry-draft.md).
20
- */
21
- export function createRegistryDraftAjv() {
22
- const ajv = new Ajv2020({ allErrors: true, strict: true, allowUnionTypes: true });
23
- applyAjvFormats(ajv);
24
- const dir = schemasDir();
25
- for (const file of SCHEMA_FILES_IN_ORDER) {
26
- const raw = readFileSync(path.join(dir, file), "utf8");
27
- const schema = JSON.parse(raw);
28
- ajv.addSchema(schema);
29
- }
30
- return ajv;
31
- }
32
- let cachedAjv = null;
33
- function getSingletonAjv() {
34
- if (!cachedAjv) {
35
- cachedAjv = createRegistryDraftAjv();
36
- }
37
- return cachedAjv;
38
- }
39
- export function getRegistryDraftRequestValidator() {
40
- const ajv = getSingletonAjv();
41
- const v = ajv.getSchema(REGISTRY_DRAFT_REQUEST_ID);
42
- if (!v) {
43
- throw new Error("registry-draft-request schema not registered");
44
- }
45
- return v;
46
- }
47
- export function getRegistryDraftResponseEnvelopeValidator() {
48
- const ajv = getSingletonAjv();
49
- const v = ajv.getSchema(REGISTRY_DRAFT_RESPONSE_ID);
50
- if (!v) {
51
- throw new Error("registry-draft-response schema not registered");
52
- }
53
- return v;
54
- }
55
- export function getBootstrapPackInputValidator() {
56
- const ajv = getSingletonAjv();
57
- const v = ajv.getSchema(BOOTSTRAP_PACK_INPUT_ID);
58
- if (!v) {
59
- throw new Error("bootstrap-pack-input schema not registered");
60
- }
61
- return v;
62
- }
63
- export function getToolsRegistryArrayValidator() {
64
- const ajv = getSingletonAjv();
65
- const v = ajv.getSchema(TOOLS_REGISTRY_ID);
66
- if (!v) {
67
- throw new Error("tools-registry schema not registered");
68
- }
69
- return v;
70
- }
71
- //# sourceMappingURL=createRegistryDraftAjv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRegistryDraftAjv.js","sourceRoot":"","sources":["../../src/registryDraft/createRegistryDraftAjv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,kBAAkB,CAAC;AAClE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,eAAe,GAAG,UAA4F,CAAC;AAErH,MAAM,qBAAqB,GAAG;IAC5B,+CAA+C;IAC/C,qCAAqC;IACrC,uCAAuC;IACvC,qCAAqC;IACrC,4BAA4B;CACpB,CAAC;AAEX,MAAM,yBAAyB,GAAG,wEAAwE,CAAC;AAC3G,MAAM,0BAA0B,GAAG,sEAAsE,CAAC;AAC1G,MAAM,uBAAuB,GAAG,sEAAsE,CAAC;AACvG,MAAM,iBAAiB,GAAG,6DAA6D,CAAC;AAExF;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,eAAe,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA8B,CAAC;QAC5D,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,IAAI,SAAS,GAAwC,IAAI,CAAC;AAE1D,SAAS,eAAe;IACtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,sBAAsB,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,yCAAyC;IACvD,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Environment surface for DraftEngine (hosted OpenAI + local Ollama). No silent cross-provider fallback.
3
- */
4
- export declare function draftHttpTimeoutMs(env: NodeJS.ProcessEnv): number;
5
- export declare function defaultOllamaChatUrl(env: NodeJS.ProcessEnv): string;
6
- export type FetchWithRetryResult = {
7
- ok: true;
8
- status: number;
9
- text: string;
10
- } | {
11
- ok: false;
12
- status: number;
13
- message: string;
14
- };
15
- /** Bounded retry for idempotent POST (OpenAI / Ollama) on 502/529/503 transient. */
16
- export declare function fetchWithTransientRetry(url: string, init: RequestInit, opts: {
17
- timeouts: number[];
18
- fetchFn?: typeof fetch;
19
- }): Promise<FetchWithRetryResult>;
20
- //# sourceMappingURL=draftEnv.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"draftEnv.d.ts","sourceRoot":"","sources":["../../src/registryDraft/draftEnv.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAKjE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAcnE;AAMD,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,oFAAoF;AACpF,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;CAAE,GACnD,OAAO,CAAC,oBAAoB,CAAC,CAgB/B"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Environment surface for DraftEngine (hosted OpenAI + local Ollama). No silent cross-provider fallback.
3
- */
4
- export function draftHttpTimeoutMs(env) {
5
- const raw = env["AGENTSKEPTIC_DRAFT_HTTP_TIMEOUT_MS"];
6
- if (raw === undefined || raw === "")
7
- return 120_000;
8
- const n = Number(raw);
9
- return Number.isFinite(n) && n > 0 ? n : 120_000;
10
- }
11
- export function defaultOllamaChatUrl(env) {
12
- const raw = (env["OLLAMA_HOST"] ?? "http://127.0.0.1:11434").trim();
13
- const withScheme = raw.length === 0
14
- ? "http://127.0.0.1:11434"
15
- : /^[a-zA-Z][a-zA-Z+\-.]*:/.test(raw)
16
- ? raw
17
- : `http://${raw}`;
18
- try {
19
- const u = new URL(withScheme);
20
- return new URL("/api/chat", `${u.origin}/`).href;
21
- }
22
- catch {
23
- return "http://127.0.0.1:11434/api/chat";
24
- }
25
- }
26
- function sleep(ms) {
27
- return new Promise((r) => setTimeout(r, ms));
28
- }
29
- /** Bounded retry for idempotent POST (OpenAI / Ollama) on 502/529/503 transient. */
30
- export async function fetchWithTransientRetry(url, init, opts) {
31
- const f = opts.fetchFn ?? globalThis.fetch;
32
- for (let attempt = 0; attempt <= opts.timeouts.length; attempt++) {
33
- const res = await f(url, init);
34
- const text = await res.text();
35
- if (res.ok) {
36
- return { ok: true, status: res.status, text };
37
- }
38
- const retryable = res.status === 502 || res.status === 503 || res.status === 429;
39
- if (!retryable || attempt === opts.timeouts.length) {
40
- const st = res.status === 401 || res.status === 403 ? res.status : 503;
41
- return { ok: false, status: st, message: `PROVIDER_HTTP_${res.status}` };
42
- }
43
- await sleep(opts.timeouts[attempt]);
44
- }
45
- return { ok: false, status: 503, message: "PROVIDER_HTTP_503" };
46
- }
47
- //# sourceMappingURL=draftEnv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"draftEnv.js","sourceRoot":"","sources":["../../src/registryDraft/draftEnv.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { ValidateFunction } from "ajv/dist/2020.js";
2
- import type { DraftProviderId, RegistryDraftParseResult } from "./parseAndNormalizeRegistryDraftRequest.js";
3
- export type DraftEngineSuccess = {
4
- ok: true;
5
- status: 200;
6
- body: Record<string, unknown>;
7
- };
8
- export type DraftEngineFailure = {
9
- ok: false;
10
- status: 400 | 500 | 502 | 503;
11
- body: Record<string, unknown>;
12
- };
13
- /**
14
- * Single orchestration pipeline: provider → merge → deterministic quick ingest → tools AJV → readiness → full AJV v3 envelope.
15
- */
16
- export declare function generateRegistryDraft(params: {
17
- parsed: Exclude<RegistryDraftParseResult, {
18
- ok: false;
19
- }>;
20
- validateResponseEnvelope: ValidateFunction;
21
- validateToolsRegistryArray: ValidateFunction;
22
- env: NodeJS.ProcessEnv;
23
- fetchImpl?: typeof fetch;
24
- }): Promise<DraftEngineSuccess | DraftEngineFailure>;
25
- export declare function credentialMissingForDraftProvider(draftProvider: DraftProviderId, env: NodeJS.ProcessEnv): string | undefined;
26
- //# sourceMappingURL=engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/registryDraft/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAK5G,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,OAAO,CAAC,wBAAwB,EAAE;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IACzD,wBAAwB,EAAE,gBAAgB,CAAC;IAC3C,0BAA0B,EAAE,gBAAgB,CAAC;IAC7C,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,CA2InD;AAED,wBAAgB,iCAAiC,CAC/C,aAAa,EAAE,eAAe,EAC9B,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,GAAG,SAAS,CASpB"}
@@ -1,149 +0,0 @@
1
- import { parseBootstrapPackInputJson, synthesizeQuickInputUtf8FromOpenAiV1 } from "../bootstrap/bootstrapPackSynthesis.js";
2
- import { buildRegistryDraftPrompt } from "./buildRegistryDraftPrompt.js";
3
- import { scoreDraftReadiness, modelLabelForGeneration } from "./readiness.js";
4
- import { callHostedOpenAiRegistryDraftJson } from "./providers/hosted_openai.js";
5
- import { callLocalOllamaRegistryDraftJson } from "./providers/local_ollama.js";
6
- /**
7
- * Single orchestration pipeline: provider → merge → deterministic quick ingest → tools AJV → readiness → full AJV v3 envelope.
8
- */
9
- export async function generateRegistryDraft(params) {
10
- const { normalizedBootstrapPackInput, ddlHint, draftProvider } = params.parsed;
11
- const prompt = buildRegistryDraftPrompt(normalizedBootstrapPackInput, ddlHint);
12
- const hostedModel = params.env["REGISTRY_DRAFT_MODEL"]?.trim() || "gpt-4o-mini";
13
- let llmPartialText;
14
- try {
15
- if (draftProvider === "hosted_openai") {
16
- const ai = await callHostedOpenAiRegistryDraftJson({
17
- prompt,
18
- model: hostedModel,
19
- env: params.env,
20
- fetchImpl: params.fetchImpl,
21
- });
22
- if (!ai.ok) {
23
- return {
24
- ok: false,
25
- status: ai.status,
26
- body: { code: "OPENAI_ERROR", message: ai.message },
27
- };
28
- }
29
- llmPartialText = ai.contentText;
30
- }
31
- else {
32
- const o = await callLocalOllamaRegistryDraftJson({
33
- prompt,
34
- env: params.env,
35
- fetchImpl: params.fetchImpl,
36
- });
37
- if (!o.ok) {
38
- return {
39
- ok: false,
40
- status: o.status,
41
- body: { code: "OLLAMA_ERROR", message: o.message },
42
- };
43
- }
44
- llmPartialText = o.contentText;
45
- }
46
- }
47
- catch {
48
- return {
49
- ok: false,
50
- status: 503,
51
- body: { code: "PROVIDER_ERROR", message: "Draft engine invocation failed." },
52
- };
53
- }
54
- let llmPartial;
55
- try {
56
- llmPartial = JSON.parse(llmPartialText);
57
- }
58
- catch {
59
- return {
60
- ok: false,
61
- status: 502,
62
- body: { code: "MODEL_OUTPUT_INVALID", message: "model returned non-JSON" },
63
- };
64
- }
65
- if (llmPartial === null || typeof llmPartial !== "object" || Array.isArray(llmPartial)) {
66
- return {
67
- ok: false,
68
- status: 502,
69
- body: { code: "MODEL_OUTPUT_INVALID", message: "model output must be a JSON object" },
70
- };
71
- }
72
- const lp = llmPartial;
73
- let bodyUtf8;
74
- try {
75
- const rawBootstrap = JSON.stringify(normalizedBootstrapPackInput);
76
- const pbi = parseBootstrapPackInputJson(rawBootstrap);
77
- bodyUtf8 = synthesizeQuickInputUtf8FromOpenAiV1(pbi);
78
- }
79
- catch (e) {
80
- const msg = e instanceof Error ? e.message : String(e);
81
- return { ok: false, status: 500, body: { code: "QUICK_INGEST_SYNTHESIS_FAILED", message: msg } };
82
- }
83
- const draftObj = lp["draft"];
84
- if (draftObj === null || typeof draftObj !== "object" || Array.isArray(draftObj)) {
85
- return {
86
- ok: false,
87
- status: 502,
88
- body: { code: "MODEL_OUTPUT_INVALID", message: "draft missing" },
89
- };
90
- }
91
- const toolsArr = draftObj["tools"];
92
- if (!params.validateToolsRegistryArray(toolsArr)) {
93
- const errs = params.validateToolsRegistryArray.errors ?? [];
94
- return {
95
- ok: false,
96
- status: 502,
97
- body: { code: "MODEL_OUTPUT_INVALID", errors: errs },
98
- };
99
- }
100
- const assumptionsRaw = lp["assumptions"];
101
- const warningsRaw = lp["warnings"];
102
- const assumptions = Array.isArray(assumptionsRaw) ? assumptionsRaw.filter((x) => typeof x === "string") : [];
103
- const warnings = Array.isArray(warningsRaw) ? warningsRaw.filter((x) => typeof x === "string") : [];
104
- const readiness = scoreDraftReadiness({
105
- assumptions,
106
- warnings,
107
- normalizedBootstrap: normalizedBootstrapPackInput,
108
- draftToolsUnknown: toolsArr,
109
- });
110
- const genModelLabel = modelLabelForGeneration(draftProvider, lp["model"], params.env);
111
- let disclaimerFinal = lp["disclaimer"];
112
- if (typeof disclaimerFinal !== "string" || disclaimerFinal.trim().length === 0) {
113
- disclaimerFinal = "Draft output requires human review before use.";
114
- }
115
- const merged = {
116
- schemaVersion: 3,
117
- draft: draftObj,
118
- assumptions,
119
- warnings,
120
- disclaimer: disclaimerFinal,
121
- generation: {
122
- backend: draftProvider,
123
- model: genModelLabel,
124
- },
125
- quickIngestInput: { encoding: "utf8", body: bodyUtf8 },
126
- readiness,
127
- diagnostics: [],
128
- };
129
- const validateResponse = params.validateResponseEnvelope;
130
- if (!validateResponse(merged)) {
131
- return {
132
- ok: false,
133
- status: 502,
134
- body: { code: "MODEL_OUTPUT_INVALID", errors: validateResponse.errors ?? [] },
135
- };
136
- }
137
- return { ok: true, status: 200, body: merged };
138
- }
139
- export function credentialMissingForDraftProvider(draftProvider, env) {
140
- if (draftProvider === "hosted_openai") {
141
- const k = env["OPENAI_API_KEY"];
142
- return k === undefined || k.trim().length === 0 ? "OPENAI_API_KEY required for hosted_openai draftProvider" : undefined;
143
- }
144
- const m = env["AGENTSKEPTIC_DRAFT_LOCAL_MODEL"];
145
- return m === undefined || m.trim().length === 0
146
- ? "AGENTSKEPTIC_DRAFT_LOCAL_MODEL required for local_ollama draftProvider"
147
- : undefined;
148
- }
149
- //# sourceMappingURL=engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/registryDraft/engine.ts"],"names":[],"mappings":"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"}