@yiaany/ghostapi 0.1.7 → 0.1.9
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/CHANGELOG.md +42 -2
- package/CONTRIBUTING.md +119 -117
- package/LICENSE +21 -21
- package/README.md +208 -181
- package/SECURITY.md +53 -37
- package/dist/actions/gateway.d.ts +179 -0
- package/dist/actions/gateway.js +514 -0
- package/dist/actions/gateway.js.map +1 -0
- package/dist/actions/index.d.ts +2 -0
- package/dist/actions/index.js +2 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/ai/aiClient.js +4 -4
- package/dist/ai/aiClient.js.map +1 -1
- package/dist/ai/aiGenerator.d.ts +2 -2
- package/dist/ai/aiGenerator.js +21 -72
- package/dist/ai/aiGenerator.js.map +1 -1
- package/dist/ai/prompts.js +51 -51
- package/dist/ai/prompts.js.map +1 -1
- package/dist/approvals/approvalInbox.d.ts +150 -0
- package/dist/approvals/approvalInbox.js +412 -0
- package/dist/approvals/approvalInbox.js.map +1 -0
- package/dist/approvals/index.d.ts +2 -0
- package/dist/approvals/index.js +2 -0
- package/dist/approvals/index.js.map +1 -0
- package/dist/behavior/behaviorStore.d.ts +2 -0
- package/dist/behavior/behaviorStore.js +50 -46
- package/dist/behavior/behaviorStore.js.map +1 -1
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.js +58 -14
- package/dist/cache/index.js.map +1 -1
- package/dist/cli/index.js +438 -58
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/openUrl.d.ts +10 -0
- package/dist/cli/openUrl.js +31 -0
- package/dist/cli/openUrl.js.map +1 -0
- package/dist/cli/parser.d.ts +155 -0
- package/dist/cli/parser.js +504 -2
- package/dist/cli/parser.js.map +1 -1
- package/dist/config/dataPaths.d.ts +31 -0
- package/dist/config/dataPaths.js +45 -0
- package/dist/config/dataPaths.js.map +1 -0
- package/dist/config/localConfig.d.ts +1 -2
- package/dist/config/localConfig.js +27 -21
- package/dist/config/localConfig.js.map +1 -1
- package/dist/config/serverConfig.d.ts +2 -0
- package/dist/config/serverConfig.js +8 -1
- package/dist/config/serverConfig.js.map +1 -1
- package/dist/contracts/contract.d.ts +76 -0
- package/dist/contracts/contract.js +603 -0
- package/dist/contracts/contract.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/credentials/credentialBroker.d.ts +207 -0
- package/dist/credentials/credentialBroker.js +588 -0
- package/dist/credentials/credentialBroker.js.map +1 -0
- package/dist/credentials/index.d.ts +2 -0
- package/dist/credentials/index.js +2 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/dashboard/app.js +685 -615
- package/dist/dashboard/index.html +13 -7
- package/dist/dashboard/styles.css +349 -349
- package/dist/egress/capabilities.d.ts +32 -0
- package/dist/egress/capabilities.js +165 -0
- package/dist/egress/capabilities.js.map +1 -0
- package/dist/egress/linuxBootstrap.d.ts +1 -0
- package/dist/egress/linuxBootstrap.js +121 -0
- package/dist/egress/linuxBootstrap.js.map +1 -0
- package/dist/egress/run.d.ts +18 -0
- package/dist/egress/run.js +305 -0
- package/dist/egress/run.js.map +1 -0
- package/dist/errors/errorEngine.d.ts +2 -2
- package/dist/errors/errorEngine.js +3 -40
- package/dist/errors/errorEngine.js.map +1 -1
- package/dist/evals/evals.d.ts +126 -0
- package/dist/evals/evals.js +466 -0
- package/dist/evals/evals.js.map +1 -0
- package/dist/evals/index.d.ts +2 -0
- package/dist/evals/index.js +2 -0
- package/dist/evals/index.js.map +1 -0
- package/dist/evidence/index.d.ts +2 -0
- package/dist/evidence/index.js +2 -0
- package/dist/evidence/index.js.map +1 -0
- package/dist/evidence/report.d.ts +143 -0
- package/dist/evidence/report.js +556 -0
- package/dist/evidence/report.js.map +1 -0
- package/dist/fault/faultLab.d.ts +5 -4
- package/dist/fault/faultLab.js +66 -24
- package/dist/fault/faultLab.js.map +1 -1
- package/dist/index.d.ts +46 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -1
- package/dist/inventory/analysis.d.ts +12 -0
- package/dist/inventory/analysis.js +457 -0
- package/dist/inventory/analysis.js.map +1 -0
- package/dist/inventory/index.d.ts +5 -0
- package/dist/inventory/index.js +4 -0
- package/dist/inventory/index.js.map +1 -0
- package/dist/inventory/inventoryController.d.ts +53 -0
- package/dist/inventory/inventoryController.js +1044 -0
- package/dist/inventory/inventoryController.js.map +1 -0
- package/dist/inventory/types.d.ts +579 -0
- package/dist/inventory/types.js +787 -0
- package/dist/inventory/types.js.map +1 -0
- package/dist/landing/assets/index-CxWsopzP.css +1 -0
- package/dist/landing/assets/index-DZlpyhqd.js +55 -0
- package/dist/landing/assets/index-Dk-Xezs3.js +55 -0
- package/dist/landing/index.html +15 -15
- package/dist/ledger/actionLedger.d.ts +125 -0
- package/dist/ledger/actionLedger.js +594 -0
- package/dist/ledger/actionLedger.js.map +1 -0
- package/dist/ledger/index.d.ts +2 -0
- package/dist/ledger/index.js +2 -0
- package/dist/ledger/index.js.map +1 -0
- package/dist/mcp/server.js +4 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/policy/index.d.ts +3 -0
- package/dist/policy/index.js +2 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/policy.d.ts +14 -0
- package/dist/policy/policy.js +282 -0
- package/dist/policy/policy.js.map +1 -0
- package/dist/policy/types.d.ts +52 -0
- package/dist/policy/types.js +2 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/productTelemetry/index.d.ts +16 -0
- package/dist/productTelemetry/index.js +142 -0
- package/dist/productTelemetry/index.js.map +1 -0
- package/dist/providers/conformance.d.ts +7 -0
- package/dist/providers/conformance.js +48 -0
- package/dist/providers/conformance.js.map +1 -0
- package/dist/providers/index.d.ts +4 -2
- package/dist/providers/index.js +3 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/packs/resendPack.d.ts +2 -0
- package/dist/providers/packs/resendPack.js +147 -0
- package/dist/providers/packs/resendPack.js.map +1 -0
- package/dist/providers/packs/stripePack.d.ts +2 -0
- package/dist/providers/packs/stripePack.js +852 -0
- package/dist/providers/packs/stripePack.js.map +1 -0
- package/dist/providers/registry.d.ts +7 -3
- package/dist/providers/registry.js +55 -4
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/resend.js +2 -11
- package/dist/providers/resend.js.map +1 -1
- package/dist/providers/runtime.d.ts +8 -0
- package/dist/providers/runtime.js +48 -0
- package/dist/providers/runtime.js.map +1 -0
- package/dist/providers/stripeWebhook.d.ts +13 -0
- package/dist/providers/stripeWebhook.js +50 -0
- package/dist/providers/stripeWebhook.js.map +1 -0
- package/dist/providers/types.d.ts +153 -0
- package/dist/proxy/cacheKey.js +3 -3
- package/dist/proxy/cacheKey.js.map +1 -1
- package/dist/proxy/providerDetector.d.ts +2 -7
- package/dist/proxy/providerDetector.js +4 -4
- package/dist/proxy/providerDetector.js.map +1 -1
- package/dist/proxy/proxyHandler.js +116 -12
- package/dist/proxy/proxyHandler.js.map +1 -1
- package/dist/proxy/requestNormalizer.d.ts +0 -1
- package/dist/proxy/requestNormalizer.js +2 -5
- package/dist/proxy/requestNormalizer.js.map +1 -1
- package/dist/reliability/costGovernance.d.ts +175 -0
- package/dist/reliability/costGovernance.js +515 -0
- package/dist/reliability/costGovernance.js.map +1 -0
- package/dist/reliability/index.d.ts +8 -0
- package/dist/reliability/index.js +5 -0
- package/dist/reliability/index.js.map +1 -0
- package/dist/reliability/reconciliation.d.ts +157 -0
- package/dist/reliability/reconciliation.js +522 -0
- package/dist/reliability/reconciliation.js.map +1 -0
- package/dist/reliability/runtimeHealth.d.ts +60 -0
- package/dist/reliability/runtimeHealth.js +356 -0
- package/dist/reliability/runtimeHealth.js.map +1 -0
- package/dist/reliability/slo.d.ts +131 -0
- package/dist/reliability/slo.js +375 -0
- package/dist/reliability/slo.js.map +1 -0
- package/dist/report/safetyReport.js +7 -3
- package/dist/report/safetyReport.js.map +1 -1
- package/dist/safety/index.d.ts +2 -0
- package/dist/safety/index.js +2 -0
- package/dist/safety/index.js.map +1 -0
- package/dist/safety/safetyController.d.ts +187 -0
- package/dist/safety/safetyController.js +477 -0
- package/dist/safety/safetyController.js.map +1 -0
- package/dist/scenarios/scenarioBundle.d.ts +75 -0
- package/dist/scenarios/scenarioBundle.js +750 -0
- package/dist/scenarios/scenarioBundle.js.map +1 -0
- package/dist/scenarios/scenarioStore.d.ts +1 -0
- package/dist/scenarios/scenarioStore.js +47 -32
- package/dist/scenarios/scenarioStore.js.map +1 -1
- package/dist/security/headerSanitizer.d.ts +2 -0
- package/dist/security/headerSanitizer.js +36 -1
- package/dist/security/headerSanitizer.js.map +1 -1
- package/dist/security/secrets.js +24 -4
- package/dist/security/secrets.js.map +1 -1
- package/dist/server/accessControl.d.ts +5 -0
- package/dist/server/accessControl.js +100 -0
- package/dist/server/accessControl.js.map +1 -0
- package/dist/server/createServer.d.ts +0 -5
- package/dist/server/createServer.js +9 -29
- package/dist/server/createServer.js.map +1 -1
- package/dist/server/eventsStore.d.ts +6 -1
- package/dist/server/eventsStore.js +83 -15
- package/dist/server/eventsStore.js.map +1 -1
- package/dist/server/routes.js +42 -10
- package/dist/server/routes.js.map +1 -1
- package/dist/server/sse.d.ts +2 -1
- package/dist/server/sse.js +15 -3
- package/dist/server/sse.js.map +1 -1
- package/dist/setup/setupGenerator.js +53 -6
- package/dist/setup/setupGenerator.js.map +1 -1
- package/dist/state/stateStore.d.ts +5 -0
- package/dist/state/stateStore.js +48 -62
- package/dist/state/stateStore.js.map +1 -1
- package/dist/storage/fileStore.d.ts +10 -0
- package/dist/storage/fileStore.js +131 -0
- package/dist/storage/fileStore.js.map +1 -0
- package/dist/teamControl/controlPlane.d.ts +255 -0
- package/dist/teamControl/controlPlane.js +918 -0
- package/dist/teamControl/controlPlane.js.map +1 -0
- package/dist/teamControl/deployment.d.ts +33 -0
- package/dist/teamControl/deployment.js +67 -0
- package/dist/teamControl/deployment.js.map +1 -0
- package/dist/teamControl/index.d.ts +4 -0
- package/dist/teamControl/index.js +3 -0
- package/dist/teamControl/index.js.map +1 -0
- package/dist/tests/testGenerator.js +4 -1
- package/dist/tests/testGenerator.js.map +1 -1
- package/dist/trust/index.d.ts +2 -0
- package/dist/trust/index.js +2 -0
- package/dist/trust/index.js.map +1 -0
- package/dist/trust/trustLadder.d.ts +182 -0
- package/dist/trust/trustLadder.js +560 -0
- package/dist/trust/trustLadder.js.map +1 -0
- package/dist/worlds/index.d.ts +2 -0
- package/dist/worlds/index.js +2 -0
- package/dist/worlds/index.js.map +1 -0
- package/dist/worlds/worlds.d.ts +160 -0
- package/dist/worlds/worlds.js +491 -0
- package/dist/worlds/worlds.js.map +1 -0
- package/docs/assets/dashboard.png +0 -0
- package/docs/ci.md +49 -0
- package/docs/commercial/README.md +29 -0
- package/docs/commercial/data-inventory.md +36 -0
- package/docs/commercial/manual-invoicing.md +44 -0
- package/docs/commercial/metrics.md +51 -0
- package/docs/commercial/pricing.md +103 -0
- package/docs/commercial/privacy-policy-draft.md +41 -0
- package/docs/commercial/terms-topics-for-counsel.md +51 -0
- package/docs/design-partners/README.md +52 -0
- package/docs/design-partners/demo-narratives.md +33 -0
- package/docs/design-partners/design-partner-offer.md +39 -0
- package/docs/design-partners/discovery-questions.md +28 -0
- package/docs/design-partners/feedback-capture-template.md +48 -0
- package/docs/design-partners/icp-one-pager.md +43 -0
- package/docs/design-partners/onboarding-checklist.md +33 -0
- package/docs/design-partners/pilot-success-criteria.md +27 -0
- package/docs/design-partners/pricing-interview-script.md +18 -0
- package/docs/design-partners/telemetry-plan.md +48 -0
- package/docs/development/baseline.md +114 -0
- package/docs/development/onboarding-smoke.md +37 -0
- package/docs/development/verification-0.1.8.md +25 -0
- package/docs/enterprise-product-roadmap-ru.md +1879 -0
- package/docs/fundraising/README.md +87 -0
- package/docs/fundraising/data-room-checklist.md +72 -0
- package/docs/fundraising/demo-script.md +52 -0
- package/docs/fundraising/design-partners-50.md +74 -0
- package/docs/fundraising/launch-posts.md +37 -0
- package/docs/fundraising/metrics-and-evidence.md +30 -0
- package/docs/fundraising/roadmap-12-month.md +25 -0
- package/docs/fundraising/technical-due-diligence-index.md +37 -0
- package/docs/fundraising/yc-application.md +25 -0
- package/docs/github-actions.md +84 -0
- package/docs/hosted-pilot.md +111 -0
- package/docs/mcp.md +52 -50
- package/docs/operations/disaster-recovery-runbook.md +81 -0
- package/docs/operations/kill-switch-runbook.md +32 -0
- package/docs/policy.md +61 -0
- package/docs/providers/authoring-packs.md +175 -0
- package/docs/providers/stripe-core-pack.md +82 -0
- package/docs/release-checklist.md +83 -71
- package/docs/release-migration-and-rollback.md +63 -0
- package/docs/release-readiness.md +39 -0
- package/docs/security/action-gateway-threat-model.md +34 -0
- package/docs/security/action-ledger-incident-replay-threat-model.md +42 -0
- package/docs/security/approval-inbox-threat-model.md +35 -0
- package/docs/security/credential-broker-threat-model.md +52 -0
- package/docs/security/egress-threat-model.md +126 -0
- package/docs/security/inventory-threat-model.md +104 -0
- package/docs/security/kill-switch-budgets-threat-model.md +37 -0
- package/docs/security/reliability-threat-model.md +111 -0
- package/docs/security/trust-ladder-threat-model.md +33 -0
- package/docs/team-control-plane.md +72 -0
- package/docs/usage.md +571 -57
- package/examples/README.md +10 -0
- package/examples/agent-instructions/README.md +39 -39
- package/examples/ci-smoke/README.md +21 -0
- package/examples/ci-smoke/ghostapi.policy.yaml +22 -0
- package/examples/ci-smoke/package.json +9 -0
- package/examples/ci-smoke/production-egress.mjs +2 -0
- package/examples/ci-smoke/safe.mjs +17 -0
- package/examples/evals/README.md +24 -0
- package/examples/evals/retry-after.eval.json +52 -0
- package/examples/generic-rest/README.md +27 -27
- package/examples/github-fetch/README.md +35 -35
- package/examples/openai-streaming/README.md +16 -0
- package/examples/openai-streaming/streaming-tool-call.mjs +31 -0
- package/examples/policy/ghostapi.policy.yaml +27 -0
- package/examples/record-replay/README.md +19 -0
- package/examples/record-replay/replay-requests.json +22 -0
- package/examples/record-replay/stripe-checkout.har.json +30 -0
- package/examples/resend-node/README.md +22 -22
- package/examples/stripe-node/README.md +35 -29
- package/examples/stripe-node/checkout-flow.mjs +61 -0
- package/examples/twilio-node/README.md +21 -21
- package/examples/worlds/README.md +19 -0
- package/examples/worlds/subscription-recovery.mjs +12 -0
- package/package.json +27 -12
- package/dist/providers/stripe.d.ts +0 -2
- package/dist/providers/stripe.js +0 -15
- package/dist/providers/stripe.js.map +0 -1
package/dist/ai/aiGenerator.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Response } from "express";
|
|
2
2
|
import type { NormalizedRequest } from "../proxy/requestNormalizer.js";
|
|
3
3
|
import type { ServerConfig } from "../config/serverConfig.js";
|
|
4
|
-
import type { ProviderName } from "../providers/types.js";
|
|
4
|
+
import type { ProviderName, ProviderPackExecution } from "../providers/types.js";
|
|
5
5
|
export type AiMockResponse = {
|
|
6
6
|
status: number;
|
|
7
7
|
headers: Record<string, string>;
|
|
8
8
|
body: unknown;
|
|
9
9
|
};
|
|
10
|
-
export declare function generateAiMock(request: NormalizedRequest, provider: ProviderName, response: Response, config: ServerConfig): Promise<AiMockResponse | "streamed">;
|
|
10
|
+
export declare function generateAiMock(request: NormalizedRequest, provider: ProviderName, response: Response, config: ServerConfig, execution?: ProviderPackExecution): Promise<AiMockResponse | "streamed">;
|
package/dist/ai/aiGenerator.js
CHANGED
|
@@ -3,17 +3,27 @@ import { askLLM } from "./aiClient.js";
|
|
|
3
3
|
import { getSystemPrompt, getUserPrompt } from "./prompts.js";
|
|
4
4
|
import { repairJson } from "./jsonRepair.js";
|
|
5
5
|
import { createProviderError } from "../errors/index.js";
|
|
6
|
+
import { getProviderPackHeaders } from "../providers/runtime.js";
|
|
6
7
|
import { inferResourceName, isLikelyCollectionPath } from "./genericInference.js";
|
|
7
|
-
export async function generateAiMock(request, provider, response, config) {
|
|
8
|
+
export async function generateAiMock(request, provider, response, config, execution) {
|
|
8
9
|
const isStreamRequested = hasBooleanFlag(request.body, "stream") || hasBooleanFlag(request.query, "stream") || request.headers.accept === "text/event-stream";
|
|
9
10
|
if (isStreamRequested) {
|
|
10
11
|
return handleStreamResponse(request, provider, response);
|
|
11
12
|
}
|
|
13
|
+
if (execution !== undefined) {
|
|
14
|
+
const generated = execution.pack.handleDeterministic({
|
|
15
|
+
request,
|
|
16
|
+
parsedRequest: execution.parsedRequest,
|
|
17
|
+
apiVersion: execution.apiVersion,
|
|
18
|
+
runtime: execution.runtime
|
|
19
|
+
});
|
|
20
|
+
return { ...generated, headers: { ...generated.headers, ...getProviderPackHeaders(execution) } };
|
|
21
|
+
}
|
|
12
22
|
let body = null;
|
|
13
|
-
if (config.offline || !config.apiKey) {
|
|
23
|
+
if (config.offline || config.allowExternalLlm !== true || !config.apiKey) {
|
|
14
24
|
return {
|
|
15
25
|
status: 200,
|
|
16
|
-
headers: { "content-type": "application/json" },
|
|
26
|
+
headers: { "content-type": "application/json", "x-ghostapi-generation-source": "local-fallback" },
|
|
17
27
|
body: generateOfflineMock(request, provider)
|
|
18
28
|
};
|
|
19
29
|
}
|
|
@@ -28,18 +38,22 @@ export async function generateAiMock(request, provider, response, config) {
|
|
|
28
38
|
if (repaired === null) {
|
|
29
39
|
return {
|
|
30
40
|
status: 500,
|
|
31
|
-
headers: { "content-type": "application/json" },
|
|
41
|
+
headers: { "content-type": "application/json", "x-ghostapi-generation-source": "external-llm-error" },
|
|
32
42
|
body: createProviderError(provider, { status: 500, type: "api_error", message: "Failed to generate valid JSON from AI." })
|
|
33
43
|
};
|
|
34
44
|
}
|
|
35
45
|
body = repaired;
|
|
36
46
|
}
|
|
37
|
-
catch
|
|
38
|
-
|
|
47
|
+
catch {
|
|
48
|
+
return {
|
|
49
|
+
status: 502,
|
|
50
|
+
headers: { "content-type": "application/json", "x-ghostapi-generation-source": "external-llm-error" },
|
|
51
|
+
body: createProviderError(provider, { status: 502, type: "api_error", message: "External LLM generation failed; no local fallback was substituted." })
|
|
52
|
+
};
|
|
39
53
|
}
|
|
40
54
|
return {
|
|
41
55
|
status: 200,
|
|
42
|
-
headers: { "content-type": "application/json" },
|
|
56
|
+
headers: { "content-type": "application/json", "x-ghostapi-generation-source": "external-llm" },
|
|
43
57
|
body
|
|
44
58
|
};
|
|
45
59
|
}
|
|
@@ -47,14 +61,10 @@ function generateOfflineMock(request, provider) {
|
|
|
47
61
|
if (provider === "generic") {
|
|
48
62
|
return generateGenericOfflineMock(request);
|
|
49
63
|
}
|
|
50
|
-
if (provider === "stripe")
|
|
51
|
-
return generateStripeOfflineMock(request);
|
|
52
64
|
if (provider === "openai")
|
|
53
65
|
return generateOpenAiOfflineMock(request);
|
|
54
66
|
if (provider === "twilio")
|
|
55
67
|
return generateTwilioOfflineMock(request);
|
|
56
|
-
if (provider === "resend")
|
|
57
|
-
return generateResendOfflineMock(request);
|
|
58
68
|
if (provider === "github")
|
|
59
69
|
return generateGithubOfflineMock(request);
|
|
60
70
|
if (provider === "discord")
|
|
@@ -71,60 +81,6 @@ function generateOfflineMock(request, provider) {
|
|
|
71
81
|
status: "ok"
|
|
72
82
|
};
|
|
73
83
|
}
|
|
74
|
-
function generateStripeOfflineMock(request) {
|
|
75
|
-
const path = request.path;
|
|
76
|
-
const body = copyObjectBody(request.body);
|
|
77
|
-
if (isLikelyCollectionPath(request.method, path)) {
|
|
78
|
-
return annotateMock({ object: "list", data: [annotateMock(stripeObjectForPath(path, body), request, "stripe")], has_more: false, url: path }, request, "stripe");
|
|
79
|
-
}
|
|
80
|
-
return annotateMock(stripeObjectForPath(path, body), request, "stripe");
|
|
81
|
-
}
|
|
82
|
-
function stripeObjectForPath(path, body) {
|
|
83
|
-
const now = Math.floor(Date.now() / 1000);
|
|
84
|
-
if (path.includes("/payment_intents")) {
|
|
85
|
-
return {
|
|
86
|
-
id: `pi_mock_${Date.now().toString(36)}`,
|
|
87
|
-
object: "payment_intent",
|
|
88
|
-
amount: readNumber(body.amount, 2000),
|
|
89
|
-
currency: readString(body.currency, "usd"),
|
|
90
|
-
status: body.confirm === true || body.confirm === "true" ? "succeeded" : "requires_payment_method",
|
|
91
|
-
client_secret: `pi_mock_secret_${Date.now().toString(36)}`,
|
|
92
|
-
livemode: false,
|
|
93
|
-
created: now,
|
|
94
|
-
metadata: readRecord(body.metadata)
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
if (path.includes("/customers")) {
|
|
98
|
-
return {
|
|
99
|
-
id: `cus_mock_${Date.now().toString(36)}`,
|
|
100
|
-
object: "customer",
|
|
101
|
-
email: readString(body.email, "customer@example.com"),
|
|
102
|
-
name: readString(body.name, "GhostAPI Customer"),
|
|
103
|
-
livemode: false,
|
|
104
|
-
created: now,
|
|
105
|
-
metadata: readRecord(body.metadata)
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
if (path.includes("/checkout/sessions")) {
|
|
109
|
-
return {
|
|
110
|
-
id: `cs_test_mock_${Date.now().toString(36)}`,
|
|
111
|
-
object: "checkout.session",
|
|
112
|
-
mode: readString(body.mode, "payment"),
|
|
113
|
-
payment_status: "paid",
|
|
114
|
-
status: "complete",
|
|
115
|
-
url: "https://checkout.stripe.com/c/pay/mock_ghostapi",
|
|
116
|
-
livemode: false,
|
|
117
|
-
created: now
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
return {
|
|
121
|
-
id: `stripe_mock_${Date.now().toString(36)}`,
|
|
122
|
-
object: inferResourceName(path),
|
|
123
|
-
livemode: false,
|
|
124
|
-
created: now,
|
|
125
|
-
...body
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
84
|
function generateOpenAiOfflineMock(request) {
|
|
129
85
|
const model = readString(copyObjectBody(request.body).model, "gpt-4o-mini");
|
|
130
86
|
if (request.path.includes("/chat/completions")) {
|
|
@@ -152,9 +108,6 @@ function generateTwilioOfflineMock(request) {
|
|
|
152
108
|
date_created: new Date().toUTCString()
|
|
153
109
|
}, request, "twilio");
|
|
154
110
|
}
|
|
155
|
-
function generateResendOfflineMock(request) {
|
|
156
|
-
return annotateMock({ id: `email_mock_${Date.now().toString(36)}` }, request, "resend");
|
|
157
|
-
}
|
|
158
111
|
function generateGithubOfflineMock(request) {
|
|
159
112
|
const body = copyObjectBody(request.body);
|
|
160
113
|
return annotateMock({
|
|
@@ -209,10 +162,6 @@ function annotateMock(body, request, provider) {
|
|
|
209
162
|
function readString(value, fallback) {
|
|
210
163
|
return typeof value === "string" && value.trim() !== "" ? value : fallback;
|
|
211
164
|
}
|
|
212
|
-
function readNumber(value, fallback) {
|
|
213
|
-
const number = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN;
|
|
214
|
-
return Number.isFinite(number) ? number : fallback;
|
|
215
|
-
}
|
|
216
165
|
function readRecord(value) {
|
|
217
166
|
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
218
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiGenerator.js","sourceRoot":"","sources":["../../src/ai/aiGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aiGenerator.js","sourceRoot":"","sources":["../../src/ai/aiGenerator.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/prompts.js
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
|
+
import { getProviderPack } from "../providers/registry.js";
|
|
1
2
|
import { inferGenericService, inferResourceName, isLikelyCollectionPath, isLikelyResourceByIdPath } from "./genericInference.js";
|
|
2
3
|
export function getSystemPrompt(provider) {
|
|
3
|
-
const base = `You are GhostAPI, an autonomous local internet simulator.
|
|
4
|
-
Your job is to generate a realistic JSON response for a given authenticated HTTP request to an external API.
|
|
5
|
-
Return ONLY valid JSON. No markdown wrapping unless explicitly requested, no explanations, no text before or after the JSON.
|
|
6
|
-
Keep IDs seemingly real, but prefixed with mock identifiers where appropriate (e.g. mock_cus_123).
|
|
4
|
+
const base = `You are GhostAPI, an autonomous local internet simulator.
|
|
5
|
+
Your job is to generate a realistic JSON response for a given authenticated HTTP request to an external API.
|
|
6
|
+
Return ONLY valid JSON. No markdown wrapping unless explicitly requested, no explanations, no text before or after the JSON.
|
|
7
|
+
Keep IDs seemingly real, but prefixed with mock identifiers where appropriate (e.g. mock_cus_123).
|
|
7
8
|
`;
|
|
9
|
+
const pack = getProviderPack(provider);
|
|
10
|
+
if (pack !== null) {
|
|
11
|
+
return `${base}\n${pack.promptHints.map((hint) => `- ${hint}`).join("\n")}\n`;
|
|
12
|
+
}
|
|
8
13
|
switch (provider) {
|
|
9
14
|
case "stripe":
|
|
10
|
-
return `${base}
|
|
11
|
-
- This is the Stripe API.
|
|
12
|
-
- Use Stripe object structures (e.g., {"object": "charge", ...}).
|
|
13
|
-
- IDs usually start with prefixes like ch_, cus_, pi_. Use mock_ch_, mock_cus_, etc.
|
|
14
|
-
- In lists, wrap results in {"object": "list", "data": [], "has_more": false}.
|
|
15
|
+
return `${base}
|
|
16
|
+
- This is the Stripe API.
|
|
17
|
+
- Use Stripe object structures (e.g., {"object": "charge", ...}).
|
|
18
|
+
- IDs usually start with prefixes like ch_, cus_, pi_. Use mock_ch_, mock_cus_, etc.
|
|
19
|
+
- In lists, wrap results in {"object": "list", "data": [], "has_more": false}.
|
|
15
20
|
`;
|
|
16
21
|
case "twilio":
|
|
17
|
-
return `${base}
|
|
18
|
-
- This is the Twilio REST API.
|
|
19
|
-
- Use Twilio structures. Return SID, account_sid, date_created, etc.
|
|
20
|
-
- Always include 'uri' ending in .json.
|
|
21
|
-
`;
|
|
22
|
-
case "resend":
|
|
23
|
-
return `${base}
|
|
24
|
-
- This is the Resend Email API.
|
|
25
|
-
- The standard response for sending an email is a single object with an 'id' string.
|
|
22
|
+
return `${base}
|
|
23
|
+
- This is the Twilio REST API.
|
|
24
|
+
- Use Twilio structures. Return SID, account_sid, date_created, etc.
|
|
25
|
+
- Always include 'uri' ending in .json.
|
|
26
26
|
`;
|
|
27
27
|
case "github":
|
|
28
|
-
return `${base}
|
|
29
|
-
- This is the GitHub REST API.
|
|
30
|
-
- Use exact GitHub payload shapes.
|
|
28
|
+
return `${base}
|
|
29
|
+
- This is the GitHub REST API.
|
|
30
|
+
- Use exact GitHub payload shapes.
|
|
31
31
|
`;
|
|
32
32
|
case "discord":
|
|
33
|
-
return `${base}
|
|
34
|
-
- This is the Discord REST API.
|
|
35
|
-
- Discord IDs are large integers represented as strings.
|
|
33
|
+
return `${base}
|
|
34
|
+
- This is the Discord REST API.
|
|
35
|
+
- Discord IDs are large integers represented as strings.
|
|
36
36
|
`;
|
|
37
37
|
case "openai":
|
|
38
|
-
return `${base}
|
|
39
|
-
- This is the OpenAI API.
|
|
40
|
-
- Use OpenAI-like response objects such as chat.completion, response, embedding, model, file, or image generation depending on the path.
|
|
41
|
-
- IDs should use realistic mock prefixes like chatcmpl_mock_, resp_mock_, embd_mock_, model_mock_, file_mock_, or img_mock_.
|
|
42
|
-
- For chat completions, include choices with message objects and usage token counts.
|
|
43
|
-
- For embeddings, include object: "list", data entries, model, and usage.
|
|
44
|
-
- For model/file lists, wrap results in {"object":"list","data":[]}.
|
|
38
|
+
return `${base}
|
|
39
|
+
- This is the OpenAI API.
|
|
40
|
+
- Use OpenAI-like response objects such as chat.completion, response, embedding, model, file, or image generation depending on the path.
|
|
41
|
+
- IDs should use realistic mock prefixes like chatcmpl_mock_, resp_mock_, embd_mock_, model_mock_, file_mock_, or img_mock_.
|
|
42
|
+
- For chat completions, include choices with message objects and usage token counts.
|
|
43
|
+
- For embeddings, include object: "list", data entries, model, and usage.
|
|
44
|
+
- For model/file lists, wrap results in {"object":"list","data":[]}.
|
|
45
45
|
`;
|
|
46
46
|
case "generic":
|
|
47
47
|
default:
|
|
48
|
-
return `${base}
|
|
49
|
-
- This is the generic fallback, not a full official API implementation.
|
|
50
|
-
- Analyze the URL path, method, query, and body to infer the service style and resource type.
|
|
51
|
-
- Preserve safe request body fields in the response when it makes sense, especially names, emails, titles, amounts, status, metadata, message content, and IDs supplied by the caller.
|
|
52
|
-
- Generate mock IDs from the inferred singular resource name: product_mock_xxx, message_mock_xxx, issue_mock_xxx, page_mock_xxx, file_mock_xxx, etc.
|
|
53
|
-
- If the path looks like a collection endpoint, return either a JSON array or a list object with data/items/results according to the service style.
|
|
54
|
-
- If the path looks like a resource-by-id endpoint, return one object matching that resource.
|
|
55
|
-
- For create/update methods, return one created or updated object and echo relevant body fields.
|
|
56
|
-
- Keep the response small, deterministic-looking, and useful for local agent testing.
|
|
48
|
+
return `${base}
|
|
49
|
+
- This is the generic fallback, not a full official API implementation.
|
|
50
|
+
- Analyze the URL path, method, query, and body to infer the service style and resource type.
|
|
51
|
+
- Preserve safe request body fields in the response when it makes sense, especially names, emails, titles, amounts, status, metadata, message content, and IDs supplied by the caller.
|
|
52
|
+
- Generate mock IDs from the inferred singular resource name: product_mock_xxx, message_mock_xxx, issue_mock_xxx, page_mock_xxx, file_mock_xxx, etc.
|
|
53
|
+
- If the path looks like a collection endpoint, return either a JSON array or a list object with data/items/results according to the service style.
|
|
54
|
+
- If the path looks like a resource-by-id endpoint, return one object matching that resource.
|
|
55
|
+
- For create/update methods, return one created or updated object and echo relevant body fields.
|
|
56
|
+
- Keep the response small, deterministic-looking, and useful for local agent testing.
|
|
57
57
|
`;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
export function getUserPrompt(method, path, query, body, provider = "generic") {
|
|
61
61
|
const genericContext = provider === "generic" ? buildGenericPromptContext(method, path, query, body) : "";
|
|
62
|
-
return `Generate a realistic JSON response for this request:
|
|
63
|
-
Method: ${method}
|
|
64
|
-
Path: ${path}
|
|
65
|
-
Query: ${JSON.stringify(query)}
|
|
66
|
-
Body: ${JSON.stringify(body)}
|
|
67
|
-
${genericContext}
|
|
62
|
+
return `Generate a realistic JSON response for this request:
|
|
63
|
+
Method: ${method}
|
|
64
|
+
Path: ${path}
|
|
65
|
+
Query: ${JSON.stringify(query)}
|
|
66
|
+
Body: ${JSON.stringify(body)}
|
|
67
|
+
${genericContext}
|
|
68
68
|
`;
|
|
69
69
|
}
|
|
70
70
|
export function buildGenericPromptContext(method, path, query, body) {
|
|
71
71
|
const serviceLabel = inferGenericService(path, query, body);
|
|
72
72
|
const resourceName = inferResourceName(path);
|
|
73
73
|
const endpointShape = isLikelyCollectionPath(method, path) ? "collection" : isLikelyResourceByIdPath(path) ? "resource-by-id" : "mutation-or-action";
|
|
74
|
-
return `Generic fallback context:
|
|
75
|
-
Service label: ${serviceLabel}
|
|
76
|
-
Inferred resource: ${resourceName}
|
|
77
|
-
Endpoint shape: ${endpointShape}
|
|
78
|
-
ID format: ${resourceName}_mock_<short_random_suffix>
|
|
74
|
+
return `Generic fallback context:
|
|
75
|
+
Service label: ${serviceLabel}
|
|
76
|
+
Inferred resource: ${resourceName}
|
|
77
|
+
Endpoint shape: ${endpointShape}
|
|
78
|
+
ID format: ${resourceName}_mock_<short_random_suffix>
|
|
79
79
|
Body echo rule: copy safe, relevant body fields into the response instead of inventing unrelated values.`;
|
|
80
80
|
}
|
|
81
81
|
//# sourceMappingURL=prompts.js.map
|
package/dist/ai/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjI,MAAM,UAAU,eAAe,CAAC,QAAsB;IACpD,MAAM,IAAI,GAAG;;;;CAId,CAAC;IAEA,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjI,MAAM,UAAU,eAAe,CAAC,QAAsB;IACpD,MAAM,IAAI,GAAG;;;;CAId,CAAC;IAEA,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAChF,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI;;;;;CAKnB,CAAC;QACE,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI;;;;CAInB,CAAC;QACE,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI;;;CAGnB,CAAC;QACE,KAAK,SAAS;YACZ,OAAO,GAAG,IAAI;;;CAGnB,CAAC;QACE,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI;;;;;;;CAOnB,CAAC;QACE,KAAK,SAAS,CAAC;QACf;YACE,OAAO,GAAG,IAAI;;;;;;;;;CASnB,CAAC;IACA,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAY,EAAE,KAA8B,EAAE,IAAa,EAAE,WAAyB,SAAS;IAC3I,MAAM,cAAc,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1G,OAAO;UACC,MAAM;QACR,IAAI;SACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAC1B,cAAc;CACf,CAAC;AACF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,IAAY,EAAE,KAA8B,EAAE,IAAa;IACnH,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAErJ,OAAO;iBACQ,YAAY;qBACR,YAAY;kBACf,aAAa;aAClB,YAAY;yGACgF,CAAC;AAC1G,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { type ActionApproval, type ActionApprovalSigner, type ActionApprovalVerifier, type ActionEnvelope, type ActionExecutionIdentity, type ActionExecutionReceipt, type ActionGatewayOptions, type ActionPolicyCheck } from "../actions/index.js";
|
|
2
|
+
export type ApprovalRisk = "read" | "create" | "update" | "communicate" | "money_movement" | "delete" | "permission_change" | "deployment";
|
|
3
|
+
export type ApprovalRequestStatus = "pending" | "approved" | "rejected" | "revoked" | "timed_out" | "expired" | "executing" | "executed" | "execution_failed" | "superseded";
|
|
4
|
+
export type ApprovalPolicy = {
|
|
5
|
+
schemaVersion: 1;
|
|
6
|
+
kind: "ghostapi.approval-policy";
|
|
7
|
+
id: string;
|
|
8
|
+
version: number;
|
|
9
|
+
allowedEnvironments: string[];
|
|
10
|
+
allowedActors?: string[];
|
|
11
|
+
allowedResources?: string[];
|
|
12
|
+
maxAmountMinor?: number;
|
|
13
|
+
minimumConfidence: number;
|
|
14
|
+
criticalRisks: ApprovalRisk[];
|
|
15
|
+
velocity: {
|
|
16
|
+
maxActions: number;
|
|
17
|
+
windowMs: number;
|
|
18
|
+
};
|
|
19
|
+
approvalTtlMs: number;
|
|
20
|
+
escalationTimeoutMs: number;
|
|
21
|
+
};
|
|
22
|
+
export type ApprovalContext = {
|
|
23
|
+
confidence: number;
|
|
24
|
+
amountMinor?: number;
|
|
25
|
+
};
|
|
26
|
+
export type ApprovalApprover = {
|
|
27
|
+
id: string;
|
|
28
|
+
principalId: string;
|
|
29
|
+
independenceKey: string;
|
|
30
|
+
};
|
|
31
|
+
export interface ApprovalApproverVerifier {
|
|
32
|
+
authenticate(identity: unknown): Promise<ApprovalApprover>;
|
|
33
|
+
}
|
|
34
|
+
export type ApprovalDecision = {
|
|
35
|
+
id: string;
|
|
36
|
+
kind: "approve" | "reject" | "revoke";
|
|
37
|
+
approverId: string;
|
|
38
|
+
principalId: string;
|
|
39
|
+
independenceKey: string;
|
|
40
|
+
reason?: string;
|
|
41
|
+
decidedAt: string;
|
|
42
|
+
};
|
|
43
|
+
export type ApprovalDisplay = {
|
|
44
|
+
intent: string;
|
|
45
|
+
target: string;
|
|
46
|
+
normalizedArgumentDiff: {
|
|
47
|
+
before: Record<string, never>;
|
|
48
|
+
after: ActionEnvelope["arguments"];
|
|
49
|
+
};
|
|
50
|
+
expectedSideEffects: string[];
|
|
51
|
+
reversibility: ActionEnvelope["reversibility"];
|
|
52
|
+
impact: {
|
|
53
|
+
amountMinor: number | null;
|
|
54
|
+
amountKnown: boolean;
|
|
55
|
+
irreversible: boolean;
|
|
56
|
+
};
|
|
57
|
+
policyReason: string[];
|
|
58
|
+
evidenceHash: string;
|
|
59
|
+
simulation: {
|
|
60
|
+
status: "passed";
|
|
61
|
+
summary: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export type ApprovalRequest = {
|
|
65
|
+
id: string;
|
|
66
|
+
action: ActionEnvelope;
|
|
67
|
+
actionHash: string;
|
|
68
|
+
risk: ApprovalRisk;
|
|
69
|
+
context: ApprovalContext;
|
|
70
|
+
policy: {
|
|
71
|
+
id: string;
|
|
72
|
+
version: number;
|
|
73
|
+
hash: string;
|
|
74
|
+
requiredApprovals: number;
|
|
75
|
+
};
|
|
76
|
+
display: ApprovalDisplay;
|
|
77
|
+
status: ApprovalRequestStatus;
|
|
78
|
+
createdAt: string;
|
|
79
|
+
expiresAt: string;
|
|
80
|
+
escalationAt: string;
|
|
81
|
+
decisions: ApprovalDecision[];
|
|
82
|
+
artifact?: ActionApproval;
|
|
83
|
+
consumedAt?: string;
|
|
84
|
+
executionReceiptHash?: string;
|
|
85
|
+
supersedesRequestId?: string;
|
|
86
|
+
};
|
|
87
|
+
export type ApprovalAuditRecord = {
|
|
88
|
+
sequence: number;
|
|
89
|
+
event: string;
|
|
90
|
+
requestId: string;
|
|
91
|
+
actionHash: string;
|
|
92
|
+
actionReceiptHash?: string;
|
|
93
|
+
actorId: string;
|
|
94
|
+
timestamp: string;
|
|
95
|
+
previousHash: string;
|
|
96
|
+
recordHash: string;
|
|
97
|
+
};
|
|
98
|
+
export type ApprovalInboxState = {
|
|
99
|
+
schemaVersion: 1;
|
|
100
|
+
requests: ApprovalRequest[];
|
|
101
|
+
auditAnchor: string;
|
|
102
|
+
audit: ApprovalAuditRecord[];
|
|
103
|
+
};
|
|
104
|
+
export type ApprovalInboxOptions = {
|
|
105
|
+
path?: string;
|
|
106
|
+
now?: () => Date;
|
|
107
|
+
approverVerifier: ApprovalApproverVerifier;
|
|
108
|
+
approvalSigner: ActionApprovalSigner;
|
|
109
|
+
approvalVerifier: ActionApprovalVerifier;
|
|
110
|
+
actionGatewayOptions?: Omit<ActionGatewayOptions, "now" | "approvalVerifier">;
|
|
111
|
+
testing?: {
|
|
112
|
+
onExecutionCheckpoint?: (checkpoint: "inbox-executing" | "gateway-submitted" | "gateway-verified") => void | Promise<void>;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
export declare class ApprovalInboxError extends Error {
|
|
116
|
+
constructor(message: string);
|
|
117
|
+
}
|
|
118
|
+
export declare function createLocalApprovalInbox(options: ApprovalInboxOptions): LocalApprovalInbox;
|
|
119
|
+
export declare function createApprovalInboxExecutionFlow(options: ApprovalInboxOptions): LocalApprovalInbox;
|
|
120
|
+
export declare class LocalApprovalInbox {
|
|
121
|
+
private readonly path;
|
|
122
|
+
private readonly now;
|
|
123
|
+
private readonly approverVerifier;
|
|
124
|
+
private readonly approvalSigner;
|
|
125
|
+
private readonly actionGateway;
|
|
126
|
+
private readonly onExecutionCheckpoint?;
|
|
127
|
+
constructor(options: ApprovalInboxOptions);
|
|
128
|
+
request(actionValue: unknown, policyValue: unknown, contextValue: unknown): Promise<ApprovalRequest>;
|
|
129
|
+
approve(requestIdValue: string, identity: unknown): Promise<ApprovalRequest>;
|
|
130
|
+
reject(requestIdValue: string, identity: unknown, reasonValue: string): Promise<ApprovalRequest>;
|
|
131
|
+
revoke(requestIdValue: string, identity: unknown, reasonValue: string): Promise<ApprovalRequest>;
|
|
132
|
+
editAndResubmit(requestIdValue: string, identity: unknown, replacementAction: unknown, policy: unknown, context: unknown): Promise<ApprovalRequest>;
|
|
133
|
+
execute(requestIdValue: string, identity: ActionExecutionIdentity, actionPolicy: ActionPolicyCheck, policyValue: unknown): Promise<ActionExecutionReceipt>;
|
|
134
|
+
get(requestIdValue: string): Promise<ApprovalRequest>;
|
|
135
|
+
list(status?: ApprovalRequestStatus): Promise<ApprovalRequest[]>;
|
|
136
|
+
readStateForTesting(): Promise<ApprovalInboxState>;
|
|
137
|
+
private decideTerminal;
|
|
138
|
+
private read;
|
|
139
|
+
private mutate;
|
|
140
|
+
private write;
|
|
141
|
+
private latestDurableFailedReceipt;
|
|
142
|
+
private timestamp;
|
|
143
|
+
}
|
|
144
|
+
export declare function createTestApprovalApproverVerifier(): {
|
|
145
|
+
verifier: ApprovalApproverVerifier;
|
|
146
|
+
issue(input: Omit<ApprovalApprover, "principalId"> & {
|
|
147
|
+
principalId?: string;
|
|
148
|
+
}): ApprovalApprover;
|
|
149
|
+
};
|
|
150
|
+
export declare function approvalPolicyHash(value: unknown): string;
|