@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
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# GhostAPI Launch And Fundraising Package
|
|
2
|
+
|
|
3
|
+
**Status as of 2026-08-09:** This package describes a working local release candidate and a proposed customer-validation plan. It does not claim users, revenue, growth, customer quotes, customer outcomes, or a deployed hosted service. The evidence boundary is documented in [metrics-and-evidence.md](metrics-and-evidence.md).
|
|
4
|
+
|
|
5
|
+
## Category Claim
|
|
6
|
+
|
|
7
|
+
> Safety and verification infrastructure for software built by AI agents.
|
|
8
|
+
|
|
9
|
+
GhostAPI starts with a narrow, testable wedge: a local provider simulation runtime plus a Linux-only fail-closed egress boundary and sanitized CI evidence for AI-assisted integration code.
|
|
10
|
+
|
|
11
|
+
## One-Line Description
|
|
12
|
+
|
|
13
|
+
GhostAPI helps teams test AI-authored integrations against safe local provider simulations and produce CI evidence that a supported run did not reach production.
|
|
14
|
+
|
|
15
|
+
## 50-Word Description
|
|
16
|
+
|
|
17
|
+
GhostAPI is safety and verification infrastructure for software built by AI agents. It simulates selected third-party APIs locally, injects controlled failures, masks secret-shaped data, and on supported Linux hosts runs tests inside a loopback-only network namespace. It produces sanitized CI evidence so reviewers can assess integration behavior before merge.
|
|
18
|
+
|
|
19
|
+
## Problem And Solution
|
|
20
|
+
|
|
21
|
+
AI coding agents can write and execute code that creates payments, sends messages, modifies repositories, or calls costly model APIs. A base-URL convention or hand-written mock does not stop a new HTTP client, direct IP call, or subprocess. Teams also need to test ambiguity: `429`, timeouts, duplicate delivery, retries, and idempotency.
|
|
22
|
+
|
|
23
|
+
GhostAPI gives the integration code a local, provider-shaped test target. On compatible Linux hosts, `ghostapi run` starts the target in a fresh user, mount, network, and PID namespace with loopback only, or refuses to start. CI can then retain a bounded, redacted evidence artifact from the exact run. This is not a guarantee against a hostile host, same-user accessible UNIX control sockets, or every provider behavior.
|
|
24
|
+
|
|
25
|
+
## Why Now
|
|
26
|
+
|
|
27
|
+
Coding agents are increasingly able to edit and run integration code in tight loops. That makes external side effects and flaky third-party dependencies part of the code-review surface, rather than a manual testing concern. Existing tools address pieces of the workflow: provider test environments, HTTP mocks, request interception, or CI artifacts. GhostAPI tests whether a combined safety boundary plus deterministic failure evidence is a valuable merge gate.
|
|
28
|
+
|
|
29
|
+
This is a product hypothesis, not evidence of market demand. The repository has no validated customer interview, weekly CI user, paid pilot, or revenue record as of 2026-08-09.
|
|
30
|
+
|
|
31
|
+
## Market Framing
|
|
32
|
+
|
|
33
|
+
GhostAPI is not positioned as "more mocks." It sits between:
|
|
34
|
+
|
|
35
|
+
- Local API simulation and contract testing for integration development.
|
|
36
|
+
- Agent evaluation and reliability testing for generated code.
|
|
37
|
+
- CI policy evidence for teams that need to review external side-effect risk.
|
|
38
|
+
|
|
39
|
+
The initial buyer hypothesis is a Platform Engineering, AppSec, Developer Productivity, or AI governance leader at a 10-200 engineer SaaS team with sensitive payments, communications, source-control, or model-provider integrations.
|
|
40
|
+
|
|
41
|
+
## Competitive Matrix
|
|
42
|
+
|
|
43
|
+
This table compares published scopes reviewed on 2026-08-09. It is not a benchmark or a claim that competitors cannot build similar functions.
|
|
44
|
+
|
|
45
|
+
| Category / primary source | Publicly documented focus | GhostAPI's narrow difference | Boundary |
|
|
46
|
+
| --- | --- | --- | --- |
|
|
47
|
+
| Stripe test mode and test clocks | Stripe provides test-mode APIs and test clocks for Stripe behavior. | GhostAPI runs a local Stripe-shaped pack and can combine it with local fault behavior and CI evidence. | GhostAPI does not claim live Stripe parity. |
|
|
48
|
+
| WireMock | HTTP API mocking, stubbing, and simulation. | GhostAPI adds reviewed provider-shaped packs, MCP controls, and a Linux egress-run/evidence workflow. | WireMock is mature and configurable; GhostAPI must prove why this workflow matters. |
|
|
49
|
+
| Mock Service Worker | Network-level request interception with handlers for tests and development. | GhostAPI is a standalone local provider runtime, not browser/app-process interception, and targets agent-controlled integration flows. | MSW remains a strong application-test choice. |
|
|
50
|
+
| Postman | API development, testing, and collaboration around collections/APIs. | GhostAPI focuses on executing application/agent code safely in a local runtime and retaining run evidence. | It is not an API-client replacement. |
|
|
51
|
+
| GitHub Actions artifacts and checks | CI status checks and artifact retention. | GhostAPI supplies an integration-specific, sanitized evidence artifact and policy result. | GitHub remains the CI platform; GhostAPI is a check within it. |
|
|
52
|
+
|
|
53
|
+
Primary sources: [Stripe test mode](https://docs.stripe.com/test-mode), [Stripe test clocks](https://docs.stripe.com/billing/testing/test-clocks), [WireMock documentation](https://wiremock.org/docs/), [MSW documentation](https://mswjs.io/docs/), [Postman documentation](https://learning.postman.com/docs/), and [GitHub Actions artifacts](https://docs.github.com/actions/using-workflows/storing-workflow-data-as-artifacts). Recheck these links before external publication.
|
|
54
|
+
|
|
55
|
+
## Moat Thesis
|
|
56
|
+
|
|
57
|
+
The potential moat is an evidence chain, not a single simulator: one typed workflow should eventually connect local simulation, sanitized record/replay, deterministic evals, CI policy checks, and bounded production-action controls. Provider compatibility fixtures, incident-derived regression scenarios, and deployment into merge gates could compound over time.
|
|
58
|
+
|
|
59
|
+
This is a thesis, not a current moat. Today, GhostAPI has a local runtime, an early Stripe pack, policy/evidence/eval primitives, and an undeployed hosted-pilot skeleton. It has no demonstrated switching costs, network effects, customer data advantage, or production action gateway.
|
|
60
|
+
|
|
61
|
+
## Go-To-Market
|
|
62
|
+
|
|
63
|
+
1. Recruit five tightly qualified paid-pilot candidates, not a broad self-serve funnel.
|
|
64
|
+
2. Lead with one risk: AI-authored Stripe or webhook code running in CI without production credentials or egress proof.
|
|
65
|
+
3. Run a 30-minute discovery call, then offer a fixed-scope, 3-4 week validation pilot only if a buyer owns the risk.
|
|
66
|
+
4. Require one Linux CI workflow, one deterministic failure path, a named technical owner, and a closeout decision.
|
|
67
|
+
5. Publish useful OSS examples and a technical launch only after the exact release commit passes the pinned Linux CI workflow.
|
|
68
|
+
6. Use observed adoption, blocked workflows, and buyer decisions to decide whether shared CI evidence is worth hosted product work.
|
|
69
|
+
|
|
70
|
+
## Pricing Summary
|
|
71
|
+
|
|
72
|
+
- **OSS Local:** available, MIT licensed, local-first, and free. It has no account, paywall, or hosted dependency.
|
|
73
|
+
- **Team:** a proposed fixed-scope design-partner pilot, not a generally available plan. No public price is validated.
|
|
74
|
+
- **Enterprise:** discovery only. No hosted deployment, SSO/SCIM, SLA, billing, or production-action service is available for purchase.
|
|
75
|
+
|
|
76
|
+
See [commercial/pricing.md](../commercial/pricing.md) for the evidence-led pricing experiment and [commercial/manual-invoicing.md](../commercial/manual-invoicing.md) for the manual-pilot boundary.
|
|
77
|
+
|
|
78
|
+
## Package Index
|
|
79
|
+
|
|
80
|
+
- [Metrics and evidence boundary](metrics-and-evidence.md)
|
|
81
|
+
- [Three-minute technical demo](demo-script.md)
|
|
82
|
+
- [Launch posts](launch-posts.md)
|
|
83
|
+
- [YC-style application answers](yc-application.md)
|
|
84
|
+
- [50 design-partner targets](design-partners-50.md)
|
|
85
|
+
- [Data room checklist](data-room-checklist.md)
|
|
86
|
+
- [12-month gated roadmap](roadmap-12-month.md)
|
|
87
|
+
- [Technical due diligence index](technical-due-diligence-index.md)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Data Room Checklist
|
|
2
|
+
|
|
3
|
+
Create this room only with founder and counsel review. Do not place provider secrets, raw traffic, production credentials, customer source code, personal data, or unredacted security incidents in it.
|
|
4
|
+
|
|
5
|
+
## Corporate
|
|
6
|
+
|
|
7
|
+
- [ ] Certificate of incorporation or formation; jurisdiction and entity type.
|
|
8
|
+
- [ ] Charter, bylaws, operating agreement, and board consents.
|
|
9
|
+
- [ ] Cap table with fully diluted ownership, option pool, SAFEs/notes/warrants, and dates.
|
|
10
|
+
- [ ] Founder stock purchase agreements and vesting/repurchase terms.
|
|
11
|
+
- [ ] Founder, employee, and contractor IP/confidentiality assignment agreements.
|
|
12
|
+
- [ ] Current officer/director list and any investor rights.
|
|
13
|
+
- [ ] Tax registrations, elections, and material tax correspondence.
|
|
14
|
+
|
|
15
|
+
## Product And IP
|
|
16
|
+
|
|
17
|
+
- [ ] Repository map, architecture overview, and package boundaries.
|
|
18
|
+
- [ ] License inventory for direct and material transitive dependencies.
|
|
19
|
+
- [ ] OSS license, contributor policy, and third-party notices.
|
|
20
|
+
- [ ] Trademark/domain ownership record, if applicable.
|
|
21
|
+
- [ ] Evidence that contributors assigned or licensed contributed IP appropriately.
|
|
22
|
+
- [ ] List of proprietary datasets, provider contracts, or generated assets, if any.
|
|
23
|
+
|
|
24
|
+
## Security And Privacy
|
|
25
|
+
|
|
26
|
+
- [ ] `SECURITY.md`, egress threat model, release-readiness matrix, and incident-response material.
|
|
27
|
+
- [ ] Current dependency audit results with runtime/dev separation and remediation plan.
|
|
28
|
+
- [ ] Secure-development controls: code review, CI, pinned actions, secret scanning, and release checklist.
|
|
29
|
+
- [ ] Data inventory and draft privacy/terms materials clearly labeled as non-operative until counsel approves them.
|
|
30
|
+
- [ ] Product data-flow diagram: local runtime, local evidence, optional local telemetry, and undeployed hosted-pilot boundary.
|
|
31
|
+
- [ ] Disclosure of limitations: Linux-only enforcement, same-user/filesystem limits, heuristic sanitization, and no deployed hosted control plane.
|
|
32
|
+
- [ ] Penetration-test, SOC 2, ISO, or compliance evidence only if actually completed; otherwise state "not completed."
|
|
33
|
+
|
|
34
|
+
## Commercial And Customer Evidence
|
|
35
|
+
|
|
36
|
+
- [ ] Dated, sanitized customer discovery ledger with source references.
|
|
37
|
+
- [ ] Signed pilot agreements, LOIs, invoices, purchase orders, or renewals, if any.
|
|
38
|
+
- [ ] Pilot success criteria and closeout reports.
|
|
39
|
+
- [ ] Customer references only with written permission.
|
|
40
|
+
- [ ] Pricing hypotheses, quotes, objections, and conversion outcomes marked as observed vs assumption.
|
|
41
|
+
- [ ] Explicit statement that as of 2026-08-09 this repository contains no verified paid pilot, LOI, customer outcome, or revenue.
|
|
42
|
+
|
|
43
|
+
## Metrics
|
|
44
|
+
|
|
45
|
+
- [ ] Metric definitions: activation, weekly CI use, retained team, prevented egress, bug caught, paid pilot, and expansion.
|
|
46
|
+
- [ ] Data-source map and owner for each metric.
|
|
47
|
+
- [ ] Local telemetry export policy and opt-in/opt-out evidence.
|
|
48
|
+
- [ ] Cohort and retention reports only after data is actually collected.
|
|
49
|
+
- [ ] Explanation of metrics unavailable or not measured; never backfill estimates as observed facts.
|
|
50
|
+
|
|
51
|
+
## Financial Model Inputs
|
|
52
|
+
|
|
53
|
+
- [ ] Cash balance, burn, runway, headcount/contractor commitments, and material liabilities.
|
|
54
|
+
- [ ] Bottom-up pilot model: target accounts, discovery-to-pilot assumptions, fixed pilot scope, support hours, and delivery cost.
|
|
55
|
+
- [ ] Pricing research ledger, including null/negative outcomes.
|
|
56
|
+
- [ ] Hosting, support, provider, security, legal, insurance, and sales cost assumptions with date/source.
|
|
57
|
+
- [ ] Base, downside, and upside scenarios clearly labeled as assumptions.
|
|
58
|
+
- [ ] No claim of ARR, MRR, gross margin, CAC, LTV, or pipeline without a source and calculation.
|
|
59
|
+
|
|
60
|
+
## Contracts And Legal
|
|
61
|
+
|
|
62
|
+
- [ ] Pilot agreement template reviewed by counsel.
|
|
63
|
+
- [ ] Statement of work template: scope, evidence, support boundary, acceptance, confidentiality, and exit.
|
|
64
|
+
- [ ] Data-processing terms, subprocessors, retention/deletion terms, and security addendum only when the service model exists and counsel approves them.
|
|
65
|
+
- [ ] Insurance, export-control, employment, and open-source compliance records as applicable.
|
|
66
|
+
|
|
67
|
+
## Technical Due Diligence
|
|
68
|
+
|
|
69
|
+
- [ ] Link to [technical-due-diligence-index.md](technical-due-diligence-index.md).
|
|
70
|
+
- [ ] Release commit SHA and CI evidence from the exact release candidate.
|
|
71
|
+
- [ ] Test/build/package/audit outputs with command, date, environment, and known gaps.
|
|
72
|
+
- [ ] Architecture decisions, threat model, security findings, and remediation status.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Three-Minute Technical Demo
|
|
2
|
+
|
|
3
|
+
## Claim And Limits
|
|
4
|
+
|
|
5
|
+
Show a reproducible technical demonstration, not a customer result:
|
|
6
|
+
|
|
7
|
+
> An AI coding agent can write unsafe Stripe integration code; GhostAPI can keep a supported Linux test run off production, make failure paths deterministic, and publish sanitized evidence for review.
|
|
8
|
+
|
|
9
|
+
Run the enforcement portion only on a compatible Linux runner. Windows and macOS can demonstrate local simulation and MCP behavior controls, but cannot demonstrate `ghostapi run` egress enforcement. Do not run the direct-production-egress fixture outside the enforced Linux boundary.
|
|
10
|
+
|
|
11
|
+
The current eval runner deliberately does **not** auto-apply declared `injectedFailures`; configure the failures through MCP before the run. This is an operator-orchestrated demo, not one fully automatic command.
|
|
12
|
+
|
|
13
|
+
## Preflight
|
|
14
|
+
|
|
15
|
+
1. Use a clean checkout of the proposed release commit on Linux with Node.js 20+, `unshare`, and `iproute2`.
|
|
16
|
+
2. Run `npm ci`, `npm run build`, and `node dist/cli/index.js doctor --egress --json`.
|
|
17
|
+
3. Use a temporary `GHOSTAPI_DATA_DIR`; use only fake Stripe keys.
|
|
18
|
+
4. Prepare a small agent-authored test with three cases: retry a `429` while honoring `Retry-After`, abort a delayed local response, and de-duplicate a pull-delivered Stripe webhook. The existing [Stripe example](../../examples/stripe-node/README.md) demonstrates local duplicate webhook delivery.
|
|
19
|
+
5. Start the GhostAPI MCP server using the checked-out build. Ask the coding agent to configure these deterministic local controls before it writes/runs tests:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
set_api_behavior POST /v1/payment_intents
|
|
23
|
+
status: 429
|
|
24
|
+
headers: { retry-after: "1" }
|
|
25
|
+
|
|
26
|
+
set_api_behavior POST /v1/customers
|
|
27
|
+
status: 200
|
|
28
|
+
delayMs: 1500
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`delayMs` is bounded to 10 seconds and only delays the specified local behavior. It does not affect a live provider.
|
|
32
|
+
|
|
33
|
+
## Live Script
|
|
34
|
+
|
|
35
|
+
| Time | What to show | What to say |
|
|
36
|
+
| --- | --- | --- |
|
|
37
|
+
| 0:00-0:25 | Give the agent the task: create a Stripe Payment Intent helper with retry/idempotency and webhook de-duplication. | "The point is not that the agent can call Stripe. The point is that the test environment makes dangerous and ambiguous behavior visible before merge." |
|
|
38
|
+
| 0:25-0:50 | Show the first agent implementation: it retries after `429` but reuses neither an idempotency key nor timeout-safe state; its webhook handler processes the duplicate twice. | "This is deliberately unsafe demo code, not a production incident." |
|
|
39
|
+
| 0:50-1:20 | Run its test through `ghostapi run --policy ghostapi.policy.yaml -- npm test`. The local 429, delayed response, and duplicate delivery reveal the defects. | "The target has loopback only if Linux preflight succeeds. If preflight fails, GhostAPI refuses to launch it." |
|
|
40
|
+
| 1:20-1:40 | Run the reference blocked-egress regression: `ghostapi run --policy examples/ci-smoke/ghostapi.policy.yaml -- npm --prefix examples/ci-smoke run test:production-egress`. It must exit non-zero. | "This direct `api.stripe.com` attempt is intentionally blocked by the namespace. The current backend does not attribute each kernel-denied socket individually." |
|
|
41
|
+
| 1:40-2:05 | Ask the agent to retain one idempotency key across retry, stop on client timeout, and de-duplicate webhook event IDs. Re-run the local tests. | "The fix is application behavior; GhostAPI exposes the failure path without production credentials or outbound provider calls." |
|
|
42
|
+
| 2:05-2:35 | Run the fixed tests through `ghostapi run` and generate evidence from the exact run: `ghostapi evidence generate --policy ghostapi.policy.yaml --run <run.json> --out ghostapi-evidence.json --ci`. | "The evidence is bounded and redacted. It is the review record, not raw request logs." |
|
|
43
|
+
| 2:35-3:00 | Show the `Enforced safety check` status and uploaded artifact using the reference [PR workflow](../github-actions.md). | "The claim is narrow: this supported run passed its policy with zero recorded production attempts. It is not a general host sandbox, hosted service, or absolute safety guarantee." |
|
|
44
|
+
|
|
45
|
+
## Expected Outcomes
|
|
46
|
+
|
|
47
|
+
- The unsafe implementation's unit/integration assertions fail on `429`, timeout, or duplicate webhook handling.
|
|
48
|
+
- The direct-production-egress fixture exits non-zero only within a successful Linux namespace run.
|
|
49
|
+
- The corrected implementation's local tests pass.
|
|
50
|
+
- The fixed CI run produces a sanitized evidence artifact and passes the chosen policy.
|
|
51
|
+
|
|
52
|
+
Do not claim that GhostAPI automatically discovered the bug, injected eval-declared failures by itself, prevented a real production incident, or proves every route from an agent to the internet is impossible.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# 50 Design-Partner Targets
|
|
2
|
+
|
|
3
|
+
This is an account list for research and outreach, not evidence that any company is interested, uses AI coding agents, has the required provider stack, or has been contacted. Do not infer a personal contact from this list. Before outreach, verify the current engineering size, relevant integration risk, public AI-development posture, and appropriate Platform/AppSec/Developer Productivity/Engineering leader through public company channels.
|
|
4
|
+
|
|
5
|
+
## Qualification Criteria
|
|
6
|
+
|
|
7
|
+
- B2B SaaS or developer-facing company with an externally integrated product.
|
|
8
|
+
- Plausible risk from payments, communications, source-control, webhooks, cloud APIs, or model-provider APIs.
|
|
9
|
+
- Likely ability to run one compatible Linux CI workflow.
|
|
10
|
+
- A team that can name a technical owner and a buyer for a 3-4 week fixed-scope pilot.
|
|
11
|
+
|
|
12
|
+
## Targets
|
|
13
|
+
|
|
14
|
+
| # | Account | Segment | Why It May Fit | Outreach Thesis |
|
|
15
|
+
| ---: | --- | --- | --- | --- |
|
|
16
|
+
| 1 | Vercel | Developer platform | Agent-assisted development and deployment integrations. | Can a CI artifact improve review of agent-authored integration code? |
|
|
17
|
+
| 2 | Sentry | Developer tooling | Error, alerting, and webhook integrations. | Test retries and external notifications without live side effects. |
|
|
18
|
+
| 3 | PostHog | Product analytics | Event, webhook, and developer-platform workflows. | Make integration failures repeatable in CI. |
|
|
19
|
+
| 4 | Render | Cloud platform | Customer-facing provisioning and API workflows. | Validate agent-authored API clients against bounded failures. |
|
|
20
|
+
| 5 | Railway | Cloud platform | Deployment and API-heavy developer workflows. | Test agent changes without reaching production services. |
|
|
21
|
+
| 6 | Fly.io | Cloud platform | Infrastructure APIs and release automation. | Review egress and failure behavior before merge. |
|
|
22
|
+
| 7 | Supabase | Backend platform | Auth, database, webhook, and API ecosystems. | Exercise client retries and webhook validation locally. |
|
|
23
|
+
| 8 | Clerk | Identity platform | Auth and webhook integration risk. | Verify duplicate deliveries and failure handling in CI. |
|
|
24
|
+
| 9 | Auth0 | Identity platform | Security-sensitive identity integrations. | Establish deterministic negative-path evidence. |
|
|
25
|
+
| 10 | WorkOS | Enterprise identity | Webhook and directory-sync integrations. | Test high-risk callbacks without live tenant data. |
|
|
26
|
+
| 11 | LaunchDarkly | Feature management | SDK and webhook-heavy platform surface. | Gate agent-authored integration tests on evidence. |
|
|
27
|
+
| 12 | Datadog | Observability | Alerting and API integrations. | Test rate limits and retries without production calls. |
|
|
28
|
+
| 13 | New Relic | Observability | Instrumentation and notification integrations. | Identify whether local evidence changes review workflow. |
|
|
29
|
+
| 14 | Honeycomb | Observability | Event and API-driven engineering teams. | Evaluate deterministic failure testing for agents. |
|
|
30
|
+
| 15 | Grafana Labs | Observability | Plugins, alerts, and external service integrations. | Test outbound boundaries in contributor/CI flows. |
|
|
31
|
+
| 16 | PagerDuty | Incident response | External notification and automation risk. | Reproduce failed notification and retry behavior safely. |
|
|
32
|
+
| 17 | Incident.io | Incident response | Slack, webhook, and automation workflows. | Test duplicate event and timeout recovery paths. |
|
|
33
|
+
| 18 | Linear | Collaboration software | GitHub and notification integrations. | Evaluate safe integration changes authored by agents. |
|
|
34
|
+
| 19 | Notion | Collaboration software | API and webhook ecosystem. | Test agent changes against local provider-shaped boundaries. |
|
|
35
|
+
| 20 | Airtable | Workflow platform | Automation and third-party API workflows. | Test deterministic error handling before merge. |
|
|
36
|
+
| 21 | Zapier | Automation platform | Multi-provider side-effect risk. | Pick one workflow where egress evidence changes a release decision. |
|
|
37
|
+
| 22 | n8n | Workflow automation | User-configured external integrations. | Test agent-generated nodes without provider credentials. |
|
|
38
|
+
| 23 | Retool | Internal-tools platform | Customer API connections and agent-assisted builds. | Enforce a safe test target for generated integrations. |
|
|
39
|
+
| 24 | Temporal | Workflow orchestration | Retry, timeout, and idempotency-heavy workflows. | Validate integration behavior under controlled ambiguity. |
|
|
40
|
+
| 25 | Airbyte | Data integration | Connector and external API reliability risk. | Test connector behavior with bounded local scenarios. |
|
|
41
|
+
| 26 | Fivetran | Data integration | Provider APIs, auth, and retry semantics. | Explore a reproducible failure-evidence workflow. |
|
|
42
|
+
| 27 | Pipedream | Developer automation | Code steps calling many provider APIs. | Keep agent-authored tests out of production by default. |
|
|
43
|
+
| 28 | Algolia | Search platform | SDK and webhook/API customer integrations. | Test provider failures and evidence artifacts in CI. |
|
|
44
|
+
| 29 | Amplitude | Product analytics | Event ingestion, API, and integration surface. | Validate one agent-generated client failure path before merge. |
|
|
45
|
+
| 30 | Snyk | Developer security | AppSec buyer overlap and CI-native workflows. | Assess whether evidence adds value beyond code scanning. |
|
|
46
|
+
| 31 | Semgrep | Developer security | CI policy and AI-code review focus. | Test a complementary runtime-evidence workflow. |
|
|
47
|
+
| 32 | Sonar | Code quality | AI-generated-code review focus. | Determine whether integration evidence complements static checks. |
|
|
48
|
+
| 33 | GitLab | DevOps platform | CI, security, and integration ecosystem. | Explore a narrow CI evidence pilot, not a platform replacement. |
|
|
49
|
+
| 34 | CircleCI | CI platform | CI-native customer base and external integrations. | Test whether a reusable safety check is valuable to users. |
|
|
50
|
+
| 35 | Harness | Delivery platform | Policy and controlled automation use cases. | Validate egress evidence around one AI-assisted workflow. |
|
|
51
|
+
| 36 | Buildkite | CI platform | Engineering teams with flexible CI environments. | Qualify Linux enforcement and artifact retention needs. |
|
|
52
|
+
| 37 | HashiCorp | Infrastructure software | API-driven provisioning and security-sensitive workflows. | Assess a narrowly scoped egress/evidence workflow. |
|
|
53
|
+
| 38 | Stripe | Payments platform | Payment lifecycle and developer test workflows. | Explore local deterministic payment-failure evidence. |
|
|
54
|
+
| 39 | Paddle | Payments platform | Billing and webhook integrations. | Test duplicate delivery and idempotency paths in CI. |
|
|
55
|
+
| 40 | Adyen | Payments platform | High-stakes payment integrations. | Qualify whether local simulation adds value to existing test tools. |
|
|
56
|
+
| 41 | Plaid | Financial data APIs | Sensitive API and webhook workflows. | Test safe failure/retry behavior without live access. |
|
|
57
|
+
| 42 | Mercury | Fintech | Banking workflow side-effect sensitivity. | Validate whether evidence alters one release decision. |
|
|
58
|
+
| 43 | Brex | Fintech | Spend and payment integrations. | Explore bounded agent integration testing with no production credentials. |
|
|
59
|
+
| 44 | Rippling | HR platform | Payroll, identity, and integration complexity. | Test webhook and external workflow failure paths. |
|
|
60
|
+
| 45 | Gusto | HR/payroll | High-consequence external integrations. | Qualify one non-production CI workflow only. |
|
|
61
|
+
| 46 | Webflow | SaaS platform | API, app ecosystem, and automation workflows. | Test agent-authored apps/integrations before merge. |
|
|
62
|
+
| 47 | Intercom | Customer communications | Messaging/webhook side-effect risk. | Test retries, rate limits, and no-live-send workflow. |
|
|
63
|
+
| 48 | Twilio | Communications platform | Messaging API and webhook ecosystem. | Exercise agent-generated integration failures locally. |
|
|
64
|
+
| 49 | Resend | Email platform | Email-send integration and developer experience. | Test no-live-send and retry evidence in CI. |
|
|
65
|
+
| 50 | ElevenLabs | AI platform | API usage, spend, and model-provider integration risk. | Test agent code against local provider-shaped responses. |
|
|
66
|
+
|
|
67
|
+
## Outreach Sequence To Five Paid-Pilot Decisions
|
|
68
|
+
|
|
69
|
+
1. Research 50 accounts and select 20 that meet all four qualification criteria.
|
|
70
|
+
2. Send 20 concise role-based outreach notes asking for a 20-minute discovery call about one existing integration review or failure path; do not claim a customer result.
|
|
71
|
+
3. Run 10 discovery calls using [the question set](../design-partners/discovery-questions.md). Record only a dated, sanitized private summary.
|
|
72
|
+
4. Invite the 5 strongest fits to a live technical demo and ask each for a binary pilot decision, named owner, one Linux CI workflow, and a 3-4 week time commitment.
|
|
73
|
+
5. Offer a written fixed-scope paid-pilot proposal only where the buyer confirms a budget process and measurable success criteria. Count a decision of "no," "later," or "OSS only" as a valid outcome; do not convert interest into traction.
|
|
74
|
+
6. Target outcome: five paid-pilot **decisions**, not five fabricated contracts. Success is at least one signed paid pilot or a documented reason to reshape the wedge.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Launch Posts
|
|
2
|
+
|
|
3
|
+
Use only after the exact release commit has passed the pinned Linux CI workflow. Replace bracketed fields with verified facts or remove them. Do not add customer, revenue, install, or performance claims without a dated source.
|
|
4
|
+
|
|
5
|
+
## Hacker News: Show HN
|
|
6
|
+
|
|
7
|
+
**Title:** Show HN: GhostAPI - local API simulation and CI evidence for AI-authored integrations
|
|
8
|
+
|
|
9
|
+
**Post:**
|
|
10
|
+
|
|
11
|
+
I built GhostAPI because AI coding agents can write and run integration code, but a base URL and a mock alone do not show reviewers whether a test touched production or exercised failure paths.
|
|
12
|
+
|
|
13
|
+
GhostAPI runs provider-shaped APIs locally, exposes deterministic controls through MCP, masks secret-shaped values, and on compatible Linux hosts can run a target in a loopback-only namespace. It can produce a sanitized evidence artifact for CI.
|
|
14
|
+
|
|
15
|
+
The first deep provider pack is Stripe-shaped local simulation. The repo includes examples for `429`, delayed responses, duplicate webhook delivery, policy checks, record/replay, and a GitHub Actions reference workflow.
|
|
16
|
+
|
|
17
|
+
Important limits: Linux enforcement requires `unshare` and `iproute2` preflight; Windows/macOS do not have equivalent process enforcement. This is not a hostile-code filesystem sandbox or a hosted service.
|
|
18
|
+
|
|
19
|
+
I am looking for teams that use coding agents on Stripe/webhook/integration code and can test one CI workflow. What failure path or review decision would make an artifact like this useful?
|
|
20
|
+
|
|
21
|
+
## Reddit
|
|
22
|
+
|
|
23
|
+
**Title:** I made a local safety/evidence layer for AI-authored API integrations. Looking for harsh feedback.
|
|
24
|
+
|
|
25
|
+
AI coding agents make it easier to create integration code, but they also make it easier to run tests that call real providers or skip retry/idempotency edge cases. GhostAPI is an OSS local runtime that simulates selected APIs, lets an agent configure deterministic failures through MCP, and creates a sanitized CI artifact.
|
|
26
|
+
|
|
27
|
+
On supported Linux hosts, `ghostapi run` uses a loopback-only namespace and fails closed if it cannot create it. On Windows/macOS it is local simulation only, not egress enforcement.
|
|
28
|
+
|
|
29
|
+
I am not claiming traction or a hosted enterprise product. I want feedback from engineers who have had to review AI-authored Stripe, webhook, email, or model-provider code: would a reproducible `429`/timeout/duplicate-delivery test plus CI evidence change your merge process? What would make it unusable?
|
|
30
|
+
|
|
31
|
+
## X / LinkedIn
|
|
32
|
+
|
|
33
|
+
AI coding agents can write integration code. The harder question is how a team proves that agent-authored tests stayed off production and exercised the failure paths that cause duplicate payments, bad retries, or unsafe webhooks.
|
|
34
|
+
|
|
35
|
+
GhostAPI is an OSS local runtime for that narrow problem: provider-shaped simulation, MCP-controlled deterministic failures, secret masking, and Linux-only fail-closed egress runs with sanitized CI evidence.
|
|
36
|
+
|
|
37
|
+
No hosted service or customer traction claims yet. I am recruiting teams willing to validate one real CI workflow around Stripe, webhooks, or other high-risk integrations.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Metrics And Evidence Boundary
|
|
2
|
+
|
|
3
|
+
Reviewed on 2026-08-09 from `SESSION_LOG.md`, the local CLI telemetry export, and repository verification records.
|
|
4
|
+
|
|
5
|
+
| Metric | Observed value | Source | Classification |
|
|
6
|
+
| --- | ---: | --- | --- |
|
|
7
|
+
| Root test suite | 225 passing; 8 Linux-only namespace tests skipped on Windows | Session 22, 2026-08-09 | Development verification, not customer traction |
|
|
8
|
+
| WSL Linux test suite | 232 passing; 1 optional test skipped | Session 22, 2026-08-09; Ubuntu WSL 2, Node.js 20.20.2, Linux filesystem copy | Development verification, not customer traction |
|
|
9
|
+
| Linux CI smoke demonstration | Safe run generated PASS evidence; direct `api.stripe.com` fixture failed inside the namespace as expected | Session 22, 2026-08-09 | Reproducible technical demo, not customer outcome |
|
|
10
|
+
| Linux enforced full suite | `ghostapi run -- npm test` completed in 48.75 seconds and generated PASS exact-run evidence | Session 22, 2026-08-09; Ubuntu WSL 2, Node.js 20.20.2 | Development verification, not a first-value benchmark or customer traction |
|
|
11
|
+
| Hosted-pilot tests | 7 passing | Session 21, 2026-08-08 | Development verification only |
|
|
12
|
+
| CI design partners | 0 | `SESSION_LOG.md` metrics table, 2026-08-04 | Observed status |
|
|
13
|
+
| Paying design partners | 0 | `SESSION_LOG.md` metrics table, 2026-08-04 | Observed status |
|
|
14
|
+
| Weekly active projects | Not measured | `SESSION_LOG.md` metrics table | Unknown |
|
|
15
|
+
| Prevented production egress attempts | Not measured | `SESSION_LOG.md` metrics table | Unknown |
|
|
16
|
+
| Confirmed bugs caught before merge | Not measured | `SESSION_LOG.md` metrics table | Unknown |
|
|
17
|
+
| Local telemetry counters | all zero; telemetry disabled | `ghostapi telemetry export --json`, 2026-08-09 | Local state; not an install/user metric |
|
|
18
|
+
| Windows local onboarding measurement | 3.03 seconds | `docs/development/onboarding-smoke.md`, 2026-08-08 | Single-host simulation measurement, not Linux enforcement or public benchmark |
|
|
19
|
+
|
|
20
|
+
## Rules For External Materials
|
|
21
|
+
|
|
22
|
+
- Label a demo as a demo. It is not a prevented incident, customer outcome, or benchmark.
|
|
23
|
+
- Label every future number as a **target** or **assumption** with a date and owner.
|
|
24
|
+
- Do not infer active users from package downloads, GitHub stars, local telemetry, workflow runs, or conversations.
|
|
25
|
+
- Do not use an old repository statement as customer proof without a dated, sanitized primary record.
|
|
26
|
+
- Do not claim an enforcement result from Windows or macOS. `ghostapi run` must succeed on a compatible Linux host, and the resulting evidence must be retained.
|
|
27
|
+
|
|
28
|
+
## Current Release Evidence
|
|
29
|
+
|
|
30
|
+
Session 22 additionally ran the full namespace suite and CI smoke workflow locally in Ubuntu WSL 2 on Node.js 20.20.2. The safe fixture produced PASS evidence with a completed Linux namespace boundary, one allowed local Stripe-shaped request, zero production attempts, no secret categories, and the required scenario. The direct `api.stripe.com` fixture failed as expected inside the loopback-only namespace. This does not substitute for the pinned GitHub Linux workflow on the exact release commit before external publication. See [release-readiness.md](../release-readiness.md).
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 12-Month Gated Roadmap
|
|
2
|
+
|
|
3
|
+
This roadmap is a decision framework, not a promise of delivery or revenue. Dates are relative to the first verified external release. Every milestone requires the listed evidence; absence of evidence blocks expansion.
|
|
4
|
+
|
|
5
|
+
| Period | Milestone | Evidence Required | Do Not Do Yet |
|
|
6
|
+
| --- | --- | --- | --- |
|
|
7
|
+
| Month 0 | Release candidate proof | Pinned GitHub Linux CI passes on the exact commit; sanitized artifact reviewed; package smoke and production dependency audit pass. | Do not call Windows local simulation an egress-enforcement result. |
|
|
8
|
+
| Months 1-2 | 20 discovery conversations | Dated, sanitized notes using the design-partner questions; clear segment/risk/buyer patterns. | Do not infer demand from downloads, stars, or polite feedback. |
|
|
9
|
+
| Months 2-3 | Five pilot decisions | Each decision has a named workflow, owner, buyer response, and privacy-safe evidence record. | Do not build self-serve billing, entitlement, or a general hosted service. |
|
|
10
|
+
| Months 3-4 | One Linux CI design-partner workflow | Weekly runs for two consecutive weeks plus a reviewed artifact or documented blocker. | Do not claim retention from installation. |
|
|
11
|
+
| Months 4-6 | One confirmed value outcome | A customer-sourced, dated record of a merge/release decision changed, prevented egress supported by evidence, or real integration defect caught before merge. | Do not publish a ROI claim before a source exists. |
|
|
12
|
+
| Months 4-6 | Close remaining local proof gaps | Automatic typed failure-plan/scenario receipts, added Stripe conformance only where a partner needs it, and Vite/Vitest audit migration in a dedicated compatibility change. | Do not widen providers just for logo coverage. |
|
|
13
|
+
| Months 6-8 | Paid-pilot decision | Signed fixed-scope pilot or explicit documented rejection after proposal; agreed success criteria and manual invoice boundary. | Do not add card collection or subscription infrastructure without a repeatable paid workflow. |
|
|
14
|
+
| Months 8-10 | Team-control-plane decision | At least two partners show the same shared evidence/policy workflow and staging operations prove hosted controls. | Do not offer the current undeployed hosted skeleton. |
|
|
15
|
+
| Months 10-12 | Product focus decision | Retention, value, and willingness-to-pay evidence support either CI/shared-evidence focus, a revised wedge, or stopping the expansion. | Do not build production-action gateway, credential broker, or broad enterprise surface without a validated workflow and stronger security model. |
|
|
16
|
+
|
|
17
|
+
## Confirmed Risks Driving This Roadmap
|
|
18
|
+
|
|
19
|
+
- Exact-release GitHub Linux CI proof is outstanding.
|
|
20
|
+
- Local Linux enforcement is verified in Ubuntu WSL 2, but the pinned GitHub workflow has not run on the exact release commit.
|
|
21
|
+
- Automatic application of eval-declared failures and scenario completion receipts is not implemented.
|
|
22
|
+
- Stripe compatibility is limited to implemented local capabilities, not live-provider parity.
|
|
23
|
+
- The hosted pilot remains undeployed; auth, migrations, queues, load, and disaster recovery are unverified.
|
|
24
|
+
- The full dependency audit retains five development-only Vite/Vitest/esbuild findings pending a separate breaking migration.
|
|
25
|
+
- No customer evidence validates the proposed paid/team wedge.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Technical Due Diligence Index
|
|
2
|
+
|
|
3
|
+
## Product Runtime
|
|
4
|
+
|
|
5
|
+
- [Root README](../../README.md): quickstart, local capabilities, platform support, and safety limits.
|
|
6
|
+
- [Usage guide](../usage.md): commands, policy, evidence, eval, record/replay, contracts, and telemetry.
|
|
7
|
+
- [Provider authoring](../providers/authoring-packs.md): provider-pack boundary and conformance model.
|
|
8
|
+
- [Stripe pack](../providers/stripe-core-pack.md): implemented Stripe-shaped capabilities and limits.
|
|
9
|
+
|
|
10
|
+
## Security
|
|
11
|
+
|
|
12
|
+
- [Security policy](../../SECURITY.md)
|
|
13
|
+
- [Egress threat model](../security/egress-threat-model.md)
|
|
14
|
+
- [Policy as code](../policy.md)
|
|
15
|
+
- [Release readiness](../release-readiness.md)
|
|
16
|
+
- [Release migration and rollback](../release-migration-and-rollback.md)
|
|
17
|
+
- [Release checklist](../release-checklist.md)
|
|
18
|
+
|
|
19
|
+
## CI And Evidence
|
|
20
|
+
|
|
21
|
+
- [GitHub Actions PR safety check](../github-actions.md)
|
|
22
|
+
- [Generic CI guide](../ci.md)
|
|
23
|
+
- [Reference workflow](../../.github/workflows/ghostapi-pr-safety.yml)
|
|
24
|
+
- [CI smoke fixture](../../examples/ci-smoke/README.md)
|
|
25
|
+
- [Agent eval example](../../examples/evals/README.md)
|
|
26
|
+
|
|
27
|
+
## Architecture And Operations
|
|
28
|
+
|
|
29
|
+
- [Team-control-plane prototype](../team-control-plane.md): local-only model and security boundaries.
|
|
30
|
+
- [Hosted pilot](../hosted-pilot.md): undeployed architecture and deployment gates.
|
|
31
|
+
- [Design-partner validation kit](../design-partners/README.md)
|
|
32
|
+
- [Commercial readiness](../commercial/README.md)
|
|
33
|
+
- [Session log](../../../SESSION_LOG.md): chronological implementation and verification history; verify against source and Git history.
|
|
34
|
+
|
|
35
|
+
## Verification Snapshot
|
|
36
|
+
|
|
37
|
+
Session 22 on 2026-08-09 passed the Windows root suite (225 passed, 8 Linux-only skips), typecheck, build, packed-package smoke, and production dependency audit. It also passed the Linux root suite in Ubuntu WSL 2 on Node.js 20.20.2 (232 passed, 1 optional skip), including the namespace egress suite and an actual safe-evidence/blocked-egress CI smoke run. The pinned GitHub Linux CI workflow still must run on the exact external release commit before publication. Full development dependency audit remains open for five Vite/Vitest/esbuild findings. See [metrics-and-evidence.md](metrics-and-evidence.md) and [release-readiness.md](../release-readiness.md).
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# YC-Style Answers
|
|
2
|
+
|
|
3
|
+
Replace every bracketed field with founder-provided, independently confirmable information. Do not submit placeholders.
|
|
4
|
+
|
|
5
|
+
| Question | Draft answer |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| What is your company going to make? | GhostAPI is safety and verification infrastructure for software built by AI agents. It starts as a local provider simulation runtime with deterministic failure controls and, on compatible Linux hosts, a fail-closed test-run boundary plus sanitized CI evidence. |
|
|
8
|
+
| What is your product? | Developers point integration code at local provider-shaped APIs, configure failures through MCP, run tests through a versioned policy, and retain a bounded evidence artifact for review. The current local product supports selected providers; Stripe is the deepest pack. |
|
|
9
|
+
| Where do you live now and where will the company be based after YC? | [Founder-provided location and intended company location.] |
|
|
10
|
+
| Why did you pick this idea? | [Founder-provided first-hand observation. Do not invent a prior incident.] The product hypothesis is that teams need evidence and failure testing for agent-authored integration code, not another generic mock server. |
|
|
11
|
+
| How far along are you? | The repository has a tested local runtime, policy/evidence/eval primitives, Stripe-shaped local workflows, a GitHub Actions reference check, and an undeployed hosted-pilot skeleton. The current evidence record has zero CI design partners and zero paying partners; no revenue or retention is claimed. |
|
|
12
|
+
| How long have you worked on this? | [Founder-provided dates and full-time/part-time status.] |
|
|
13
|
+
| Are people using it? | No validated usage claim is available as of 2026-08-09. The next goal is five paid-pilot decisions, beginning with one selected Linux CI workflow per team. |
|
|
14
|
+
| Do you have revenue? | No revenue is documented in the repository as of 2026-08-09. |
|
|
15
|
+
| Who are the competitors? | Provider test environments, WireMock, MSW, Postman, and CI-native checks each cover adjacent jobs. GhostAPI's hypothesis is that agent-native local simulation plus supported egress enforcement and evidence is a useful combined workflow. See [the competitor matrix](README.md#competitive-matrix). |
|
|
16
|
+
| How will you make money? | Keep the local OSS runtime free. Validate a fixed-scope paid pilot for protected CI workflows and retained sanitized evidence before naming a recurring price. Hosted team/enterprise controls are not currently available. |
|
|
17
|
+
| Why now? | Coding agents can create and run more integration code autonomously, increasing the need to make external side effects and failure handling reviewable. This is a timing hypothesis, not a quantified market claim. |
|
|
18
|
+
| Founder video / bios | [Founder names, roles, education, employment history, technical work, and relevant domain experience. Use only facts the founders approve.] |
|
|
19
|
+
| Equity split | [Founder-provided current split and rationale.] |
|
|
20
|
+
| Have you incorporated? | [Founder-provided jurisdiction, entity type, incorporation date, or "not incorporated".] |
|
|
21
|
+
| Fundraising | [Founder-provided prior funding, current raise, runway, and investor names if disclosure is appropriate.] |
|
|
22
|
+
|
|
23
|
+
## One-Minute Spoken Pitch
|
|
24
|
+
|
|
25
|
+
AI agents now write and run code that touches payments, email, GitHub, and model APIs. Teams can point SDKs at a mock, but that does not prove an agent did not create another client, call a direct IP, or skip the timeout and duplicate-delivery cases that break integrations. GhostAPI creates a local provider-shaped test world, lets the agent configure deterministic failures, and on supported Linux runs the test with loopback only. CI keeps a sanitized artifact from that exact run. We are early: the code exists, but we have no validated customers or revenue. We are looking for design partners whose merge process would change if they could prove this for one high-risk workflow.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# GitHub Actions PR Safety Check
|
|
2
|
+
|
|
3
|
+
GhostAPI can make a pull request check fail when its enforced integration run or policy evidence fails. The status check and sanitized JSON artifact are the audit record; a pull request comment is optional convenience output only.
|
|
4
|
+
|
|
5
|
+
The repository workflow at [`.github/workflows/ghostapi-pr-safety.yml`](../.github/workflows/ghostapi-pr-safety.yml) is a working reference. It packs the checked-out GhostAPI source, verifies that its package version exactly matches `GHOSTAPI_VERSION`, then installs that exact version before running the smoke fixture. For a consuming repository, install the published package at an exact version instead:
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
env:
|
|
9
|
+
GHOSTAPI_VERSION: "0.1.8"
|
|
10
|
+
|
|
11
|
+
- name: Install pinned GhostAPI
|
|
12
|
+
run: npm install --global "@yiaany/ghostapi@$GHOSTAPI_VERSION"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Update the version only as part of a reviewed GhostAPI upgrade. Keep third-party Actions pinned to full commit SHAs, not mutable tags.
|
|
16
|
+
|
|
17
|
+
## Required Job Shape
|
|
18
|
+
|
|
19
|
+
Run the project command through enforcement, then generate evidence from that exact run:
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
- name: Run integration tests through enforcement
|
|
23
|
+
id: run
|
|
24
|
+
continue-on-error: true
|
|
25
|
+
run: |
|
|
26
|
+
ghostapi run --policy ghostapi.policy.yaml -- npm test
|
|
27
|
+
evidence_path="$(find "$GHOSTAPI_DATA_DIR/runs" -mindepth 2 -maxdepth 2 -name run.json -type f -print | head -n 1)"
|
|
28
|
+
test -n "$evidence_path"
|
|
29
|
+
echo "evidence_path=$evidence_path" >> "$GITHUB_OUTPUT"
|
|
30
|
+
|
|
31
|
+
- name: Generate evidence
|
|
32
|
+
id: evidence
|
|
33
|
+
if: ${{ always() }}
|
|
34
|
+
continue-on-error: true
|
|
35
|
+
run: |
|
|
36
|
+
if [ -n "${{ steps.run.outputs.evidence_path }}" ]; then
|
|
37
|
+
ghostapi evidence generate --policy ghostapi.policy.yaml --run "${{ steps.run.outputs.evidence_path }}" --out "$RUNNER_TEMP/ghostapi-evidence/report.json" --ci
|
|
38
|
+
else
|
|
39
|
+
ghostapi evidence generate --policy ghostapi.policy.yaml --out "$RUNNER_TEMP/ghostapi-evidence/report.json" --ci
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
- name: Upload evidence even on a policy failure
|
|
43
|
+
if: ${{ always() }}
|
|
44
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
45
|
+
with:
|
|
46
|
+
name: ghostapi-evidence-${{ github.run_id }}-${{ github.run_attempt }}
|
|
47
|
+
path: ${{ runner.temp }}/ghostapi-evidence/report.json
|
|
48
|
+
if-no-files-found: error
|
|
49
|
+
retention-days: 14
|
|
50
|
+
|
|
51
|
+
- name: Fail the check from the policy result
|
|
52
|
+
if: ${{ always() }}
|
|
53
|
+
run: |
|
|
54
|
+
test "${{ steps.run.outcome }}" = success
|
|
55
|
+
test "${{ steps.evidence.outcome }}" = success
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Set `GHOSTAPI_DATA_DIR` to a runner-temp directory. `--run` is important: it makes evidence read the isolated run's event log rather than unrelated workspace events. If the launcher failed before creating its run receipt, omit `--run` so GhostAPI still emits a failure artifact with explicit incomplete-evidence warnings. The artifact is sanitized by GhostAPI and contains summaries, categories, counts, and redacted paths rather than raw authorization headers, cookies, request bodies, commands, or policy contents.
|
|
59
|
+
|
|
60
|
+
`ghostapi run` currently requires a Linux host that passes its user, mount, network, and PID namespace preflight. It fails closed on unavailable platforms or hosts; do not replace it with a proxy-only fallback and call the result enforced.
|
|
61
|
+
|
|
62
|
+
## Permissions And Comments
|
|
63
|
+
|
|
64
|
+
The safety job uses only:
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
permissions:
|
|
68
|
+
contents: read
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The optional comment job is separate, has only `pull-requests: write`, does not check out or run pull request code, and runs only when the pull request head repository equals the base repository. It finds a bot-owned marker comment and updates it, preventing comment spam. The comment contains only the job result and directs reviewers to the check and artifact.
|
|
72
|
+
|
|
73
|
+
Do not use `pull_request_target` to run GhostAPI or project commands from a pull request. For fork pull requests, use the ordinary `pull_request` event, keep the default read-only token, pass no secrets, and skip comment mutation entirely. GitHub does not provide repository secrets to fork-triggered `pull_request` runs, and its `GITHUB_TOKEN` is read-only there. A maintainer must not move the write token into a job that executes untrusted checkout content.
|
|
74
|
+
|
|
75
|
+
Configure branch protection (or a ruleset) to require the `Enforced safety check` status check. The workflow also listens to `merge_group` so repositories using GitHub's merge queue receive the required result.
|
|
76
|
+
|
|
77
|
+
## Included Smoke Fixture
|
|
78
|
+
|
|
79
|
+
[`examples/ci-smoke`](../examples/ci-smoke) demonstrates both outcomes on a compatible Linux runner:
|
|
80
|
+
|
|
81
|
+
- `test:safe` sends a synthetic Stripe-shaped request to the namespace-local GhostAPI endpoint and completes the `ci.safe_ghostapi` policy scenario.
|
|
82
|
+
- `test:production-egress` attempts a direct connection to `api.stripe.com`; the loopback-only namespace must make that target command fail.
|
|
83
|
+
|
|
84
|
+
The reference workflow treats the expected unsafe-fixture failure as a successful regression test, then generates the report only from the successful safe run.
|