Skip to content

Commit da17f68

Browse files
Merge pull request #193 from engineeredsoftware/v44/gate-3-packs-portfolio-market-intelligence
V44 Gate 3: Packs Portfolio Market Intelligence
2 parents b3be6ed + b63bd28 commit da17f68

22 files changed

Lines changed: 1395 additions & 31 deletions

.bitcode/v44-economic-domain-model.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"currentTarget": "V43",
66
"sourceSafetyVerdict": "source-safe-economic-domain-model-metadata",
77
"generatedAt": "deterministic",
8-
"artifactRoot": "v44-economic-domain-model:ef6092ede081c31a2dd1fa62",
8+
"artifactRoot": "v44-economic-domain-model:1ac488c93f2cbc4464d79d2f",
99
"passed": true,
1010
"economicObjectIds": [
1111
"EnterprisePackPortfolio",
@@ -759,18 +759,18 @@
759759
],
760760
"sourceRoots": {
761761
"activePointer": "BITCODE_SPEC.txt:4ea77b214c66f69c697bff3d",
762-
"spec": "BITCODE_SPEC_V44.md:27d0568087e0f617f8576694",
763-
"delta": "BITCODE_SPEC_V44_DELTA.md:6cc34f9e954f1a83707af740",
764-
"notes": "BITCODE_SPEC_V44_NOTES.md:05a13e9c9e270882dbc13ebc",
765-
"parity": "BITCODE_SPEC_V44_PARITY_MATRIX.md:ad818785f7ad1864ca7ca237",
766-
"roadmap": "SPECIFICATIONS_ROADMAP.md:aa89238169c79ff321e3f828",
767-
"readme": "README.md:06a61892efa39a9bb5daf972",
768-
"protocolReadme": "packages/protocol/README.md:8c8711285580b921cfc3b1ac",
769-
"packageJson": "package.json:40af7a5aa6601162b9ccab7b",
770-
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:b9d45fc664e62530318993cc",
771-
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:c61a38ba01701c8f4f39a5c3",
772-
"packageIndex": "packages/protocol/src/index.js:05205fd7a16b03943b4a0f22",
773-
"packageTypes": "packages/protocol/src/index.d.ts:ef61d24f3eeba4aa9e537b22",
762+
"spec": "BITCODE_SPEC_V44.md:61a14ac02f93d45980135444",
763+
"delta": "BITCODE_SPEC_V44_DELTA.md:8e456398e6b8f70ce1c79bf6",
764+
"notes": "BITCODE_SPEC_V44_NOTES.md:427bff37cf91930869a4ec4b",
765+
"parity": "BITCODE_SPEC_V44_PARITY_MATRIX.md:95b96fd368ff03e218ce4d9e",
766+
"roadmap": "SPECIFICATIONS_ROADMAP.md:265ab18c2e4e40b44c53e6c2",
767+
"readme": "README.md:c3d54908be1513348a80fce9",
768+
"protocolReadme": "packages/protocol/README.md:32f06e276fcd832dd7b87195",
769+
"packageJson": "package.json:7a1928fa7ee07cb9e5a0ccea",
770+
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:e599b8492c1b1889903c105c",
771+
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:23259d5fe5601792812544f3",
772+
"packageIndex": "packages/protocol/src/index.js:6d944931866655f14635448d",
773+
"packageTypes": "packages/protocol/src/index.d.ts:fc425e096922043863600369",
774774
"packageSource": "packages/protocol/src/canonical/v44-economic-domain-model.js:21b8f5c80ad8322dff2909ed",
775775
"packageTest": "packages/protocol/test/v44-economic-domain-model.test.js:b89f71aa0cf578dabbec3cd9",
776776
"generator": "scripts/generate-v44-economic-domain-model.mjs:3390fbc087e919bedb14550c",
Lines changed: 302 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,302 @@
1+
{
2+
"artifactId": "v44-packs-portfolio-market-intelligence",
3+
"schemaId": "bitcode.v44.packsPortfolioMarketIntelligence.v1",
4+
"version": "V44",
5+
"currentTarget": "V43",
6+
"sourceSafetyVerdict": "source-safe-packs-portfolio-market-intelligence-metadata",
7+
"generatedAt": "deterministic",
8+
"artifactRoot": "v44-packs-portfolio-market-intelligence:4f9b4a7ab99f67bcc65e6701",
9+
"passed": true,
10+
"portfolioViewIds": [
11+
"enterprise-pack-portfolio",
12+
"pack-portfolio-position",
13+
"saved-filter-preset",
14+
"organization-view",
15+
"proof-root-drilldown"
16+
],
17+
"marketSignalIds": [
18+
"demand",
19+
"supply",
20+
"unfit-need",
21+
"settlement",
22+
"compensation",
23+
"delivery",
24+
"repair"
25+
],
26+
"marketFacetIds": [
27+
"settlementState",
28+
"compensationState",
29+
"deliveryState",
30+
"repairState",
31+
"repository",
32+
"type",
33+
"state"
34+
],
35+
"forbiddenPayloadIds": [
36+
"protected-source-payloads",
37+
"unpaid-assetpack-source",
38+
"source-snippets",
39+
"raw-prompts",
40+
"interpolated-prompts",
41+
"raw-provider-responses",
42+
"credentials",
43+
"wallet-private-material",
44+
"private-settlement-payloads"
45+
],
46+
"rows": [
47+
{
48+
"rowId": "portfolio-position-projection",
49+
"owner": "uapi/components/base/bitcode/activity/pack-activity-model.ts",
50+
"contract": "PackPortfolioPositionProjection groups source-safe PackActivity rows into enterprise portfolio positions with BTD estimates, sats values, signal counts, proof counts, and state readback.",
51+
"requiredFields": [
52+
"assetPackTitle",
53+
"repository",
54+
"activityCount",
55+
"valueTotalSats",
56+
"btdEstimate",
57+
"proofRootCount"
58+
],
59+
"rowRoot": "v44-packs-portfolio-market-row:d79157690ecee393a831ecfb",
60+
"sourceSafeMetadataOnly": true,
61+
"protectedSourceVisible": false,
62+
"unpaidAssetPackSourceVisible": false
63+
},
64+
{
65+
"rowId": "market-signal-projection",
66+
"owner": "uapi/components/base/bitcode/activity/pack-activity-model.ts",
67+
"contract": "PackMarketSignalProjection exposes demand, supply, unfit-Need, settlement, compensation, delivery, and repair signals without source-bearing payloads.",
68+
"requiredFields": [
69+
"kind",
70+
"strength",
71+
"state",
72+
"relatedRecordIds",
73+
"proofRoots"
74+
],
75+
"rowRoot": "v44-packs-portfolio-market-row:c568a5c63f0c4fcf639451f5",
76+
"sourceSafeMetadataOnly": true,
77+
"protectedSourceVisible": false,
78+
"unpaidAssetPackSourceVisible": false
79+
},
80+
{
81+
"rowId": "saved-filter-presets",
82+
"owner": "uapi/app/packs/PacksPageClient.tsx",
83+
"contract": "/packs renders saved source-safe filters for repair cases, demand signals, supply signals, settlement facets, and compensation facets.",
84+
"requiredFields": [
85+
"savedFilters",
86+
"writeParams",
87+
"Settlement facets",
88+
"Compensation facets"
89+
],
90+
"rowRoot": "v44-packs-portfolio-market-row:e93081a5971fe563f6d6fc69",
91+
"sourceSafeMetadataOnly": true,
92+
"protectedSourceVisible": false,
93+
"unpaidAssetPackSourceVisible": false
94+
},
95+
{
96+
"rowId": "portfolio-market-api",
97+
"owner": "uapi/app/api/packs/activity/route.ts",
98+
"contract": "/api/packs/activity returns marketIntelligence beside records, detail, summary, query, and sourceSafety.",
99+
"requiredFields": [
100+
"marketIntelligence",
101+
"buildPackPortfolioMarketIntelligence",
102+
"sourceSafety"
103+
],
104+
"rowRoot": "v44-packs-portfolio-market-row:6a64c79cfe3b6713d2641fa4",
105+
"sourceSafeMetadataOnly": true,
106+
"protectedSourceVisible": false,
107+
"unpaidAssetPackSourceVisible": false
108+
}
109+
],
110+
"sourceRoots": {
111+
"activePointer": "BITCODE_SPEC.txt:4ea77b214c66f69c697bff3d",
112+
"spec": "BITCODE_SPEC_V44.md:61a14ac02f93d45980135444",
113+
"delta": "BITCODE_SPEC_V44_DELTA.md:8e456398e6b8f70ce1c79bf6",
114+
"notes": "BITCODE_SPEC_V44_NOTES.md:427bff37cf91930869a4ec4b",
115+
"parity": "BITCODE_SPEC_V44_PARITY_MATRIX.md:95b96fd368ff03e218ce4d9e",
116+
"roadmap": "SPECIFICATIONS_ROADMAP.md:265ab18c2e4e40b44c53e6c2",
117+
"readme": "README.md:c3d54908be1513348a80fce9",
118+
"protocolReadme": "packages/protocol/README.md:32f06e276fcd832dd7b87195",
119+
"packageJson": "package.json:7a1928fa7ee07cb9e5a0ccea",
120+
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:e599b8492c1b1889903c105c",
121+
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:23259d5fe5601792812544f3",
122+
"economicModel": "packages/protocol/src/canonical/v44-economic-domain-model.js:21b8f5c80ad8322dff2909ed",
123+
"model": "uapi/components/base/bitcode/activity/pack-activity-model.ts:77058cc82039a3bd1b7514bf",
124+
"route": "uapi/app/api/packs/activity/route.ts:97c5a4539d48562eb5de66e8",
125+
"client": "uapi/app/packs/PacksPageClient.tsx:b70aa97a8022a9c42995a030",
126+
"uapiTest": "uapi/tests/packActivityModel.test.ts:541e71f2806dc1497379d0f1",
127+
"packageIndex": "packages/protocol/src/index.js:6d944931866655f14635448d",
128+
"packageTypes": "packages/protocol/src/index.d.ts:fc425e096922043863600369",
129+
"packageTest": "packages/protocol/test/v44-packs-portfolio-market-intelligence.test.js:ea02fa03d210e6480036fc0f",
130+
"generator": "scripts/generate-v44-packs-portfolio-market-intelligence.mjs:c106ef7138e3a330d405bec2",
131+
"checker": "scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs:0de0b87cbc96bb307cc1533a"
132+
},
133+
"predicateResults": [
134+
{
135+
"id": "active-canon-pointer-remains-v43",
136+
"sourcePath": "BITCODE_SPEC.txt",
137+
"passed": true
138+
},
139+
{
140+
"id": "spec-defines-gate3",
141+
"sourcePath": "BITCODE_SPEC_V44.md",
142+
"passed": true
143+
},
144+
{
145+
"id": "spec-names-gate3-artifact",
146+
"sourcePath": "BITCODE_SPEC_V44.md",
147+
"passed": true
148+
},
149+
{
150+
"id": "delta-records-gate3",
151+
"sourcePath": "BITCODE_SPEC_V44_DELTA.md",
152+
"passed": true
153+
},
154+
{
155+
"id": "notes-records-gate3",
156+
"sourcePath": "BITCODE_SPEC_V44_NOTES.md",
157+
"passed": true
158+
},
159+
{
160+
"id": "parity-records-gate3",
161+
"sourcePath": "BITCODE_SPEC_V44_PARITY_MATRIX.md",
162+
"passed": true
163+
},
164+
{
165+
"id": "roadmap-records-gate3",
166+
"sourcePath": "SPECIFICATIONS_ROADMAP.md",
167+
"passed": true
168+
},
169+
{
170+
"id": "readme-records-gate3",
171+
"sourcePath": "README.md",
172+
"passed": true
173+
},
174+
{
175+
"id": "protocol-readme-records-gate3",
176+
"sourcePath": "packages/protocol/README.md",
177+
"passed": true
178+
},
179+
{
180+
"id": "economic-model-prerequisite-present",
181+
"sourcePath": "packages/protocol/src/canonical/v44-economic-domain-model.js",
182+
"passed": true
183+
},
184+
{
185+
"id": "model-defines-market-intelligence",
186+
"sourcePath": "uapi/components/base/bitcode/activity/pack-activity-model.ts",
187+
"passed": true
188+
},
189+
{
190+
"id": "model-defines-saved-filters",
191+
"sourcePath": "uapi/components/base/bitcode/activity/pack-activity-model.ts",
192+
"passed": true
193+
},
194+
{
195+
"id": "model-defines-market-signals",
196+
"sourcePath": "uapi/components/base/bitcode/activity/pack-activity-model.ts",
197+
"passed": true
198+
},
199+
{
200+
"id": "model-defines-facets",
201+
"sourcePath": "uapi/components/base/bitcode/activity/pack-activity-model.ts",
202+
"passed": true
203+
},
204+
{
205+
"id": "api-returns-market-intelligence",
206+
"sourcePath": "uapi/app/api/packs/activity/route.ts",
207+
"passed": true
208+
},
209+
{
210+
"id": "client-renders-portfolio-positions",
211+
"sourcePath": "uapi/app/packs/PacksPageClient.tsx",
212+
"passed": true
213+
},
214+
{
215+
"id": "client-renders-market-signals",
216+
"sourcePath": "uapi/app/packs/PacksPageClient.tsx",
217+
"passed": true
218+
},
219+
{
220+
"id": "client-renders-saved-filters",
221+
"sourcePath": "uapi/app/packs/PacksPageClient.tsx",
222+
"passed": true
223+
},
224+
{
225+
"id": "client-renders-facet-filters",
226+
"sourcePath": "uapi/app/packs/PacksPageClient.tsx",
227+
"passed": true
228+
},
229+
{
230+
"id": "uapi-test-covers-gate3-model",
231+
"sourcePath": "uapi/tests/packActivityModel.test.ts",
232+
"passed": true
233+
},
234+
{
235+
"id": "package-test-covers-gate3",
236+
"sourcePath": "packages/protocol/test/v44-packs-portfolio-market-intelligence.test.js",
237+
"passed": true
238+
},
239+
{
240+
"id": "package-exports-gate3",
241+
"sourcePath": "packages/protocol/src/index.js",
242+
"passed": true
243+
},
244+
{
245+
"id": "package-types-export-gate3",
246+
"sourcePath": "packages/protocol/src/index.d.ts",
247+
"passed": true
248+
},
249+
{
250+
"id": "package-json-exposes-gate3",
251+
"sourcePath": "package.json",
252+
"passed": true
253+
},
254+
{
255+
"id": "gate-workflow-runs-gate3",
256+
"sourcePath": ".github/workflows/bitcode-gate-quality.yml",
257+
"passed": true
258+
},
259+
{
260+
"id": "canon-workflow-runs-gate3",
261+
"sourcePath": ".github/workflows/bitcode-canon-quality.yml",
262+
"passed": true
263+
},
264+
{
265+
"id": "generator-exists",
266+
"sourcePath": "scripts/generate-v44-packs-portfolio-market-intelligence.mjs",
267+
"passed": true
268+
},
269+
{
270+
"id": "checker-exists",
271+
"sourcePath": "scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs",
272+
"passed": true
273+
}
274+
],
275+
"coverage": {
276+
"portfolioPositionsImplemented": true,
277+
"savedFiltersImplemented": true,
278+
"organizationViewsImplemented": true,
279+
"marketSignalsImplemented": true,
280+
"unfitNeedSignalsImplemented": true,
281+
"settlementFacetsImplemented": true,
282+
"compensationFacetsImplemented": true,
283+
"proofRootDrilldownImplemented": true,
284+
"apiProjectionImplemented": true,
285+
"uiProjectionImplemented": true,
286+
"noSourceLeakTestsImplemented": true,
287+
"sourceSafeMetadataOnly": true,
288+
"protectedSourceVisible": false,
289+
"rawSourceTextVisible": false,
290+
"sourceSnippetVisible": false,
291+
"rawPromptVisible": false,
292+
"interpolatedPromptVisible": false,
293+
"rawProviderResponseVisible": false,
294+
"unpaidAssetPackSourceVisible": false,
295+
"credentialsSerialized": false,
296+
"walletPrivateMaterialVisible": false,
297+
"settlementPrivatePayloadVisible": false,
298+
"requiredPredicateCount": 28,
299+
"passedPredicateCount": 28,
300+
"failedPredicateIds": []
301+
}
302+
}

.github/workflows/bitcode-canon-quality.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,9 @@ jobs:
367367
if [ -f scripts/check-v44-gate2-economic-domain-model.mjs ]; then
368368
node scripts/check-v44-gate2-economic-domain-model.mjs --skip-branch-check --skip-package-tests
369369
fi
370+
if [ -f scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs ]; then
371+
node scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
372+
fi
370373
fi
371374
else
372375
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2

.github/workflows/bitcode-gate-quality.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,9 @@ jobs:
496496
if [ -f scripts/check-v44-gate2-economic-domain-model.mjs ]; then
497497
node scripts/check-v44-gate2-economic-domain-model.mjs --skip-branch-check --skip-package-tests
498498
fi
499+
if [ -f scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs ]; then
500+
node scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
501+
fi
499502
fi
500503
else
501504
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
@@ -534,6 +537,9 @@ jobs:
534537
if [ "$POINTER" = "V43" ] && [ -f scripts/check-v44-gate2-economic-domain-model.mjs ]; then
535538
node scripts/check-v44-gate2-economic-domain-model.mjs --skip-branch-check --skip-package-tests
536539
fi
540+
if [ "$POINTER" = "V43" ] && [ -f scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs ]; then
541+
node scripts/check-v44-gate3-packs-portfolio-market-intelligence.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests
542+
fi
537543
if [ "$POINTER" != "V43" ]; then
538544
if [ -f scripts/check-v43-gate1-packs-read-deposit-roadmap.mjs ]; then
539545
node scripts/check-v43-gate1-packs-read-deposit-roadmap.mjs --skip-branch-check

0 commit comments

Comments
 (0)