@yiaany/ghostapi 0.1.7 → 0.1.8
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 -185
- 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 +36 -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/docs/assets/ghostapi-avatar.png +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worlds.js","sourceRoot":"","sources":["../../src/worlds/worlds.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/docs/ci.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Generic CI Guide
|
|
2
|
+
|
|
3
|
+
GhostAPI CI is a four-stage contract: run the project through enforcement, generate a sanitized artifact from that exact run, upload the artifact regardless of policy outcome, and fail the job from the final policy result.
|
|
4
|
+
|
|
5
|
+
This currently requires a Linux executor that permits GhostAPI's user, mount, network, and PID namespace preflight. Unsupported hosts fail closed. Do not treat SDK base-URL configuration, an HTTP proxy, or a failed preflight as equivalent enforcement.
|
|
6
|
+
|
|
7
|
+
## Minimal Script
|
|
8
|
+
|
|
9
|
+
Set `GHOSTAPI_DATA_DIR` to an ephemeral CI directory and use one immutable GhostAPI package version per CI configuration:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
set -u
|
|
13
|
+
|
|
14
|
+
export GHOSTAPI_DATA_DIR="$CI_WORKSPACE/.ghostapi-ci"
|
|
15
|
+
export GHOSTAPI_VERSION="0.1.8"
|
|
16
|
+
npm install --global "@yiaany/ghostapi@$GHOSTAPI_VERSION"
|
|
17
|
+
|
|
18
|
+
run_status=0
|
|
19
|
+
ghostapi run --policy ghostapi.policy.yaml -- npm test || run_status=$?
|
|
20
|
+
|
|
21
|
+
run_path="$(find "$GHOSTAPI_DATA_DIR/runs" -mindepth 2 -maxdepth 2 -name run.json -type f -print | head -n 1)"
|
|
22
|
+
evidence_status=0
|
|
23
|
+
if [ -n "$run_path" ]; then
|
|
24
|
+
ghostapi evidence generate --policy ghostapi.policy.yaml --run "$run_path" --out "$CI_WORKSPACE/ghostapi-evidence.json" --ci || evidence_status=$?
|
|
25
|
+
else
|
|
26
|
+
ghostapi evidence generate --policy ghostapi.policy.yaml --out "$CI_WORKSPACE/ghostapi-evidence.json" --ci || evidence_status=$?
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# Always upload ghostapi-evidence.json if it exists. It is the evidence record, not CI logs.
|
|
30
|
+
test "$run_status" -eq 0
|
|
31
|
+
test "$evidence_status" -eq 0
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Replace `npm test` with the integration command for the project. Keep the policy file in source control and run the same command locally before opening a pull request:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
GHOSTAPI_DATA_DIR="$(mktemp -d)" ghostapi run --policy ghostapi.policy.yaml -- npm test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The report writes a canonical JSON artifact with a logical hash. Use `ghostapi evidence view ghostapi-evidence.json` for a concise terminal summary and `ghostapi evidence compare` when comparing known-good reports. Do not upload raw request logs or runtime directories: they are not the CI evidence contract and may contain more information than the sanitized report.
|
|
41
|
+
|
|
42
|
+
## CI Safety Requirements
|
|
43
|
+
|
|
44
|
+
- Pin the GhostAPI package to an exact reviewed version and pin third-party CI plugins to immutable identifiers when the platform supports them.
|
|
45
|
+
- Give the test job the smallest read-only repository permission possible.
|
|
46
|
+
- Keep provider credentials out of the job; the safe fixture and local runtime use fake values only.
|
|
47
|
+
- Upload the sanitized evidence in an always-run collection step, then decide the final job result after upload.
|
|
48
|
+
- Treat a comment, chat notification, or dashboard summary as a pointer only. The check result and retained artifact are the audit record.
|
|
49
|
+
- Run any write-capable notification or API mutation in a separate job that does not execute untrusted contribution code.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Commercial Readiness
|
|
2
|
+
|
|
3
|
+
This directory prepares GhostAPI for evidence-led commercial conversations. It does not enable billing, subscriptions, entitlements, cloud telemetry, or a hosted service.
|
|
4
|
+
|
|
5
|
+
## Current Gate: Closed
|
|
6
|
+
|
|
7
|
+
As of August 8, 2026, the repository has no dated, sanitized evidence of a paid pilot, LOI, weekly design-partner CI run, or confirmed customer outcome. The hosted service is an undeployed pilot skeleton. See the [design-partner validation kit](../design-partners/README.md).
|
|
8
|
+
|
|
9
|
+
Do not add Stripe Billing, checkout, card collection, subscription state, server-side entitlements, or a paywall until the gate is met and a concrete paid workflow is selected. The OSS local runtime remains free and fully usable.
|
|
10
|
+
|
|
11
|
+
## Materials
|
|
12
|
+
|
|
13
|
+
- [Pricing page copy and experiment](pricing.md)
|
|
14
|
+
- [Manual pilot invoicing workflow](manual-invoicing.md)
|
|
15
|
+
- [Commercial metrics plan](metrics.md)
|
|
16
|
+
- [Privacy policy draft for counsel](privacy-policy-draft.md)
|
|
17
|
+
- [Terms topics for counsel](terms-topics-for-counsel.md)
|
|
18
|
+
- [Data inventory draft](data-inventory.md)
|
|
19
|
+
|
|
20
|
+
## Evidence Needed To Reopen The Gate
|
|
21
|
+
|
|
22
|
+
Record a dated, sanitized primary source outside the public repository for at least one of these:
|
|
23
|
+
|
|
24
|
+
- Three teams using GhostAPI weekly.
|
|
25
|
+
- One design partner running GhostAPI in CI.
|
|
26
|
+
- One confirmed bug caught before merge or production-egress attempt prevented by supported evidence.
|
|
27
|
+
- One paid-pilot decision or specific LOI.
|
|
28
|
+
|
|
29
|
+
Use the existing [pricing interview script](../design-partners/pricing-interview-script.md) and pilot criteria. A positive reaction, demo, or documentation change is not evidence of willingness to pay.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Draft Data Inventory For Legal Review
|
|
2
|
+
|
|
3
|
+
> **Draft only.** This inventory describes observed local-product behavior and proposed commercial categories as of August 8, 2026. It must be validated by engineering, operations, and qualified counsel before any hosted or paid service launches.
|
|
4
|
+
|
|
5
|
+
## Current Local Runtime
|
|
6
|
+
|
|
7
|
+
| Data category | Purpose | Location | Default sharing | Retention boundary |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| Local simulation state, scenarios, and contracts | Run deterministic local provider simulations and replays. | Operator-controlled `.ghostapi/` data directory. | None by GhostAPI. | Local files; documented bounded stores apply where implemented. |
|
|
10
|
+
| Local events and evidence reports | Inspect local requests and generate sanitized CI evidence. | Operator-controlled `.ghostapi/` data directory. | None by GhostAPI. | Events/reports have documented local size/count retention. |
|
|
11
|
+
| Local dashboard/MCP inputs | Display and control the operator's local runtime. | Process memory and operator-controlled local files where applicable. | None by GhostAPI. | Controlled by process lifetime and local retention behavior. |
|
|
12
|
+
| Optional local telemetry aggregate | Measure local activation/recurrence only after explicit opt-in. | `.ghostapi/product-telemetry.json`. | No upload path. | Deleted by `ghostapi telemetry disable`; bounded while enabled. |
|
|
13
|
+
|
|
14
|
+
The local tool can process data supplied by the operator, including values that may be sensitive. Secret masking and sanitization reduce exposure but are not a guarantee of complete redaction. Operators should not direct live production traffic or credentials to GhostAPI.
|
|
15
|
+
|
|
16
|
+
## Proposed Pilot And Commercial Records
|
|
17
|
+
|
|
18
|
+
| Data category | Purpose | Proposed storage boundary | Prohibited content |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| Business contact and contracting details | Execute a signed pilot and communicate operationally. | Approved business/contract system, separate from product data. | Source code, traffic, credentials, payment-card data. |
|
|
21
|
+
| Invoice/payment-status metadata | Issue and reconcile a fixed pilot invoice. | Approved accounting/invoicing system. | Card number, CVC, bank-login credentials, raw payment instrument data. |
|
|
22
|
+
| Sanitized pilot outcome summary | Measure agreed success criteria and close out the pilot. | Access-controlled commercial record. | Raw evidence, logs, requests, prompts, end-user data, secrets. |
|
|
23
|
+
| Opaque commercial metrics | Track counted outcomes and signed/collected pilot value. | Access-controlled private ledger. | Names, emails, repository/provider names, raw invoice data, telemetry identifiers. |
|
|
24
|
+
|
|
25
|
+
## Proposed Hosted Pilot Data
|
|
26
|
+
|
|
27
|
+
The hosted architecture is not deployed. If it is launched after the design-partner gate is met, update this inventory with actual collection, schema, processor, deployment region, access controls, retention, backups, deletion/export mechanics, and incident-response evidence before onboarding a customer.
|
|
28
|
+
|
|
29
|
+
The architecture currently proposes bounded sanitized CI report payloads, immutable scenario versions, organization/membership metadata, scoped ingest-key digests, idempotency records, job receipts, and audit metadata. It must not accept raw credentials, authorization headers, cookies, raw traffic, source code, or payment data.
|
|
30
|
+
|
|
31
|
+
## Access And Review
|
|
32
|
+
|
|
33
|
+
- Local files are controlled by the operator's local filesystem permissions and data directory.
|
|
34
|
+
- Commercial records require least-privilege finance/legal access and a documented retention review date.
|
|
35
|
+
- Any future hosted roles, tenant isolation, backups, exports, and processors require implementation evidence and counsel review before claims are made.
|
|
36
|
+
- Review this inventory after every new collection path, telemetry proposal, processor, billing system, provider integration, or retention change.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Manual Paid-Pilot Invoicing Workflow
|
|
2
|
+
|
|
3
|
+
## Purpose And Boundary
|
|
4
|
+
|
|
5
|
+
This is the only commercial collection path while GhostAPI's commercial gate is closed. It is a human-operated workflow for a signed, fixed-scope paid pilot. It does not create a checkout, subscription, payment portal, entitlement service, or card-data handling path.
|
|
6
|
+
|
|
7
|
+
The OSS local runtime remains available regardless of invoice state. Do not disable, delete, or alter a partner's local data because a pilot expires, is cancelled, or has an overdue invoice.
|
|
8
|
+
|
|
9
|
+
## Preconditions
|
|
10
|
+
|
|
11
|
+
Do not issue an invoice until all of the following exist:
|
|
12
|
+
|
|
13
|
+
1. A dated, sanitized evidence signal supports a paid-pilot discussion.
|
|
14
|
+
2. A written pilot proposal identifies the customer legal entity, scope, fixed fee, currency, tax treatment, payment terms, pilot dates, support boundary, success criteria, and cancellation/termination terms.
|
|
15
|
+
3. The legal and tax treatment has been reviewed for the seller and customer jurisdictions.
|
|
16
|
+
4. A customer billing contact and purchase-order requirements are confirmed through an approved business channel.
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
1. **Qualify:** Confirm the selected repository/workflow, buyer, measurable success criteria, and security boundary. Never request production credentials, raw traffic, source code, or personal data that is not needed for the commercial relationship.
|
|
21
|
+
2. **Approve proposal:** Obtain an executed order form, statement of work, or equivalent written acceptance before delivery beyond the agreed evaluation scope.
|
|
22
|
+
3. **Create invoice:** Use an approved accounting or invoicing system. Record only the business information required by that system and applicable law. Do not use GhostAPI local state, traffic logs, evidence artifacts, or source repositories as an invoicing system.
|
|
23
|
+
4. **Deliver payment instructions:** Send the invoice through the approved business channel. If the invoicing system offers card payment, the processor must host the payment collection page; GhostAPI must not receive card data.
|
|
24
|
+
5. **Record status:** In a private commercial ledger, store only an opaque pilot ID, invoice ID, amount/currency, issue/due/paid dates, status, and a link to the signed commercial record. Restrict access to authorized finance operators.
|
|
25
|
+
6. **Handle payment state:** Send a straightforward reminder after the stated due date. Pause only optional hosted or human support that the signed agreement explicitly makes conditional on payment. Preserve local OSS access and customer data.
|
|
26
|
+
7. **Close out:** Send the agreed evidence summary, record the buyer decision, and delete or retain commercial records only under the reviewed retention schedule.
|
|
27
|
+
|
|
28
|
+
## Cancellation And Failed Payment
|
|
29
|
+
|
|
30
|
+
- Provide the cancellation contact and effective date in the written pilot terms. Do not use a dark pattern or require an impossible support path.
|
|
31
|
+
- A disputed, failed, or overdue payment is a finance process, not a reason to erase evidence or local data.
|
|
32
|
+
- Never retry a payment through GhostAPI. The accounting provider handles payment retry rules and payment data.
|
|
33
|
+
- If a future hosted service is involved, establish a documented read/export and retention path before any access restriction. Do not promise automatic deletion or restoration without a tested implementation.
|
|
34
|
+
|
|
35
|
+
## Records And Privacy
|
|
36
|
+
|
|
37
|
+
- Keep commercial records outside the public repository and separate from product telemetry.
|
|
38
|
+
- Use an opaque pilot ID in metrics; do not include contact names, email addresses, repository names, provider names, source code, traffic, credentials, or raw evidence.
|
|
39
|
+
- Do not put invoice numbers, addresses, banking details, tax identifiers, purchase orders, or payment links in `SESSION_LOG.md`, issue templates, product telemetry, or test fixtures.
|
|
40
|
+
- The [data inventory draft](data-inventory.md) and [privacy policy draft](privacy-policy-draft.md) require legal review before any commercial use.
|
|
41
|
+
|
|
42
|
+
## Transition To Billing
|
|
43
|
+
|
|
44
|
+
Move beyond this workflow only after the gate is met and the team has selected a billing provider, jurisdictional approach, entitlement contract, webhook/idempotency model, cancellation behavior, payment-failure policy, data-retention policy, and incident/reconciliation runbook. Implement and test those controls before accepting self-serve payment.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Commercial Metrics Plan
|
|
2
|
+
|
|
3
|
+
## Boundary
|
|
4
|
+
|
|
5
|
+
No new product telemetry is introduced by this plan. The implemented `ghostapi telemetry` feature remains local-only, disabled by default, aggregate-only, and has no upload path. See the [telemetry plan](../design-partners/telemetry-plan.md).
|
|
6
|
+
|
|
7
|
+
This document defines a private, manual founder ledger for decision-making once a prospect or pilot explicitly shares a sanitized signal. It is not a customer analytics system.
|
|
8
|
+
|
|
9
|
+
## Metrics That Matter
|
|
10
|
+
|
|
11
|
+
| Metric | Definition | Source | Privacy Rule |
|
|
12
|
+
| --- | --- | --- | --- |
|
|
13
|
+
| Weekly active teams | Teams with a consented, dated indication of meaningful local or CI use during a calendar week. | Sanitized partner confirmation or approved aggregate. | Store only opaque team ID, week, and source reference. |
|
|
14
|
+
| Weekly protected CI workflows | Distinct selected workflows producing supported GhostAPI evidence in a week. | Sanitized partner-provided count. | No repository names, job names, payloads, or workflow logs. |
|
|
15
|
+
| Confirmed outcomes | Bugs caught before merge or supported production-egress attempts prevented. | Sanitized closeout or evidence reference. | Store category/date/reference, never raw traffic or secrets. |
|
|
16
|
+
| Paid-pilot decisions | Explicit `signed`, `declined`, `deferred`, or `OSS-only` decision. | Buyer decision record. | Store opaque account ID, date, and outcome. |
|
|
17
|
+
| Booked pilot value | Contracted fixed pilot fees, excluding unapproved pipeline estimates. | Executed commercial record. | Store amount, currency, period, and opaque pilot ID only. |
|
|
18
|
+
| Cash collected | Payments received for signed pilots. | Finance record. | Store invoice ID, amount/currency, date, and opaque pilot ID only. |
|
|
19
|
+
| Pilot conversion | Signed paid pilots divided by proposals issued in a defined period. | Commercial ledger. | Count-only reporting. |
|
|
20
|
+
|
|
21
|
+
## Deliberately Excluded Metrics
|
|
22
|
+
|
|
23
|
+
- Individual users, seats, source repositories, provider names, commands, traffic, code, prompts, agent content, credential data, customer end-user data, payment-card data, and raw invoice details.
|
|
24
|
+
- Auto-collected funnel metrics, cross-device identifiers, session replay, behavioral profiling, and unconsented product analytics.
|
|
25
|
+
- Pipeline dollar values presented as revenue, projected ROI, or unverified savings.
|
|
26
|
+
|
|
27
|
+
## Minimal Private Ledger Schema
|
|
28
|
+
|
|
29
|
+
Maintain this outside the repository with least-privilege access:
|
|
30
|
+
|
|
31
|
+
| Field | Rule |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| `account_id` | Random opaque identifier; never an email, company name, or repository name. |
|
|
34
|
+
| `week_or_date` | ISO week or ISO date needed for the metric. |
|
|
35
|
+
| `signal_type` | Allowlisted metric name from this document. |
|
|
36
|
+
| `outcome` | Allowlisted value such as `signed`, `declined`, `deferred`, or `confirmed_bug_caught`. |
|
|
37
|
+
| `amount` and `currency` | Present only for signed invoices or received payments. |
|
|
38
|
+
| `source_reference` | Internal sanitized note or commercial-record reference, not raw content. |
|
|
39
|
+
| `retention_review_date` | Date on which the record is reviewed under legal/privacy requirements. |
|
|
40
|
+
|
|
41
|
+
## Reporting Rules
|
|
42
|
+
|
|
43
|
+
1. Report counts and signed/collected amounts separately.
|
|
44
|
+
2. Label every metric as observed, target, or hypothesis.
|
|
45
|
+
3. Do not report a retention, conversion, or ROI figure without its denominator and a dated source period.
|
|
46
|
+
4. Do not treat an OSS download, demo, installation, or polite pricing response as a paying-customer signal.
|
|
47
|
+
5. Reconcile booked value and cash collected with the approved finance system before any board, investor, or public statement.
|
|
48
|
+
|
|
49
|
+
## Review Trigger
|
|
50
|
+
|
|
51
|
+
Revisit the metric design only if a design partner explicitly requests hosted reporting or a validated paid workflow requires it. Any networked or account-level telemetry needs a new opt-in, schema, data-retention decision, threat model, and legal review.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# GhostAPI Pricing Page Copy And Experiment
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
This is draft website copy for customer discovery. It is not a price list, offer, order form, or statement that a hosted service is available. GhostAPI has no self-serve billing, checkout, subscriptions, or card collection today.
|
|
6
|
+
|
|
7
|
+
## Page Copy
|
|
8
|
+
|
|
9
|
+
### Headline
|
|
10
|
+
|
|
11
|
+
Keep local integration testing free. Pay only for proven team controls when the workflow is ready.
|
|
12
|
+
|
|
13
|
+
### Subheadline
|
|
14
|
+
|
|
15
|
+
GhostAPI OSS Local remains a local-first MIT-licensed runtime for provider-shaped simulation, scenarios, MCP control, and safety evidence. Team and Enterprise are proposed paths for organizations that validate a recurring need for shared CI evidence and controlled workflows.
|
|
16
|
+
|
|
17
|
+
### OSS Local
|
|
18
|
+
|
|
19
|
+
**Available now. Free and open source.**
|
|
20
|
+
|
|
21
|
+
- Local runtime, CLI, MCP server, dashboard, local scenarios, provider packs, deterministic evals, and evidence generation.
|
|
22
|
+
- No account, cloud connection, card, or artificial safety limitation.
|
|
23
|
+
- Runs locally; Windows and macOS do not receive a claim of process egress enforcement equivalent to supported Linux namespace runs.
|
|
24
|
+
|
|
25
|
+
### Team
|
|
26
|
+
|
|
27
|
+
**Design-partner proposal, not yet generally available.**
|
|
28
|
+
|
|
29
|
+
For a team that has demonstrated recurring CI evidence or shared-scenario needs, a paid pilot may include a fixed, written scope for:
|
|
30
|
+
|
|
31
|
+
- One or more protected repositories or CI workflows.
|
|
32
|
+
- Shared scenario and policy review workflow.
|
|
33
|
+
- Retained, sanitized CI evidence and closeout reporting.
|
|
34
|
+
- Named pilot support and agreed success criteria.
|
|
35
|
+
|
|
36
|
+
The current hosted implementation is an undeployed pilot architecture, not a generally available Team service. There is no self-serve signup, subscription, SLA, or entitlement claim.
|
|
37
|
+
|
|
38
|
+
### Enterprise
|
|
39
|
+
|
|
40
|
+
**Discovery only. Not available for purchase.**
|
|
41
|
+
|
|
42
|
+
Potential future scope may include enforced egress controls, identity and role controls, audit evidence, private deployment, retention requirements, and custom provider work. These capabilities require a validated workflow, a deployable control plane, security review, and written commercial terms before they can be offered.
|
|
43
|
+
|
|
44
|
+
### Call To Action
|
|
45
|
+
|
|
46
|
+
If your team runs AI-assisted integration code in CI and needs proof that a selected workflow avoided production, request a design-partner conversation. Start with one repository, one risk, and one measurable outcome.
|
|
47
|
+
|
|
48
|
+
## FAQ Copy
|
|
49
|
+
|
|
50
|
+
### Is GhostAPI free?
|
|
51
|
+
|
|
52
|
+
The OSS Local runtime is free and MIT licensed. It is not restricted to force an upgrade.
|
|
53
|
+
|
|
54
|
+
### Can I buy a Team plan today?
|
|
55
|
+
|
|
56
|
+
No. Team is a proposed design-partner path, not a self-serve product. A paid pilot is considered only after a concrete workflow, buyer value, and written success criteria are validated.
|
|
57
|
+
|
|
58
|
+
### Do you charge by seats?
|
|
59
|
+
|
|
60
|
+
Not currently. Seats are not the proposed primary value unit. The experiment tests value tied to protected workflows and retained evidence, not dashboard access.
|
|
61
|
+
|
|
62
|
+
### Which usage dimensions are being tested?
|
|
63
|
+
|
|
64
|
+
Only dimensions linked to delivered value or a direct operating cost are candidates:
|
|
65
|
+
|
|
66
|
+
| Candidate dimension | Why it maps to value | Current status |
|
|
67
|
+
| --- | --- | --- |
|
|
68
|
+
| Protected CI workflows or repositories | Defines the workflows receiving evidence and policy review. | Discovery only. |
|
|
69
|
+
| Retained sanitized evidence | Maps to storage and audit/review utility. | Discovery only. |
|
|
70
|
+
| Connected provider accounts | Relevant only if a future control plane manages distinct provider boundaries. | Discovery only. |
|
|
71
|
+
| Production action executions | Relevant only after a safe production-action gateway exists. | Not implemented or offered. |
|
|
72
|
+
|
|
73
|
+
There are no quotas, overages, usage meters, or feature gates today.
|
|
74
|
+
|
|
75
|
+
### Will GhostAPI process card data?
|
|
76
|
+
|
|
77
|
+
No. Any future online billing provider must collect card data directly. GhostAPI must never receive, store, or log card numbers, CVCs, or payment credentials.
|
|
78
|
+
|
|
79
|
+
### What happens if a paid pilot ends or payment fails?
|
|
80
|
+
|
|
81
|
+
The contractual workflow must preserve the partner's local OSS runtime and data. Any future hosted access change must be explicit, reversible where possible, and must not delete customer data because of non-payment.
|
|
82
|
+
|
|
83
|
+
## Pricing Experiment
|
|
84
|
+
|
|
85
|
+
### Hypothesis
|
|
86
|
+
|
|
87
|
+
A buyer will fund a time-bounded pilot only when GhostAPI changes a real release, security, or integration decision through repeatable CI evidence. Local simulation alone is not assumed to justify payment.
|
|
88
|
+
|
|
89
|
+
### Unit To Test
|
|
90
|
+
|
|
91
|
+
Offer one fixed-scope pilot, rather than a subscription. Scope is defined by protected workflow(s), agreed evidence retention, and success criteria. Do not quote a recurring price or usage rate before an interview establishes the buyer's value unit and procurement path.
|
|
92
|
+
|
|
93
|
+
### Interview And Quote Sequence
|
|
94
|
+
|
|
95
|
+
1. Use the [pricing interview script](../design-partners/pricing-interview-script.md) after a concrete workflow is understood.
|
|
96
|
+
2. Record a dated, sanitized answer in a private founder ledger: buyer role, value unit, budget signal, decision path, and result.
|
|
97
|
+
3. If the buyer requests a proposal, issue a written pilot scope with a fixed fee, start/end date, success criteria, support boundary, invoice schedule, and closeout decision.
|
|
98
|
+
4. Treat `no budget`, `OSS only`, and `needs evidence first` as valid outcomes. Do not convert interest into a false pricing signal.
|
|
99
|
+
5. Review at least three comparable signals before proposing a public Team price or adding billing software.
|
|
100
|
+
|
|
101
|
+
### Decision Rule
|
|
102
|
+
|
|
103
|
+
Keep manual invoicing and do not build billing unless a signed paid pilot requires a repeatable paid service. Only then select a billing provider and design server-side entitlement checks around the validated paid workflow.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Draft Privacy Policy For Legal Review
|
|
2
|
+
|
|
3
|
+
> **Draft only. Not legal advice and not an operative privacy policy.** This document describes the current GhostAPI local-product behavior and proposed commercial boundaries as of August 8, 2026. Qualified counsel must review and replace it before any hosted service, paid pilot, public collection form, or commercial launch.
|
|
4
|
+
|
|
5
|
+
## Scope
|
|
6
|
+
|
|
7
|
+
GhostAPI is an open-source local developer tool. The published local runtime does not require an account and does not send product traffic, source code, prompts, secrets, or telemetry to GhostAPI by default.
|
|
8
|
+
|
|
9
|
+
The `hosted/` directory is an undeployed pilot architecture, not an operating service. This draft does not represent that a hosted service is currently collecting data.
|
|
10
|
+
|
|
11
|
+
## Current Local Processing
|
|
12
|
+
|
|
13
|
+
The local runtime processes the API requests that an operator directs to `127.0.0.1` or another configured local bind address. It stores local simulation state, bounded events, scenarios, reports, and other files described in the project documentation. These files remain under the operator's configured local data directory unless the operator independently exports or shares them.
|
|
14
|
+
|
|
15
|
+
The local runtime may mask secret-looking values before local logs, cache, dashboard, events, and prompts, but automatic sanitization is not a guarantee that every sensitive value is removed. Operators must review artifacts before sharing them.
|
|
16
|
+
|
|
17
|
+
## Optional Local Telemetry
|
|
18
|
+
|
|
19
|
+
Product telemetry is disabled by default. If an operator runs `ghostapi telemetry enable`, the implementation records only a bounded local aggregate of four counters and activity weeks. It has no network transport, automatic upload, background process, account identifier, repository identifier, provider name, command capture, source code, traffic, prompt, credential, or personal-data field. `ghostapi telemetry disable` deletes that local aggregate.
|
|
20
|
+
|
|
21
|
+
## Proposed Commercial And Pilot Data
|
|
22
|
+
|
|
23
|
+
Before a paid pilot, the parties should collect only the business information necessary for contracting, invoicing, support, and agreed pilot reporting. Possible categories include business contact details, contracting entity details, invoice and payment status metadata, and a customer-approved sanitized outcome summary.
|
|
24
|
+
|
|
25
|
+
GhostAPI should not request or retain production credentials, payment-card data, raw provider traffic, source code, prompts, customer end-user data, or full evidence payloads for sales, invoicing, or metrics. Any approved accounting provider must collect payment-card information directly.
|
|
26
|
+
|
|
27
|
+
## Sharing
|
|
28
|
+
|
|
29
|
+
The current local runtime has no GhostAPI-operated telemetry endpoint. A future commercial service must document each processor, purpose, legal basis, transfer location, retention term, and security measure before launch. It must not share data for advertising, sell personal information, or train external models on customer code, traffic, prompts, or secrets without separate, explicit authorization and a reviewed agreement.
|
|
30
|
+
|
|
31
|
+
## Retention And Deletion
|
|
32
|
+
|
|
33
|
+
The local runtime follows its documented bounded local retention behavior. Commercial records and any future hosted data need jurisdiction-specific retention schedules, deletion/export processes, backup treatment, and legal-hold exceptions approved by counsel before collection. Do not promise a deletion period until those controls are implemented and verified.
|
|
34
|
+
|
|
35
|
+
## Rights And Contact
|
|
36
|
+
|
|
37
|
+
Before an operative policy is published, establish a legal/privacy contact, request-verification process, response timelines, and region-specific disclosures. This repository intentionally does not invent a legal entity, address, contact email, or jurisdiction.
|
|
38
|
+
|
|
39
|
+
## Required Counsel Review
|
|
40
|
+
|
|
41
|
+
Counsel should determine, at minimum: controller/processor roles, applicable privacy laws, lawful bases, notice/consent, data-processing agreements, cross-border transfers, subprocessors, security disclosures, retention, data-subject rights, children's data, marketing rules, breach notification, records of processing, and the relationship between the open-source license and any commercial terms.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Terms Topics For Legal Review
|
|
2
|
+
|
|
3
|
+
> **Discussion checklist only. Not terms of service, a contract, legal advice, or an offer.** Counsel must prepare and approve operative documents before GhostAPI accepts a paid pilot, processes personal data, or operates a hosted service.
|
|
4
|
+
|
|
5
|
+
## Product And License Boundary
|
|
6
|
+
|
|
7
|
+
- Distinguish the MIT-licensed OSS Local runtime from any separately contracted pilot or hosted offering.
|
|
8
|
+
- State that local use does not require a paid plan and that no OSS safety capability is artificially withheld for payment.
|
|
9
|
+
- Define the pilot deliverables, support hours, implementation assistance, accepted use, documentation, and change-control process.
|
|
10
|
+
- Avoid claims that GhostAPI provides complete host isolation, provider parity, compliance certification, or prevention of every production action.
|
|
11
|
+
|
|
12
|
+
## Commercial Terms
|
|
13
|
+
|
|
14
|
+
- Legal entity names, authority to contract, order of precedence, pilot period, fixed fees, currency, taxes, invoice terms, purchase orders, late-payment handling, cancellation, suspension, refunds, and renewal/closeout decisions.
|
|
15
|
+
- No payment-card collection by GhostAPI. A payment processor, if later selected, must handle card data directly.
|
|
16
|
+
- The effect of non-payment must preserve local OSS access and must not destroy customer data.
|
|
17
|
+
- State whether support is best-effort pilot support or subject to a separately negotiated SLA; do not imply an SLA without one.
|
|
18
|
+
|
|
19
|
+
## Data, Security, And Privacy
|
|
20
|
+
|
|
21
|
+
- Data roles, data categories, permitted purposes, confidentiality, security measures, subprocessor process, data location, cross-border transfers, retention, export/deletion, backup/legal hold, incident notification, and audit rights.
|
|
22
|
+
- Explicit prohibition on customer production credentials, raw traffic, source code, prompts, payment-card data, and personal data unless a future approved workflow and agreement require a narrowly defined exception.
|
|
23
|
+
- Sanitization is defense in depth, not a guarantee; customers remain responsible for reviewing shared artifacts.
|
|
24
|
+
- No AI-model training or external LLM disclosure using customer content without explicit, separate authorization.
|
|
25
|
+
|
|
26
|
+
## Intellectual Property
|
|
27
|
+
|
|
28
|
+
- Ownership of the OSS project, pre-existing materials, customer materials, pilot deliverables, feedback, configurations, scenarios, evidence summaries, and improvements.
|
|
29
|
+
- License grants needed to run a pilot, with limits on reverse engineering and redistribution only where legally appropriate.
|
|
30
|
+
- Open-source notices and third-party dependency obligations.
|
|
31
|
+
|
|
32
|
+
## Risk Allocation
|
|
33
|
+
|
|
34
|
+
- Warranties/disclaimers appropriate to an early pilot.
|
|
35
|
+
- Limitation of liability, exclusion treatment, indemnities, insurance, force majeure, and survival clauses.
|
|
36
|
+
- Security-incident and data-protection terms should align with actual technical controls, not aspirational architecture.
|
|
37
|
+
|
|
38
|
+
## Operational Terms
|
|
39
|
+
|
|
40
|
+
- Named contacts, support channel, escalation path, maintenance windows if any, change notices, export format, termination assistance, and dispute/governing-law provisions.
|
|
41
|
+
- No automatic renewal, cancellation obstacle, or subscription practice should be introduced without transparent written terms and counsel review.
|
|
42
|
+
|
|
43
|
+
## Documents To Prepare When The Gate Opens
|
|
44
|
+
|
|
45
|
+
1. Pilot order form or statement of work.
|
|
46
|
+
2. Master services agreement or equivalent terms.
|
|
47
|
+
3. Operative privacy notice.
|
|
48
|
+
4. Data-processing agreement, if applicable.
|
|
49
|
+
5. Security and subprocessor annex.
|
|
50
|
+
6. Invoice and tax process for the seller's jurisdiction.
|
|
51
|
+
7. Incident response and customer communication runbook.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Design-Partner Validation
|
|
2
|
+
|
|
3
|
+
This directory is the working kit for validating whether GhostAPI solves an expensive enough problem before more cloud, enterprise, or billing scope is built.
|
|
4
|
+
|
|
5
|
+
## Evidence Status: August 8, 2026
|
|
6
|
+
|
|
7
|
+
### Facts
|
|
8
|
+
|
|
9
|
+
- The local runtime, CI evidence model, deterministic evals, and team-control-plane prototype exist in this repository and have automated coverage.
|
|
10
|
+
- `SESSION_LOG.md` records `0` CI design partners and `0` paying design partners as of August 4, 2026.
|
|
11
|
+
- The repository contains no interview transcript, named customer record, weekly CI evidence, bug report from a user, LOI, paid pilot, or willingness-to-pay result.
|
|
12
|
+
- Existing README text previously asserted that a design partner confirmed a workflow need, but this repository has no primary source that independently verifies that assertion. Treat it as an unverified prior note, not demand evidence.
|
|
13
|
+
|
|
14
|
+
### Hypotheses To Test
|
|
15
|
+
|
|
16
|
+
- Teams using coding agents fear accidental production egress and lack proof that CI did not touch production.
|
|
17
|
+
- Payment, webhook, and retry failures are painful enough that teams will add GhostAPI to merge-gating CI.
|
|
18
|
+
- Platform, AppSec, and developer-productivity buyers value enforcement evidence more than another mock server.
|
|
19
|
+
- A team that catches a real integration defect or blocks real egress will pay for enforced CI evidence and shared workflow controls.
|
|
20
|
+
|
|
21
|
+
### Targets, Not Results
|
|
22
|
+
|
|
23
|
+
- Three teams use GhostAPI weekly.
|
|
24
|
+
- One design partner runs GhostAPI in CI.
|
|
25
|
+
- One user confirms a real bug was caught before merge or a production egress attempt was prevented.
|
|
26
|
+
- One company agrees to a paid pilot or signs a specific LOI.
|
|
27
|
+
|
|
28
|
+
## Gate
|
|
29
|
+
|
|
30
|
+
Do not expand cloud/enterprise scope based on this documentation alone. Continue the larger scope only after at least one target above is supported by a dated, sanitized source record. Store a summary, not source code, traffic, credentials, personal data, or raw interview recordings.
|
|
31
|
+
|
|
32
|
+
## Kit
|
|
33
|
+
|
|
34
|
+
- [ICP one-pager](icp-one-pager.md)
|
|
35
|
+
- [Discovery questions](discovery-questions.md)
|
|
36
|
+
- [Design-partner offer](design-partner-offer.md)
|
|
37
|
+
- [Pilot success criteria](pilot-success-criteria.md)
|
|
38
|
+
- [Onboarding checklist](onboarding-checklist.md)
|
|
39
|
+
- [Feedback capture template](feedback-capture-template.md)
|
|
40
|
+
- [Pricing interview script](pricing-interview-script.md)
|
|
41
|
+
- [Privacy-first telemetry plan](telemetry-plan.md)
|
|
42
|
+
- [Demo narratives](demo-narratives.md)
|
|
43
|
+
|
|
44
|
+
## Evidence Ledger
|
|
45
|
+
|
|
46
|
+
For every real conversation or pilot signal, add one sanitized row outside the public repository or in a private founder log:
|
|
47
|
+
|
|
48
|
+
| Date | Team segment | Role | Signal | Evidence location | Next action |
|
|
49
|
+
| --- | --- | --- | --- | --- | --- |
|
|
50
|
+
| YYYY-MM-DD | e.g. B2B SaaS, 20-80 engineers | e.g. Platform lead | Interview / CI run / bug caught / LOI / paid pilot | Private sanitized note ID | Concrete follow-up |
|
|
51
|
+
|
|
52
|
+
Do not fill this table with prospects, assumptions, or fabricated outcomes.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Demo Narratives
|
|
2
|
+
|
|
3
|
+
These are scripted demonstrations, not customer outcomes. Label them as demos until a user provides a dated, sanitized real-world record.
|
|
4
|
+
|
|
5
|
+
## 1. Prevented Production Egress
|
|
6
|
+
|
|
7
|
+
**Buyer pain:** A coding agent can use a different HTTP client or shell command than the application's configured SDK and bypass a base-URL convention.
|
|
8
|
+
|
|
9
|
+
**Story:** A developer runs an AI-generated integration test with `ghostapi run` on a supported Linux runner. The test tries to contact a non-loopback provider host. The namespace boundary denies external network routing while GhostAPI records only the permitted local interaction. The CI job publishes a sanitized evidence artifact and blocks merge because the requested external path cannot be safely proven.
|
|
10
|
+
|
|
11
|
+
**Proof to show:** Linux preflight receipt, policy, sanitized evidence artifact, and failed CI status. Do not claim attribution of denied kernel socket attempts beyond the backend's documented capability.
|
|
12
|
+
|
|
13
|
+
**Ask:** "Would an artifact showing the enforced boundary and the required scenario change how your team reviews agent-authored integration code?"
|
|
14
|
+
|
|
15
|
+
## 2. Duplicate Payment Bug Caught
|
|
16
|
+
|
|
17
|
+
**Buyer pain:** A timeout after an ambiguous payment response can cause unsafe retry behavior and duplicate charges.
|
|
18
|
+
|
|
19
|
+
**Story:** The demo uses GhostAPI's deterministic Stripe-shaped duplicate-payment eval. A deliberately unsafe sample retries a payment mutation without preserving idempotency. The evidence ties the repeated request sequence to the scenario; the eval fails before merge. The corrected implementation reuses the idempotency key and passes the ordered retry proof.
|
|
20
|
+
|
|
21
|
+
**Proof to show:** The exact local scenario, evidence hash, failed eval, corrected eval, and no production credential.
|
|
22
|
+
|
|
23
|
+
**Ask:** "Which of your real workflows has this kind of ambiguous-result or duplicate-side-effect risk?"
|
|
24
|
+
|
|
25
|
+
## 3. PR Blocked For Missing Webhook Signature Validation
|
|
26
|
+
|
|
27
|
+
**Buyer pain:** A webhook handler may work in a happy-path test yet accept unsigned or incorrectly signed payloads.
|
|
28
|
+
|
|
29
|
+
**Story:** A pull request adds a webhook endpoint but does not prove signature verification. The policy requires the webhook-signature eval. The CI report marks the requirement missing and returns a failing status. After the developer adds verification and the negative signed/invalid-signature test, the same required check passes.
|
|
30
|
+
|
|
31
|
+
**Proof to show:** Required policy scenario, failing PR check, sanitized evidence showing the missing expectation, and passing artifact after the negative test.
|
|
32
|
+
|
|
33
|
+
**Ask:** "Which security or integration checks do reviewers currently have to remember manually?"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Design-Partner Offer
|
|
2
|
+
|
|
3
|
+
## Offer
|
|
4
|
+
|
|
5
|
+
GhostAPI will work with a small number of teams to prove one high-risk AI-assisted integration workflow before merge. The pilot focuses on a real buyer outcome: evidence that a chosen CI run did not reach production and that a specific failure path is exercised deterministically.
|
|
6
|
+
|
|
7
|
+
## What The Partner Contributes
|
|
8
|
+
|
|
9
|
+
- One repository and one non-production integration workflow.
|
|
10
|
+
- A technical owner who can run a local or Linux CI experiment weekly.
|
|
11
|
+
- A buyer-side stakeholder for a 30-minute kickoff, weekly feedback, and a closeout decision.
|
|
12
|
+
- Sanitized evidence of outcome only. No production credentials, raw traffic, proprietary code, or customer data are required.
|
|
13
|
+
|
|
14
|
+
## What GhostAPI Contributes
|
|
15
|
+
|
|
16
|
+
- Local-first setup for the selected workflow.
|
|
17
|
+
- A reviewed policy and deterministic scenario for one concrete risk.
|
|
18
|
+
- A CI evidence artifact and a small closeout report based on observed runs.
|
|
19
|
+
- Direct implementation support for agreed pilot blockers within the stated product boundary.
|
|
20
|
+
|
|
21
|
+
## Explicit Boundaries
|
|
22
|
+
|
|
23
|
+
- GhostAPI is not a guarantee of complete host isolation, provider parity, or production compliance.
|
|
24
|
+
- `ghostapi run` enforcement requires supported Linux namespace preflight; Windows and macOS do not receive an equivalent guarantee.
|
|
25
|
+
- No automatic telemetry, cloud upload, raw traffic collection, or source-code transfer is part of the pilot.
|
|
26
|
+
- The pilot does not authorize production actions or require production credentials.
|
|
27
|
+
|
|
28
|
+
## Suggested Timeline
|
|
29
|
+
|
|
30
|
+
| Phase | Target | Evidence |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| Kickoff | Week 0 | Selected repository, risk, owner, baseline workflow. |
|
|
33
|
+
| First result | Week 1 | Local deterministic scenario and a reviewed evidence artifact. |
|
|
34
|
+
| CI validation | Week 2 | Repeated CI runs or a documented blocker with owner/date. |
|
|
35
|
+
| Closeout | Week 3-4 | Measured criteria, buyer decision, and willingness-to-pay interview. |
|
|
36
|
+
|
|
37
|
+
## Ask
|
|
38
|
+
|
|
39
|
+
If the pilot proves a recurring release-risk reduction, agree to a paid-pilot discussion or a specific LOI decision at closeout. This is a request for a decision based on evidence, not a promise that the result already exists.
|