business-as-code 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +43 -0
- package/dist/business.d.ts +62 -0
- package/dist/business.d.ts.map +1 -0
- package/dist/business.js +109 -0
- package/dist/business.js.map +1 -0
- package/dist/dollar.d.ts +60 -0
- package/dist/dollar.d.ts.map +1 -0
- package/dist/dollar.js +107 -0
- package/dist/dollar.js.map +1 -0
- package/dist/entities/assets.d.ts +21 -0
- package/dist/entities/assets.d.ts.map +1 -0
- package/dist/entities/assets.js +323 -0
- package/dist/entities/assets.js.map +1 -0
- package/dist/entities/business.d.ts +36 -0
- package/dist/entities/business.d.ts.map +1 -0
- package/dist/entities/business.js +370 -0
- package/dist/entities/business.js.map +1 -0
- package/dist/entities/communication.d.ts +21 -0
- package/dist/entities/communication.d.ts.map +1 -0
- package/dist/entities/communication.js +255 -0
- package/dist/entities/communication.js.map +1 -0
- package/dist/entities/customers.d.ts +58 -0
- package/dist/entities/customers.d.ts.map +1 -0
- package/dist/entities/customers.js +989 -0
- package/dist/entities/customers.js.map +1 -0
- package/dist/entities/financials.d.ts +59 -0
- package/dist/entities/financials.d.ts.map +1 -0
- package/dist/entities/financials.js +932 -0
- package/dist/entities/financials.js.map +1 -0
- package/dist/entities/goals.d.ts +58 -0
- package/dist/entities/goals.d.ts.map +1 -0
- package/dist/entities/goals.js +800 -0
- package/dist/entities/goals.js.map +1 -0
- package/dist/entities/index.d.ts +299 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +198 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/legal.d.ts +21 -0
- package/dist/entities/legal.d.ts.map +1 -0
- package/dist/entities/legal.js +301 -0
- package/dist/entities/legal.js.map +1 -0
- package/dist/entities/market.d.ts +21 -0
- package/dist/entities/market.d.ts.map +1 -0
- package/dist/entities/market.js +301 -0
- package/dist/entities/market.js.map +1 -0
- package/dist/entities/marketing.d.ts +67 -0
- package/dist/entities/marketing.d.ts.map +1 -0
- package/dist/entities/marketing.js +1157 -0
- package/dist/entities/marketing.js.map +1 -0
- package/dist/entities/offerings.d.ts +51 -0
- package/dist/entities/offerings.d.ts.map +1 -0
- package/dist/entities/offerings.js +727 -0
- package/dist/entities/offerings.js.map +1 -0
- package/dist/entities/operations.d.ts +58 -0
- package/dist/entities/operations.d.ts.map +1 -0
- package/dist/entities/operations.js +787 -0
- package/dist/entities/operations.js.map +1 -0
- package/dist/entities/organization.d.ts +61 -0
- package/dist/entities/organization.d.ts.map +1 -0
- package/dist/entities/organization.js +816 -0
- package/dist/entities/organization.js.map +1 -0
- package/dist/entities/partnerships.d.ts +21 -0
- package/dist/entities/partnerships.d.ts.map +1 -0
- package/dist/entities/partnerships.js +300 -0
- package/dist/entities/partnerships.js.map +1 -0
- package/dist/entities/planning.d.ts +87 -0
- package/dist/entities/planning.d.ts.map +1 -0
- package/dist/entities/planning.js +271 -0
- package/dist/entities/planning.js.map +1 -0
- package/dist/entities/projects.d.ts +25 -0
- package/dist/entities/projects.d.ts.map +1 -0
- package/dist/entities/projects.js +349 -0
- package/dist/entities/projects.js.map +1 -0
- package/dist/entities/risk.d.ts +21 -0
- package/dist/entities/risk.d.ts.map +1 -0
- package/dist/entities/risk.js +293 -0
- package/dist/entities/risk.js.map +1 -0
- package/dist/entities/sales.d.ts +72 -0
- package/dist/entities/sales.d.ts.map +1 -0
- package/dist/entities/sales.js +1248 -0
- package/dist/entities/sales.js.map +1 -0
- package/dist/finance/account.d.ts +44 -0
- package/dist/finance/account.d.ts.map +1 -0
- package/dist/finance/account.js +6 -0
- package/dist/finance/account.js.map +1 -0
- package/dist/finance/authority.d.ts +78 -0
- package/dist/finance/authority.d.ts.map +1 -0
- package/dist/finance/authority.js +27 -0
- package/dist/finance/authority.js.map +1 -0
- package/dist/finance/card.d.ts +36 -0
- package/dist/finance/card.d.ts.map +1 -0
- package/dist/finance/card.js +6 -0
- package/dist/finance/card.js.map +1 -0
- package/dist/finance/identity.d.ts +30 -0
- package/dist/finance/identity.d.ts.map +1 -0
- package/dist/finance/identity.js +8 -0
- package/dist/finance/identity.js.map +1 -0
- package/dist/finance/index.d.ts +36 -0
- package/dist/finance/index.d.ts.map +1 -0
- package/dist/finance/index.js +22 -0
- package/dist/finance/index.js.map +1 -0
- package/dist/finance/ledger.d.ts +24 -0
- package/dist/finance/ledger.d.ts.map +1 -0
- package/dist/finance/ledger.js +8 -0
- package/dist/finance/ledger.js.map +1 -0
- package/dist/finance/merchant.d.ts +129 -0
- package/dist/finance/merchant.d.ts.map +1 -0
- package/dist/finance/merchant.js +21 -0
- package/dist/finance/merchant.js.map +1 -0
- package/dist/finance/outcome-contract.d.ts +139 -0
- package/dist/finance/outcome-contract.d.ts.map +1 -0
- package/dist/finance/outcome-contract.js +27 -0
- package/dist/finance/outcome-contract.js.map +1 -0
- package/dist/finance/port.d.ts +121 -0
- package/dist/finance/port.d.ts.map +1 -0
- package/dist/finance/port.js +10 -0
- package/dist/finance/port.js.map +1 -0
- package/dist/finance/pricing.d.ts +154 -0
- package/dist/finance/pricing.d.ts.map +1 -0
- package/dist/finance/pricing.js +79 -0
- package/dist/finance/pricing.js.map +1 -0
- package/dist/finance/proof-predicate.d.ts +92 -0
- package/dist/finance/proof-predicate.d.ts.map +1 -0
- package/dist/finance/proof-predicate.js +80 -0
- package/dist/finance/proof-predicate.js.map +1 -0
- package/dist/finance/refund.d.ts +44 -0
- package/dist/finance/refund.d.ts.map +1 -0
- package/dist/finance/refund.js +41 -0
- package/dist/finance/refund.js.map +1 -0
- package/dist/finance/sla.d.ts +25 -0
- package/dist/finance/sla.d.ts.map +1 -0
- package/dist/finance/sla.js +7 -0
- package/dist/finance/sla.js.map +1 -0
- package/dist/finance/types.d.ts +79 -0
- package/dist/finance/types.d.ts.map +1 -0
- package/dist/finance/types.js +8 -0
- package/dist/finance/types.js.map +1 -0
- package/dist/financials.d.ts +130 -0
- package/dist/financials.d.ts.map +1 -0
- package/dist/financials.js +297 -0
- package/dist/financials.js.map +1 -0
- package/dist/goals.d.ts +106 -0
- package/dist/goals.d.ts.map +1 -0
- package/dist/goals.js +284 -0
- package/dist/goals.js.map +1 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/kpis.d.ts +137 -0
- package/dist/kpis.d.ts.map +1 -0
- package/dist/kpis.js +297 -0
- package/dist/kpis.js.map +1 -0
- package/dist/metrics.d.ts +448 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +330 -0
- package/dist/metrics.js.map +1 -0
- package/dist/okrs.d.ts +157 -0
- package/dist/okrs.d.ts.map +1 -0
- package/dist/okrs.js +391 -0
- package/dist/okrs.js.map +1 -0
- package/dist/organization.d.ts +585 -0
- package/dist/organization.d.ts.map +1 -0
- package/dist/organization.js +173 -0
- package/dist/organization.js.map +1 -0
- package/dist/process.d.ts +112 -0
- package/dist/process.d.ts.map +1 -0
- package/dist/process.js +242 -0
- package/dist/process.js.map +1 -0
- package/dist/product.d.ts +85 -0
- package/dist/product.d.ts.map +1 -0
- package/dist/product.js +145 -0
- package/dist/product.js.map +1 -0
- package/dist/queries.d.ts +304 -0
- package/dist/queries.d.ts.map +1 -0
- package/dist/queries.js +577 -0
- package/dist/queries.js.map +1 -0
- package/dist/roles.d.ts +334 -0
- package/dist/roles.d.ts.map +1 -0
- package/dist/roles.js +282 -0
- package/dist/roles.js.map +1 -0
- package/dist/service.d.ts +61 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +140 -0
- package/dist/service.js.map +1 -0
- package/dist/types.d.ts +459 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/vision.d.ts +38 -0
- package/dist/vision.d.ts.map +1 -0
- package/dist/vision.js +68 -0
- package/dist/vision.js.map +1 -0
- package/dist/workflow.d.ts +115 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +248 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +8 -4
- package/src/finance/account.ts +48 -0
- package/src/finance/authority.ts +42 -0
- package/src/finance/card.ts +38 -0
- package/src/finance/identity.ts +31 -0
- package/src/finance/index.ts +117 -0
- package/src/finance/ledger.ts +26 -0
- package/src/finance/merchant.ts +127 -0
- package/src/finance/outcome-contract.ts +157 -0
- package/src/finance/port.ts +144 -0
- package/src/finance/pricing.ts +197 -0
- package/src/finance/proof-predicate.ts +106 -0
- package/src/finance/refund.ts +52 -0
- package/src/finance/sla.ts +33 -0
- package/src/finance/types.ts +75 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProofPredicate — composable predicates that gate outcome-based settlement.
|
|
3
|
+
*
|
|
4
|
+
* Stripe's MPP Sessions ship escrow but no outcome-predicate-driven release —
|
|
5
|
+
* this module is the gap-filler. SaS's Service.outcomeContract.predicate
|
|
6
|
+
* uses these to express "definition of done."
|
|
7
|
+
*
|
|
8
|
+
* Seven leaf predicates + AND/OR composition:
|
|
9
|
+
* - schema-match : output matches schema
|
|
10
|
+
* - evaluator-pass : EvaluatorPanel approves at threshold
|
|
11
|
+
* - human-sign : human with signerRoles signs
|
|
12
|
+
* - external : external verifier (e.g. github CI + merged) approves
|
|
13
|
+
* - load-bearing-pass : a named subset of rubric items all pass (sb killThreshold)
|
|
14
|
+
* - overall-floor : N of total rubric items pass (sb killThreshold)
|
|
15
|
+
* - unmet-requirements-pass : no `severity: 'blocking'` UnmetRequirements remain
|
|
16
|
+
* (sb-n7d open-blocking gate); when `categories` is
|
|
17
|
+
* supplied, only those categories are checked.
|
|
18
|
+
*/
|
|
19
|
+
export const SchemaMatch = (schema) => ({
|
|
20
|
+
kind: 'schema-match',
|
|
21
|
+
schema,
|
|
22
|
+
});
|
|
23
|
+
export const EvaluatorPass = (opts) => ({
|
|
24
|
+
kind: 'evaluator-pass',
|
|
25
|
+
panelRef: opts.panelRef,
|
|
26
|
+
minScore: opts.minScore,
|
|
27
|
+
});
|
|
28
|
+
export const HumanSign = (opts) => {
|
|
29
|
+
if (opts.when !== undefined) {
|
|
30
|
+
return { kind: 'human-sign', signerRoles: opts.signerRoles, when: opts.when };
|
|
31
|
+
}
|
|
32
|
+
return { kind: 'human-sign', signerRoles: opts.signerRoles };
|
|
33
|
+
};
|
|
34
|
+
export const External = (opts) => ({
|
|
35
|
+
kind: 'external',
|
|
36
|
+
verifier: opts.verifier,
|
|
37
|
+
spec: opts.spec,
|
|
38
|
+
});
|
|
39
|
+
export const LoadBearingPass = (itemSet) => ({
|
|
40
|
+
kind: 'load-bearing-pass',
|
|
41
|
+
itemSet,
|
|
42
|
+
});
|
|
43
|
+
export const OverallFloor = (opts) => ({
|
|
44
|
+
kind: 'overall-floor',
|
|
45
|
+
minPasses: opts.minPasses,
|
|
46
|
+
outOfTotal: opts.outOfTotal,
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* `UnmetRequirementsPass` — sb-n7d's open-blocking gate as a first-class
|
|
50
|
+
* predicate.
|
|
51
|
+
*
|
|
52
|
+
* Passes iff no `severity: 'blocking'` UnmetRequirement is present in the
|
|
53
|
+
* verify-time evaluation context. `severity: 'warning'` items are ignored.
|
|
54
|
+
*
|
|
55
|
+
* When `categories` is supplied, only requirements whose `category` matches
|
|
56
|
+
* one of the listed values are considered (others are ignored regardless of
|
|
57
|
+
* severity). When omitted, ALL categories are inspected.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* // Any blocking unmet requirement fails the predicate.
|
|
61
|
+
* UnmetRequirementsPass()
|
|
62
|
+
*
|
|
63
|
+
* // Only blocking items in the 'compliance' or 'security' buckets fail.
|
|
64
|
+
* UnmetRequirementsPass({ categories: ['compliance', 'security'] })
|
|
65
|
+
*/
|
|
66
|
+
export const UnmetRequirementsPass = (opts) => {
|
|
67
|
+
if (opts?.categories !== undefined) {
|
|
68
|
+
return { kind: 'unmet-requirements-pass', categories: opts.categories };
|
|
69
|
+
}
|
|
70
|
+
return { kind: 'unmet-requirements-pass' };
|
|
71
|
+
};
|
|
72
|
+
export const AND = (...predicates) => ({
|
|
73
|
+
kind: 'and',
|
|
74
|
+
predicates,
|
|
75
|
+
});
|
|
76
|
+
export const OR = (...predicates) => ({
|
|
77
|
+
kind: 'or',
|
|
78
|
+
predicates,
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=proof-predicate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof-predicate.js","sourceRoot":"","sources":["../../src/finance/proof-predicate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiBH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAe,EAAkB,EAAE,CAAC,CAAC;IAC/D,IAAI,EAAE,cAAc;IACpB,MAAM;CACP,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAG7B,EAAkB,EAAE,CAAC,CAAC;IACrB,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;CACxB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAA8C,EAAkB,EAAE;IAC1F,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;IAC/E,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAyC,EAAkB,EAAE,CAAC,CAAC;IACtF,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC,IAAI;CAChB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAiB,EAAkB,EAAE,CAAC,CAAC;IACrE,IAAI,EAAE,mBAAmB;IACzB,OAAO;CACR,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAA+C,EAAkB,EAAE,CAAC,CAAC;IAChG,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,IAAI,CAAC,SAAS;IACzB,UAAU,EAAE,IAAI,CAAC,UAAU;CAC5B,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAgC,EAAkB,EAAE;IACxF,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAA;IACzE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,UAA4B,EAAkB,EAAE,CAAC,CAAC;IACvE,IAAI,EAAE,KAAK;IACX,UAAU;CACX,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAA4B,EAAkB,EAAE,CAAC,CAAC;IACtE,IAAI,EAAE,IAAI;IACV,UAAU;CACX,CAAC,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RefundContract — typed refund machinery. The 7-pattern catalog (per startup-builder
|
|
3
|
+
* SERVICES.md) defines the contractual templates a Service can bind to.
|
|
4
|
+
*
|
|
5
|
+
* Stripe's Smart Disputes are consumer-chargeback-shaped; this is B2B SLA-shape.
|
|
6
|
+
*/
|
|
7
|
+
export type RefundContractRef = 'no-charge-if-not-qualified' | 'quality-floor-fail' | 'sla-credit-on-late-delivery' | 'sla-credit-on-late-close' | 'partial-credit-on-partial-delivery' | 'time-bounded-money-back' | 'escalate-to-dispute' | (string & {
|
|
8
|
+
__brand?: 'RefundContractRef';
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* Catalog of canonical refund contracts. Consumers reference by id; substrate
|
|
12
|
+
* resolves the contract semantics at settlement time.
|
|
13
|
+
*/
|
|
14
|
+
export declare const RefundContracts: {
|
|
15
|
+
readonly 'no-charge-if-not-qualified': {
|
|
16
|
+
readonly description: "No charge unless EvaluatorPass + downstream verification confirms work delivered.";
|
|
17
|
+
readonly triggersAt: "pre-charge";
|
|
18
|
+
};
|
|
19
|
+
readonly 'quality-floor-fail': {
|
|
20
|
+
readonly description: "Full refund when EvaluatorPanel rejects below quality floor.";
|
|
21
|
+
readonly triggersAt: "post-quality-review";
|
|
22
|
+
};
|
|
23
|
+
readonly 'sla-credit-on-late-delivery': {
|
|
24
|
+
readonly description: "Credit equal to N% of invoice when delivery exceeds OutcomeContract.expiresAt.";
|
|
25
|
+
readonly triggersAt: "on-timeout";
|
|
26
|
+
};
|
|
27
|
+
readonly 'sla-credit-on-late-close': {
|
|
28
|
+
readonly description: "Credit on monthly subscription when SLA target (e.g. close-by-day-5) breached.";
|
|
29
|
+
readonly triggersAt: "sla-breach";
|
|
30
|
+
};
|
|
31
|
+
readonly 'partial-credit-on-partial-delivery': {
|
|
32
|
+
readonly description: "Pro-rata credit when fraction of work-units delivered (e.g. tickets resolved).";
|
|
33
|
+
readonly triggersAt: "post-delivery";
|
|
34
|
+
};
|
|
35
|
+
readonly 'time-bounded-money-back': {
|
|
36
|
+
readonly description: "Full refund within N days of acceptance, no questions asked.";
|
|
37
|
+
readonly triggersAt: "on-customer-request";
|
|
38
|
+
};
|
|
39
|
+
readonly 'escalate-to-dispute': {
|
|
40
|
+
readonly description: "Route to ESCALATED_TO_HUMAN_REVIEW state; manual resolution.";
|
|
41
|
+
readonly triggersAt: "on-customer-dispute";
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=refund.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refund.d.ts","sourceRoot":"","sources":["../../src/finance/refund.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,iBAAiB,GACzB,4BAA4B,GAC5B,oBAAoB,GACpB,6BAA6B,GAC7B,0BAA0B,GAC1B,oCAAoC,GACpC,yBAAyB,GACzB,qBAAqB,GACrB,CAAC,MAAM,GAAG;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BlB,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RefundContract — typed refund machinery. The 7-pattern catalog (per startup-builder
|
|
3
|
+
* SERVICES.md) defines the contractual templates a Service can bind to.
|
|
4
|
+
*
|
|
5
|
+
* Stripe's Smart Disputes are consumer-chargeback-shaped; this is B2B SLA-shape.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Catalog of canonical refund contracts. Consumers reference by id; substrate
|
|
9
|
+
* resolves the contract semantics at settlement time.
|
|
10
|
+
*/
|
|
11
|
+
export const RefundContracts = {
|
|
12
|
+
'no-charge-if-not-qualified': {
|
|
13
|
+
description: 'No charge unless EvaluatorPass + downstream verification confirms work delivered.',
|
|
14
|
+
triggersAt: 'pre-charge',
|
|
15
|
+
},
|
|
16
|
+
'quality-floor-fail': {
|
|
17
|
+
description: 'Full refund when EvaluatorPanel rejects below quality floor.',
|
|
18
|
+
triggersAt: 'post-quality-review',
|
|
19
|
+
},
|
|
20
|
+
'sla-credit-on-late-delivery': {
|
|
21
|
+
description: 'Credit equal to N% of invoice when delivery exceeds OutcomeContract.expiresAt.',
|
|
22
|
+
triggersAt: 'on-timeout',
|
|
23
|
+
},
|
|
24
|
+
'sla-credit-on-late-close': {
|
|
25
|
+
description: 'Credit on monthly subscription when SLA target (e.g. close-by-day-5) breached.',
|
|
26
|
+
triggersAt: 'sla-breach',
|
|
27
|
+
},
|
|
28
|
+
'partial-credit-on-partial-delivery': {
|
|
29
|
+
description: 'Pro-rata credit when fraction of work-units delivered (e.g. tickets resolved).',
|
|
30
|
+
triggersAt: 'post-delivery',
|
|
31
|
+
},
|
|
32
|
+
'time-bounded-money-back': {
|
|
33
|
+
description: 'Full refund within N days of acceptance, no questions asked.',
|
|
34
|
+
triggersAt: 'on-customer-request',
|
|
35
|
+
},
|
|
36
|
+
'escalate-to-dispute': {
|
|
37
|
+
description: 'Route to ESCALATED_TO_HUMAN_REVIEW state; manual resolution.',
|
|
38
|
+
triggersAt: 'on-customer-dispute',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=refund.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refund.js","sourceRoot":"","sources":["../../src/finance/refund.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,4BAA4B,EAAE;QAC5B,WAAW,EACT,mFAAmF;QACrF,UAAU,EAAE,YAAY;KACzB;IACD,oBAAoB,EAAE;QACpB,WAAW,EAAE,8DAA8D;QAC3E,UAAU,EAAE,qBAAqB;KAClC;IACD,6BAA6B,EAAE;QAC7B,WAAW,EAAE,gFAAgF;QAC7F,UAAU,EAAE,YAAY;KACzB;IACD,0BAA0B,EAAE;QAC1B,WAAW,EAAE,gFAAgF;QAC7F,UAAU,EAAE,YAAY;KACzB;IACD,oCAAoC,EAAE;QACpC,WAAW,EAAE,gFAAgF;QAC7F,UAAU,EAAE,eAAe;KAC5B;IACD,yBAAyB,EAAE;QACzB,WAAW,EAAE,8DAA8D;QAC3E,UAAU,EAAE,qBAAqB;KAClC;IACD,qBAAqB,EAAE;QACrB,WAAW,EAAE,8DAA8D;QAC3E,UAAU,EAAE,qBAAqB;KAClC;CACO,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SLAPolicy — service-level agreement with auto-credit / auto-refund / escalate
|
|
3
|
+
* on breach. The SaS book's "outcome-pricing requires you to stand behind quality"
|
|
4
|
+
* substrate.
|
|
5
|
+
*/
|
|
6
|
+
export interface SLATarget {
|
|
7
|
+
metric: 'latency-ms' | 'accuracy' | 'on-time' | 'completeness' | 'first-contact-resolution' | 'csat' | string;
|
|
8
|
+
/** Threshold value or expression (e.g. 'day-5', 0.95, 1000). */
|
|
9
|
+
threshold: number | string;
|
|
10
|
+
}
|
|
11
|
+
export interface SLAPolicy {
|
|
12
|
+
$id: string;
|
|
13
|
+
$type: 'SLAPolicy';
|
|
14
|
+
serviceRef: string;
|
|
15
|
+
targets: SLATarget[];
|
|
16
|
+
onBreach: {
|
|
17
|
+
/** Percent of charge to credit back (0-100). */
|
|
18
|
+
creditPercent?: number;
|
|
19
|
+
/** Percent of charge to refund (0-100). */
|
|
20
|
+
refundPercent?: number;
|
|
21
|
+
/** Worker (Person/Agent/Role) to escalate to. */
|
|
22
|
+
escalateTo?: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=sla.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sla.d.ts","sourceRoot":"","sources":["../../src/finance/sla.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,SAAS;IACxB,MAAM,EACF,YAAY,GACZ,UAAU,GACV,SAAS,GACT,cAAc,GACd,0BAA0B,GAC1B,MAAM,GACN,MAAM,CAAA;IACV,gEAAgE;IAChE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,WAAW,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,QAAQ,EAAE;QACR,gDAAgD;QAChD,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,2CAA2C;QAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,iDAAiD;QACjD,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sla.js","sourceRoot":"","sources":["../../src/finance/sla.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core value types — Money, Cost, Budget, SpendControl, CostModel.
|
|
3
|
+
*
|
|
4
|
+
* Money uses bigint in smallest currency unit (cents/satoshis/wei) for precision.
|
|
5
|
+
* Refs use plain string with brand comment; cross-package nominal types deferred.
|
|
6
|
+
*/
|
|
7
|
+
export type FiatCurrency = 'USD' | 'EUR' | 'GBP' | 'JPY' | 'CAD' | 'AUD' | string;
|
|
8
|
+
export type StablecoinCurrency = 'USDC' | 'PYUSD' | 'USDT' | 'USDG' | 'USDSui' | 'CASH' | string;
|
|
9
|
+
export type CryptoCurrency = 'BTC' | 'ETH' | 'SOL';
|
|
10
|
+
export type Currency = FiatCurrency | StablecoinCurrency | CryptoCurrency;
|
|
11
|
+
export interface Money {
|
|
12
|
+
amount: bigint;
|
|
13
|
+
currency: Currency;
|
|
14
|
+
}
|
|
15
|
+
/** Cost incurred by an Action — every cascade Function call captures one. */
|
|
16
|
+
export interface Cost {
|
|
17
|
+
$id: string;
|
|
18
|
+
$type: 'Cost';
|
|
19
|
+
/** Reference to the underlying Action (digital-objects ActionRef shape). */
|
|
20
|
+
actionRef: string;
|
|
21
|
+
amount: Money;
|
|
22
|
+
/** Provider that incurred the cost: 'openai' | 'anthropic' | 'stripe' | ... */
|
|
23
|
+
provider: string;
|
|
24
|
+
category: 'inference' | 'compute' | 'storage' | 'api' | 'human' | 'rail-fee' | 'other';
|
|
25
|
+
/** ISO-8601 timestamp. */
|
|
26
|
+
capturedAt: string;
|
|
27
|
+
}
|
|
28
|
+
/** Where a Budget applies. */
|
|
29
|
+
export type BudgetScope = {
|
|
30
|
+
kind: 'worker';
|
|
31
|
+
ref: string;
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'function';
|
|
34
|
+
ref: string;
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'goal';
|
|
37
|
+
ref: string;
|
|
38
|
+
} | {
|
|
39
|
+
kind: 'experiment';
|
|
40
|
+
ref: string;
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'tenant';
|
|
43
|
+
ref: string;
|
|
44
|
+
};
|
|
45
|
+
export interface Budget {
|
|
46
|
+
$id: string;
|
|
47
|
+
$type: 'Budget';
|
|
48
|
+
scope: BudgetScope;
|
|
49
|
+
cap: Money;
|
|
50
|
+
period: 'daily' | 'weekly' | 'monthly' | 'one-time';
|
|
51
|
+
/** ISO-8601 timestamp; absent for one-time budgets. */
|
|
52
|
+
resetAt?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface SpendControl {
|
|
55
|
+
budgetRef: string;
|
|
56
|
+
/** 0-1 fraction of cap — warn when soft threshold crossed. */
|
|
57
|
+
soft?: number;
|
|
58
|
+
/** 0-1 fraction of cap — block/escalate when hard threshold crossed. */
|
|
59
|
+
hard: number;
|
|
60
|
+
onBreach: 'block' | 'escalate' | 'warn';
|
|
61
|
+
/** Worker to escalate to (Person/Agent/Role); ThingRef shape. */
|
|
62
|
+
escalateTo?: string;
|
|
63
|
+
}
|
|
64
|
+
/** Declared cost model on a Function or Service. */
|
|
65
|
+
export interface CostModel {
|
|
66
|
+
/** Per-invocation flat cost (cents in smallest unit). */
|
|
67
|
+
perInvocation?: bigint;
|
|
68
|
+
/** Per-transaction cost (e.g. per-token, per-row). */
|
|
69
|
+
perTx?: bigint;
|
|
70
|
+
/** Per round of agent execution (e.g. per-dev-agent-round). */
|
|
71
|
+
perAgentRound?: bigint;
|
|
72
|
+
/** Per external API call. */
|
|
73
|
+
perApiCall?: bigint;
|
|
74
|
+
/** Per-symbol or per-unit-of-output. */
|
|
75
|
+
perUnit?: bigint;
|
|
76
|
+
/** Hourly rate for human work. */
|
|
77
|
+
perHour?: bigint;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/finance/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;AACjF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;AAChG,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;AAClD,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,kBAAkB,GAAG,cAAc,CAAA;AAEzE,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,6EAA6E;AAC7E,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,KAAK,CAAA;IACb,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAA;IACtF,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,8BAA8B;AAC9B,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnC,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,QAAQ,CAAA;IACf,KAAK,EAAE,WAAW,CAAA;IAClB,GAAG,EAAE,KAAK,CAAA;IACV,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;IACnD,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;IACvC,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,oDAAoD;AACpD,MAAM,WAAW,SAAS;IACxB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core value types — Money, Cost, Budget, SpendControl, CostModel.
|
|
3
|
+
*
|
|
4
|
+
* Money uses bigint in smallest currency unit (cents/satoshis/wei) for precision.
|
|
5
|
+
* Refs use plain string with brand comment; cross-package nominal types deferred.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/finance/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Financial metrics and calculations
|
|
3
|
+
*/
|
|
4
|
+
import type { FinancialMetrics, FinancialStatement, Currency } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Calculate financial metrics from basic inputs
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const metrics = financials({
|
|
11
|
+
* revenue: 1000000,
|
|
12
|
+
* cogs: 300000,
|
|
13
|
+
* operatingExpenses: 500000,
|
|
14
|
+
* currency: 'USD',
|
|
15
|
+
* period: 'monthly',
|
|
16
|
+
* })
|
|
17
|
+
*
|
|
18
|
+
* console.log(metrics.grossMargin) // 70%
|
|
19
|
+
* console.log(metrics.operatingMargin) // 20%
|
|
20
|
+
* console.log(metrics.netMargin) // 20%
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function financials(metrics: Partial<FinancialMetrics>): FinancialMetrics;
|
|
24
|
+
/**
|
|
25
|
+
* Calculate gross margin
|
|
26
|
+
*/
|
|
27
|
+
export declare function calculateGrossMargin(revenue: number, cogs: number): number;
|
|
28
|
+
/**
|
|
29
|
+
* Calculate operating margin
|
|
30
|
+
*/
|
|
31
|
+
export declare function calculateOperatingMargin(revenue: number, cogs: number, operatingExpenses: number): number;
|
|
32
|
+
/**
|
|
33
|
+
* Calculate net margin
|
|
34
|
+
*/
|
|
35
|
+
export declare function calculateNetMargin(revenue: number, netIncome: number): number;
|
|
36
|
+
/**
|
|
37
|
+
* Calculate EBITDA margin
|
|
38
|
+
*/
|
|
39
|
+
export declare function calculateEBITDAMargin(revenue: number, ebitda: number): number;
|
|
40
|
+
/**
|
|
41
|
+
* Calculate burn rate (monthly cash burn)
|
|
42
|
+
*/
|
|
43
|
+
export declare function calculateBurnRate(cashStart: number, cashEnd: number, months: number): number;
|
|
44
|
+
/**
|
|
45
|
+
* Calculate runway (months until cash runs out)
|
|
46
|
+
*/
|
|
47
|
+
export declare function calculateRunway(cash: number, monthlyBurnRate: number): number;
|
|
48
|
+
/**
|
|
49
|
+
* Calculate customer acquisition cost (CAC)
|
|
50
|
+
*/
|
|
51
|
+
export declare function calculateCAC(marketingSpend: number, newCustomers: number): number;
|
|
52
|
+
/**
|
|
53
|
+
* Calculate customer lifetime value (LTV)
|
|
54
|
+
*/
|
|
55
|
+
export declare function calculateLTV(averageRevenuePerCustomer: number, averageCustomerLifetimeMonths: number, grossMarginPercent: number): number;
|
|
56
|
+
/**
|
|
57
|
+
* Calculate LTV:CAC ratio
|
|
58
|
+
*/
|
|
59
|
+
export declare function calculateLTVtoCAC(ltv: number, cac: number): number;
|
|
60
|
+
/**
|
|
61
|
+
* Calculate payback period (months to recover CAC)
|
|
62
|
+
*/
|
|
63
|
+
export declare function calculatePaybackPeriod(cac: number, monthlyRevPerCustomer: number): number;
|
|
64
|
+
/**
|
|
65
|
+
* Calculate annual recurring revenue (ARR)
|
|
66
|
+
*/
|
|
67
|
+
export declare function calculateARR(mrr: number): number;
|
|
68
|
+
/**
|
|
69
|
+
* Calculate monthly recurring revenue (MRR)
|
|
70
|
+
*/
|
|
71
|
+
export declare function calculateMRR(arr: number): number;
|
|
72
|
+
/**
|
|
73
|
+
* Calculate revenue growth rate
|
|
74
|
+
*/
|
|
75
|
+
export declare function calculateGrowthRate(currentRevenue: number, previousRevenue: number): number;
|
|
76
|
+
/**
|
|
77
|
+
* Calculate compound annual growth rate (CAGR)
|
|
78
|
+
*/
|
|
79
|
+
export declare function calculateCAGR(beginningValue: number, endingValue: number, years: number): number;
|
|
80
|
+
/**
|
|
81
|
+
* Calculate return on investment (ROI)
|
|
82
|
+
*/
|
|
83
|
+
export declare function calculateROI(gain: number, cost: number): number;
|
|
84
|
+
/**
|
|
85
|
+
* Calculate return on equity (ROE)
|
|
86
|
+
*/
|
|
87
|
+
export declare function calculateROE(netIncome: number, shareholderEquity: number): number;
|
|
88
|
+
/**
|
|
89
|
+
* Calculate return on assets (ROA)
|
|
90
|
+
*/
|
|
91
|
+
export declare function calculateROA(netIncome: number, totalAssets: number): number;
|
|
92
|
+
/**
|
|
93
|
+
* Calculate quick ratio (liquidity)
|
|
94
|
+
*/
|
|
95
|
+
export declare function calculateQuickRatio(currentAssets: number, inventory: number, currentLiabilities: number): number;
|
|
96
|
+
/**
|
|
97
|
+
* Calculate current ratio (liquidity)
|
|
98
|
+
*/
|
|
99
|
+
export declare function calculateCurrentRatio(currentAssets: number, currentLiabilities: number): number;
|
|
100
|
+
/**
|
|
101
|
+
* Calculate debt-to-equity ratio
|
|
102
|
+
*/
|
|
103
|
+
export declare function calculateDebtToEquity(totalDebt: number, totalEquity: number): number;
|
|
104
|
+
/**
|
|
105
|
+
* Format currency value
|
|
106
|
+
*/
|
|
107
|
+
export declare function formatCurrency(amount: number, currency?: Currency): string;
|
|
108
|
+
/**
|
|
109
|
+
* Create a financial statement
|
|
110
|
+
*/
|
|
111
|
+
export declare function createStatement(type: FinancialStatement['type'], period: string, lineItems: Record<string, number>, currency?: Currency): FinancialStatement;
|
|
112
|
+
/**
|
|
113
|
+
* Get line item from financial statement
|
|
114
|
+
*/
|
|
115
|
+
export declare function getLineItem(statement: FinancialStatement, name: string): number;
|
|
116
|
+
/**
|
|
117
|
+
* Compare financial metrics between periods
|
|
118
|
+
*/
|
|
119
|
+
export declare function compareMetrics(current: FinancialMetrics, previous: FinancialMetrics): Record<string, {
|
|
120
|
+
change: number;
|
|
121
|
+
changePercent: number;
|
|
122
|
+
}>;
|
|
123
|
+
/**
|
|
124
|
+
* Validate financial metrics
|
|
125
|
+
*/
|
|
126
|
+
export declare function validateFinancials(metrics: FinancialMetrics): {
|
|
127
|
+
valid: boolean;
|
|
128
|
+
errors: string[];
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=financials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"financials.d.ts","sourceRoot":"","sources":["../src/financials.ts"],"names":[],"mappings":"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"}
|