freshcontext-mcp 0.3.20 → 0.3.22
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/README.md +55 -9
- package/SECURITY.md +9 -7
- package/dist/adapters/arxiv.d.ts +15 -0
- package/dist/adapters/arxiv.js +1 -1
- package/dist/adapters/changelog.d.ts +2 -0
- package/dist/adapters/finance.d.ts +2 -0
- package/dist/adapters/finance.js +1 -1
- package/dist/adapters/gdelt.d.ts +2 -0
- package/dist/adapters/gdelt.js +1 -1
- package/dist/adapters/gebiz.d.ts +2 -0
- package/dist/adapters/gebiz.js +1 -1
- package/dist/adapters/github.d.ts +2 -0
- package/dist/adapters/govcontracts.d.ts +2 -0
- package/dist/adapters/hackernews.d.ts +2 -0
- package/dist/adapters/jobs.d.ts +2 -0
- package/dist/adapters/jobs.js +6 -6
- package/dist/adapters/packageTrends.d.ts +2 -0
- package/dist/adapters/productHunt.d.ts +2 -0
- package/dist/adapters/reddit.d.ts +8 -0
- package/dist/adapters/reddit.js +1 -1
- package/dist/adapters/registry.d.ts +19 -0
- package/dist/adapters/repoSearch.d.ts +2 -0
- package/dist/adapters/repoSearch.js +1 -1
- package/dist/adapters/scholar.d.ts +2 -0
- package/dist/adapters/secFilings.d.ts +2 -0
- package/dist/adapters/secFilings.js +1 -1
- package/dist/adapters/yc.d.ts +2 -0
- package/dist/core/decay.d.ts +5 -0
- package/dist/core/decision.d.ts +3 -0
- package/dist/core/decision.js +1 -3
- package/dist/core/envelope.d.ts +5 -0
- package/dist/core/explain.d.ts +12 -0
- package/dist/core/guards.d.ts +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.js +2 -0
- package/dist/core/pipeline.d.ts +3 -0
- package/dist/core/pipeline.js +8 -0
- package/dist/core/provenance.d.ts +5 -0
- package/dist/core/provenanceReadiness.d.ts +2 -0
- package/dist/core/provenanceReadiness.js +220 -0
- package/dist/core/rank.d.ts +4 -0
- package/dist/core/readable.d.ts +2 -0
- package/dist/core/readable.js +75 -0
- package/dist/core/signal.d.ts +3 -0
- package/dist/core/sourceProfiles.d.ts +4 -0
- package/dist/core/sourceProfiles.js +20 -0
- package/dist/core/types.d.ts +239 -0
- package/dist/core/utility.d.ts +2 -0
- package/dist/rest/handler.d.ts +1 -0
- package/dist/security.d.ts +15 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.js +2 -2
- package/dist/tools/evaluateContext.d.ts +21 -0
- package/dist/tools/evaluateContext.js +3 -1
- package/dist/tools/freshnessStamp.d.ts +1 -0
- package/dist/types.d.ts +1 -0
- package/docs/API_DESIGN.md +28 -1
- package/docs/CLIENT_SETUP.md +4 -4
- package/docs/CODEX_MCP_USAGE.md +3 -3
- package/docs/CORE_API.md +79 -15
- package/docs/CORE_MCP_BOUNDARY.md +13 -4
- package/docs/FUTURE_LANES.md +43 -43
- package/docs/HUMAN_READABLE_OUTPUT_CONTRACT.md +293 -0
- package/docs/RELEASE_NOTES.md +49 -5
- package/docs/SIGNAL_CONTRACT.md +215 -213
- package/docs/SOURCE_PROFILES.md +69 -24
- package/package-script-guard.mjs +84 -75
- package/package.json +16 -1
- package/server.json +2 -2
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { FreshContext, ExtractOptions, AdapterResult } from "./core/types.js";
|
package/docs/API_DESIGN.md
CHANGED
|
@@ -12,7 +12,7 @@ The REST host should expose the simplest useful path:
|
|
|
12
12
|
|
|
13
13
|
1. User has raw retrieved signals.
|
|
14
14
|
2. User sends those signals to FreshContext.
|
|
15
|
-
3. Core evaluates freshness, confidence, ranking, explanation, optional envelope, and optional provenance.
|
|
15
|
+
3. Core evaluates freshness, confidence, ranking, explanation, provenance readiness, optional envelope, and optional provenance.
|
|
16
16
|
4. Host returns ranked context.
|
|
17
17
|
5. Agent or app uses best context first.
|
|
18
18
|
|
|
@@ -122,6 +122,27 @@ Shape: `CoreSignalEvaluationResult`.
|
|
|
122
122
|
"reason": "Strong semantic match and current freshness for blog."
|
|
123
123
|
},
|
|
124
124
|
"explanation": "Strong semantic match and current freshness for blog.",
|
|
125
|
+
"provenance_readiness": {
|
|
126
|
+
"state": "complete",
|
|
127
|
+
"source_identity": {
|
|
128
|
+
"source": "https://example.com/article",
|
|
129
|
+
"source_type": "blog",
|
|
130
|
+
"result_id": "sig_001",
|
|
131
|
+
"completeness": "complete"
|
|
132
|
+
},
|
|
133
|
+
"source_type": "blog",
|
|
134
|
+
"published_at": "2026-05-24T12:00:00.000Z",
|
|
135
|
+
"retrieved_at": "2026-05-24T13:00:00.000Z",
|
|
136
|
+
"timing_confidence": "high",
|
|
137
|
+
"timing_completeness": "complete",
|
|
138
|
+
"canonical_content_sha256": "abc123...",
|
|
139
|
+
"semantic_fingerprint_sha256": null,
|
|
140
|
+
"ha_pri_v2": null,
|
|
141
|
+
"warnings": [],
|
|
142
|
+
"reasons": [
|
|
143
|
+
"semantic fingerprint was not provided"
|
|
144
|
+
]
|
|
145
|
+
},
|
|
125
146
|
"envelope": {
|
|
126
147
|
"context": {},
|
|
127
148
|
"text": "[FRESHCONTEXT]...",
|
|
@@ -131,6 +152,8 @@ Shape: `CoreSignalEvaluationResult`.
|
|
|
131
152
|
}
|
|
132
153
|
```
|
|
133
154
|
|
|
155
|
+
`provenance_readiness` is always a Core judgment sidecar. It classifies source identity and timing completeness. It must not be used by the REST host to fetch, verify truth, reject context by policy, or change ranking.
|
|
156
|
+
|
|
134
157
|
The REST host must not fetch upstream data, cache results, write D1, enforce Ha-Pri, or alter ranking policy.
|
|
135
158
|
|
|
136
159
|
## POST /v1/evaluate-batch
|
|
@@ -181,6 +204,9 @@ Evaluates and ranks multiple signals.
|
|
|
181
204
|
"final_score": 0.85
|
|
182
205
|
},
|
|
183
206
|
"explanation": "Strong semantic match and current freshness for blog.",
|
|
207
|
+
"provenance_readiness": {
|
|
208
|
+
"state": "complete"
|
|
209
|
+
},
|
|
184
210
|
"reasons": []
|
|
185
211
|
}
|
|
186
212
|
]
|
|
@@ -342,6 +368,7 @@ Core owns:
|
|
|
342
368
|
- timestamp/future-date/failure guards
|
|
343
369
|
- freshness scoring
|
|
344
370
|
- context utility sidecar
|
|
371
|
+
- provenance readiness sidecar
|
|
345
372
|
- default rank/explain behavior
|
|
346
373
|
- optional envelope generation
|
|
347
374
|
- optional Ha-Pri v2 material preparation
|
package/docs/CLIENT_SETUP.md
CHANGED
|
@@ -6,7 +6,7 @@ Use this guide when connecting Claude Desktop, Codex, or another MCP-compatible
|
|
|
6
6
|
|
|
7
7
|
## What You Should See
|
|
8
8
|
|
|
9
|
-
FreshContext `0.3.
|
|
9
|
+
FreshContext `0.3.22` exposes:
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
12
|
22 tools = evaluate_context + 21 read-only reference adapters
|
|
@@ -105,8 +105,8 @@ Expected smoke result:
|
|
|
105
105
|
```json
|
|
106
106
|
{
|
|
107
107
|
"ok": true,
|
|
108
|
-
"package_version": "0.3.
|
|
109
|
-
"server_version": "0.3.
|
|
108
|
+
"package_version": "0.3.22",
|
|
109
|
+
"server_version": "0.3.22",
|
|
110
110
|
"tool_count": 22
|
|
111
111
|
}
|
|
112
112
|
```
|
|
@@ -132,7 +132,7 @@ Some clients can use `mcp-remote`:
|
|
|
132
132
|
}
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
-
The npm/local stdio package remains the safest default client path. The hosted Worker endpoint was verified on 2026-06-
|
|
135
|
+
The npm/local stdio package remains the safest default client path. The hosted Worker endpoint was last verified on 2026-06-14 at `0.3.21 / 22 tools` with `evaluate_context` present and returning decision-first output, including `provenance_readiness`, `readable`, and `readable.handoff`. Because the Worker is a separate deployment surface, re-run remote verification before claiming future package interfaces are live there.
|
|
136
136
|
|
|
137
137
|
## ChatGPT / OpenAI Connector Boundary
|
|
138
138
|
|
package/docs/CODEX_MCP_USAGE.md
CHANGED
|
@@ -67,7 +67,7 @@ command = "npx"
|
|
|
67
67
|
args = ["-y", "mcp-remote", "https://freshcontext-mcp.gimmanuel73.workers.dev/mcp"]
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
This remote path was verified on 2026-06-
|
|
70
|
+
This remote path was last verified on 2026-06-14 as a live Worker MCP endpoint exposing `0.3.21 / 22 tools`, including `evaluate_context`, `provenance_readiness`, `readable`, and `readable.handoff`. That confirms Worker availability and MCP tool discovery. It does not by itself claim Codex Cloud support or guarantee every MCP client can use the remote bridge without its own client-specific setup check.
|
|
71
71
|
|
|
72
72
|
## Verification steps
|
|
73
73
|
|
|
@@ -83,8 +83,8 @@ Expected result:
|
|
|
83
83
|
```json
|
|
84
84
|
{
|
|
85
85
|
"ok": true,
|
|
86
|
-
"package_version": "0.3.
|
|
87
|
-
"server_version": "0.3.
|
|
86
|
+
"package_version": "0.3.22",
|
|
87
|
+
"server_version": "0.3.22",
|
|
88
88
|
"tool_count": 22
|
|
89
89
|
}
|
|
90
90
|
```
|
package/docs/CORE_API.md
CHANGED
|
@@ -13,14 +13,21 @@ Import stable Core functions from:
|
|
|
13
13
|
```ts
|
|
14
14
|
import {
|
|
15
15
|
calculateFreshnessScore,
|
|
16
|
+
evaluateSignals,
|
|
16
17
|
formatForLLM,
|
|
18
|
+
getSourceProfile,
|
|
19
|
+
interpretEvaluations,
|
|
17
20
|
looksLikeFailedAdapterContent,
|
|
21
|
+
normalizeSignal,
|
|
22
|
+
prepareProvenanceReadiness,
|
|
18
23
|
scoreLabel,
|
|
19
24
|
stampFreshness,
|
|
20
25
|
toStructuredJSON,
|
|
21
|
-
} from "
|
|
26
|
+
} from "freshcontext-mcp/core";
|
|
22
27
|
```
|
|
23
28
|
|
|
29
|
+
The `freshcontext-mcp/core` subpath is the direct Core import boundary inside the current MCP package. It does not create a standalone `freshcontext-core` package yet; that remains a future package-split lane.
|
|
30
|
+
|
|
24
31
|
### Envelope
|
|
25
32
|
|
|
26
33
|
- `stampFreshness(result, options, adapter)` creates a `FreshContext` object from adapter output.
|
|
@@ -55,7 +62,7 @@ It does not fetch, cache, write D1, inspect Worker bindings, know MCP tool schem
|
|
|
55
62
|
|
|
56
63
|
`evaluateSignals` evaluates each input and returns evaluations sorted by existing `rankSignal` final score, preserving input order when scores tie. Context utility is returned as a sidecar and does not replace `final_score`.
|
|
57
64
|
|
|
58
|
-
Context utility is returned as sidecar output in the current pipeline
|
|
65
|
+
Context utility is returned as sidecar output in the current pipeline. It does not replace or modify the default `rankSignal` / `evaluateSignals` ordering, and it does not control default decision labels. A future pass may add an explicit utility-weighted ranking or decision-support mode.
|
|
59
66
|
|
|
60
67
|
Local demo:
|
|
61
68
|
|
|
@@ -76,9 +83,9 @@ The demo reads caller-provided JSON with `profile`, `intent`, and `signals`, the
|
|
|
76
83
|
|
|
77
84
|
These types describe the stable envelope and adapter result contract.
|
|
78
85
|
|
|
79
|
-
## Signal Contract v1
|
|
80
|
-
|
|
81
|
-
Signal Contract v1 is the current FreshContext input standard: the stable shape for candidate context before it is ranked, wrapped, stored, judged by `evaluate_context`, or passed to an agent workflow.
|
|
86
|
+
## Signal Contract v1
|
|
87
|
+
|
|
88
|
+
Signal Contract v1 is the current FreshContext input standard: the stable shape for candidate context before it is ranked, wrapped, stored, judged by `evaluate_context`, or passed to an agent workflow.
|
|
82
89
|
|
|
83
90
|
Public exports:
|
|
84
91
|
|
|
@@ -90,11 +97,11 @@ Public exports:
|
|
|
90
97
|
- `SignalContractVersion`
|
|
91
98
|
- `SignalNormalizeOptions`
|
|
92
99
|
|
|
93
|
-
`published_at` is the canonical signal timestamp. `content_date` is accepted as an adapter/envelope compatibility alias. Normalization clears invalid or meaningfully future-dated timestamps, marks failed/error-looking content as `status: "failed"`, clamps `semantic_score` into `0..1`, and records normalization reasons.
|
|
94
|
-
|
|
95
|
-
Future context signals and control signals are optional future metadata layers, not replacements for Signal Contract v1 and not required public input fields today.
|
|
96
|
-
|
|
97
|
-
See [Signal Contract v1](./SIGNAL_CONTRACT.md).
|
|
100
|
+
`published_at` is the canonical signal timestamp. `content_date` is accepted as an adapter/envelope compatibility alias. Normalization clears invalid or meaningfully future-dated timestamps, marks failed/error-looking content as `status: "failed"`, clamps `semantic_score` into `0..1`, and records normalization reasons.
|
|
101
|
+
|
|
102
|
+
Future context signals and control signals are optional future metadata layers, not replacements for Signal Contract v1 and not required public input fields today.
|
|
103
|
+
|
|
104
|
+
See [Signal Contract v1](./SIGNAL_CONTRACT.md).
|
|
98
105
|
|
|
99
106
|
## Source Profiles
|
|
100
107
|
|
|
@@ -112,9 +119,11 @@ Public exports:
|
|
|
112
119
|
- `SourceFailurePolicy`
|
|
113
120
|
- `SourceSurface`
|
|
114
121
|
|
|
115
|
-
They reframe the 21 named adapter tools as reference adapters and source-profile examples instead of the product identity. The MCP server also exposes `evaluate_context` as the generic caller-provided context evaluation path. Source Profiles do not implement `retrieve(...)`, Operator mode, adapter selection, crawling, local file search, or any host/runtime behavior.
|
|
116
|
-
|
|
117
|
-
|
|
122
|
+
They reframe the 21 named adapter tools as reference adapters and source-profile examples instead of the product identity. The MCP server also exposes `evaluate_context` as the generic caller-provided context evaluation path. Source Profiles do not implement `retrieve(...)`, Operator mode, adapter selection, crawling, local file search, or any host/runtime behavior.
|
|
123
|
+
|
|
124
|
+
Current built-in profiles include canonical docs, code activity, social pulse, academic research, market/finance, jobs, government/regulatory material, company intelligence, product research, composite landscapes, multi-agent handoff context, and local/custom caller-provided context.
|
|
125
|
+
|
|
126
|
+
## Decision Helper
|
|
118
127
|
|
|
119
128
|
The decision helper translates a Core evaluation result into user-facing action meaning.
|
|
120
129
|
|
|
@@ -154,6 +163,51 @@ FreshContext decisions judge citation readiness, context usefulness, freshness,
|
|
|
154
163
|
|
|
155
164
|
Demo output will be updated separately so presentation stays separate from Core decision logic.
|
|
156
165
|
|
|
166
|
+
## Human-Readable Output
|
|
167
|
+
|
|
168
|
+
The human-readable output helper adds a small reader-facing layer on top of existing Core evaluations and decisions.
|
|
169
|
+
|
|
170
|
+
Public exports:
|
|
171
|
+
|
|
172
|
+
- `toReadableContextResult(evaluation, decision)`
|
|
173
|
+
- `HumanReadableContextResult`
|
|
174
|
+
|
|
175
|
+
The helper returns a bounded object with:
|
|
176
|
+
|
|
177
|
+
- `label`
|
|
178
|
+
- `summary`
|
|
179
|
+
- `why`
|
|
180
|
+
- `action`
|
|
181
|
+
- `warnings`
|
|
182
|
+
|
|
183
|
+
This is additive. It does not change machine decisions, ranking, freshness math, utility math, Source Profiles, envelopes, provenance, or host behavior. Utility may appear in `why` when it is already part of the decision reasons, but utility still does not control default decision labels.
|
|
184
|
+
|
|
185
|
+
Example structured result fragment:
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"decision": "cite_as_primary",
|
|
190
|
+
"label": "Cite as primary",
|
|
191
|
+
"readable": {
|
|
192
|
+
"label": "Primary source",
|
|
193
|
+
"summary": "This source is strong enough to use as main evidence.",
|
|
194
|
+
"why": [
|
|
195
|
+
"Strong semantic match and current freshness for arxiv.",
|
|
196
|
+
"source profile academic_research uses lenient date policy",
|
|
197
|
+
"intent profile citation_check selected"
|
|
198
|
+
],
|
|
199
|
+
"action": "Use this as main evidence while preserving citation and provenance.",
|
|
200
|
+
"warnings": [
|
|
201
|
+
"FreshContext judges citation readiness and context usefulness; it does not certify truth."
|
|
202
|
+
]
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
FreshContext does not certify truth. It records why context was used, supported, questioned, refreshed, watched, or excluded before it reaches a model.
|
|
208
|
+
|
|
209
|
+
See [Human-Readable Output Contract](./HUMAN_READABLE_OUTPUT_CONTRACT.md).
|
|
210
|
+
|
|
157
211
|
## Public Ranking Primitives
|
|
158
212
|
|
|
159
213
|
The ranking primitives are public, but consumers should treat their score scales carefully:
|
|
@@ -175,7 +229,7 @@ Ranking combines semantic relevance and freshness into a deterministic order. It
|
|
|
175
229
|
|
|
176
230
|
## Experimental Utility Primitive
|
|
177
231
|
|
|
178
|
-
The context-conditioned utility primitive is pure and tested
|
|
232
|
+
The context-conditioned utility primitive is pure and tested. It is surfaced in Core evaluation output and decision reasons, but it does not control default ranking or decision labels.
|
|
179
233
|
|
|
180
234
|
Experimental exports:
|
|
181
235
|
|
|
@@ -184,7 +238,7 @@ Experimental exports:
|
|
|
184
238
|
- `ContextUtilityInput`
|
|
185
239
|
- `ContextUtilityResult`
|
|
186
240
|
|
|
187
|
-
These are pure Core math. They are now connected inside `evaluateSignal` as sidecar utility output, but they are not production-wired into MCP ranking, Worker feeds, Store scoring, or
|
|
241
|
+
These are pure Core math. They are now connected inside `evaluateSignal` as sidecar utility output and explanatory material, but they are not production-wired into MCP ranking, Worker feeds, Store scoring, or default decision thresholds.
|
|
188
242
|
|
|
189
243
|
## Provenance Helpers
|
|
190
244
|
|
|
@@ -200,6 +254,16 @@ Ha-Pri v2 is available as pure Core helper functionality:
|
|
|
200
254
|
|
|
201
255
|
`evaluateSignal` can optionally prepare Ha-Pri v2 material when `includeProvenance` is set and required input material is present. Core does not persist provenance, add D1 columns, verify rows on read, reject rows, or replace Worker Ha-Pri v1 behavior.
|
|
202
256
|
|
|
257
|
+
Provenance readiness is available as a pure Core sidecar:
|
|
258
|
+
|
|
259
|
+
- `prepareProvenanceReadiness(input, options?)`
|
|
260
|
+
- `ProvenanceReadinessState`
|
|
261
|
+
- `ProvenanceReadinessResult`
|
|
262
|
+
|
|
263
|
+
It classifies caller-provided signal provenance as `complete`, `partial`, `incomplete`, `unknown`, or `derived`. The result exposes source identity completeness, timing completeness, normalized source and timestamp fields, canonical content hash material, optional semantic fingerprint hash material, optional Ha-Pri v2 identity material when the caller supplies enough inputs, warnings, and reasons.
|
|
264
|
+
|
|
265
|
+
`provenance_readiness` is included additively on `evaluateSignal` results and in the structured `evaluate_context` JSON result. It does not fetch, crawl, scrape, read folders, call adapters, change ranking, change decisions, certify truth, or enforce rejection policy.
|
|
266
|
+
|
|
203
267
|
## Internal, Policy, and Compatibility Exports
|
|
204
268
|
|
|
205
269
|
- `clampScore` is an internal ranking helper. It is currently exported for tests and utility use, but it should not be presented as a primary buyer-facing API.
|
|
@@ -50,18 +50,27 @@ Worker/site surfaces own deployment concerns:
|
|
|
50
50
|
|
|
51
51
|
Live today:
|
|
52
52
|
|
|
53
|
-
- npm package: `freshcontext-mcp@0.3.
|
|
53
|
+
- npm package: `freshcontext-mcp@0.3.21`
|
|
54
54
|
- MCP stdio server and published binary: `freshcontext-mcp`
|
|
55
|
+
- Core subpath export: `freshcontext-mcp/core`
|
|
55
56
|
- `evaluate_context` MCP tool for caller-provided candidate context
|
|
56
57
|
- 21 named read-only reference adapters
|
|
57
58
|
- Core signal evaluation
|
|
58
59
|
- Source Profiles
|
|
59
|
-
- Decision Helper
|
|
60
|
-
-
|
|
60
|
+
- Decision Helper
|
|
61
|
+
- human-readable `readable` output on structured `evaluate_context` results
|
|
62
|
+
- provenance readiness and readable handoff safety
|
|
63
|
+
- adapter registry metadata
|
|
61
64
|
- arXiv signal-to-decision proof
|
|
62
65
|
- bring-your-own-context local demos
|
|
63
66
|
- Trust Scanner release gate
|
|
64
67
|
|
|
68
|
+
Network boundary:
|
|
69
|
+
|
|
70
|
+
- `evaluate_context` does not fetch, crawl, scrape, browse, read folders, or call adapters.
|
|
71
|
+
- The 21 named reference adapters are optional read-only network tools and use network access only when invoked.
|
|
72
|
+
- FreshContext Core remains the no-network judgment layer.
|
|
73
|
+
|
|
65
74
|
Not live today:
|
|
66
75
|
|
|
67
76
|
- standalone Core npm package
|
|
@@ -78,7 +87,7 @@ Not live today:
|
|
|
78
87
|
The safe split path is staged:
|
|
79
88
|
|
|
80
89
|
1. Keep `freshcontext-mcp` stable for current users.
|
|
81
|
-
2. Maintain Core as a pure
|
|
90
|
+
2. Maintain Core as a pure package subpath export surface.
|
|
82
91
|
3. Audit Core dependencies, Node/browser compatibility, and API stability.
|
|
83
92
|
4. Publish a standalone Core package only after compatibility tests exist.
|
|
84
93
|
5. Make `freshcontext-mcp` depend on the standalone Core package.
|
package/docs/FUTURE_LANES.md
CHANGED
|
@@ -6,16 +6,16 @@ FreshContext is live today as an integrated MCP/Core package. Future work should
|
|
|
6
6
|
|
|
7
7
|
The current package boundary is documented in [Core / MCP Boundary](./CORE_MCP_BOUNDARY.md). Treat MCP as the first live host over FreshContext Core, not as the whole product identity.
|
|
8
8
|
|
|
9
|
-
## Current Live Boundary
|
|
10
|
-
|
|
11
|
-
Live today:
|
|
12
|
-
|
|
13
|
-
- npm package: `freshcontext-mcp@0.3.
|
|
14
|
-
- MCP stdio server
|
|
15
|
-
- `evaluate_context` MCP tool for caller-provided candidate context
|
|
16
|
-
- Signal Contract v1 as the stable candidate-context input shape
|
|
17
|
-
- 21 read-only reference adapters
|
|
18
|
-
- Core signal evaluation
|
|
9
|
+
## Current Live Boundary
|
|
10
|
+
|
|
11
|
+
Live today:
|
|
12
|
+
|
|
13
|
+
- npm package: `freshcontext-mcp@0.3.21`
|
|
14
|
+
- MCP stdio server
|
|
15
|
+
- `evaluate_context` MCP tool for caller-provided candidate context
|
|
16
|
+
- Signal Contract v1 as the stable candidate-context input shape
|
|
17
|
+
- 21 read-only reference adapters
|
|
18
|
+
- Core signal evaluation
|
|
19
19
|
- Source Profiles
|
|
20
20
|
- Decision Helper
|
|
21
21
|
- adapter registry metadata
|
|
@@ -30,32 +30,32 @@ Not live today:
|
|
|
30
30
|
- automatic local file, folder, or PDF scanning
|
|
31
31
|
- hosted dashboard or billing
|
|
32
32
|
- hard Ha-Pri v2 production enforcement
|
|
33
|
-
- standalone Core SDK package
|
|
34
|
-
- full adapter ingestion
|
|
35
|
-
|
|
36
|
-
## Phase 0: Stabilize The Signal Contract
|
|
37
|
-
|
|
38
|
-
Goal:
|
|
39
|
-
|
|
40
|
-
```text
|
|
41
|
-
Treat Signal Contract v1 as the stable input boundary for FreshContext.
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Current contract:
|
|
45
|
-
|
|
46
|
-
```text
|
|
47
|
-
title + content + source + source_type + published_at + retrieved_at + semantic_score
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
This is live today. It is not the same thing as future context signals or control signals.
|
|
51
|
-
|
|
52
|
-
Tasks in this lane should document examples, invalid-input behavior, and normalization expectations. Do not expand required fields unless tests prove the new metadata improves decisions.
|
|
53
|
-
|
|
54
|
-
Future context signals, control signals, ingestion quality signals, structure preservation signals, and provenance confidence signals belong to later Decision Layer upgrades. They should remain optional metadata, not public required fields.
|
|
55
|
-
|
|
56
|
-
## Lane 1: Client Setup Reliability
|
|
57
|
-
|
|
58
|
-
Goal:
|
|
33
|
+
- standalone Core SDK package
|
|
34
|
+
- full adapter ingestion
|
|
35
|
+
|
|
36
|
+
## Phase 0: Stabilize The Signal Contract
|
|
37
|
+
|
|
38
|
+
Goal:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
Treat Signal Contract v1 as the stable input boundary for FreshContext.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Current contract:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
title + content + source + source_type + published_at + retrieved_at + semantic_score
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
This is live today. It is not the same thing as future context signals or control signals.
|
|
51
|
+
|
|
52
|
+
Tasks in this lane should document examples, invalid-input behavior, and normalization expectations. Do not expand required fields unless tests prove the new metadata improves decisions.
|
|
53
|
+
|
|
54
|
+
Future context signals, control signals, ingestion quality signals, structure preservation signals, and provenance confidence signals belong to later Decision Layer upgrades. They should remain optional metadata, not public required fields.
|
|
55
|
+
|
|
56
|
+
## Lane 1: Client Setup Reliability
|
|
57
|
+
|
|
58
|
+
Goal:
|
|
59
59
|
|
|
60
60
|
```text
|
|
61
61
|
Make Claude, Codex, and MCP-compatible clients connect reliably to the published package.
|
|
@@ -134,19 +134,19 @@ Hard boundary:
|
|
|
134
134
|
Consent-first design. No automatic folder scanning or background file reading.
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
## Lane 6: Decision Layer Upgrade
|
|
138
|
-
|
|
139
|
-
Goal:
|
|
137
|
+
## Lane 6: Decision Layer Upgrade
|
|
138
|
+
|
|
139
|
+
Goal:
|
|
140
140
|
|
|
141
141
|
```text
|
|
142
142
|
Make decisions more useful without silently changing ranking.
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
-
Possible inputs include context utility, control signal, future context signal, ingestion quality, structure preservation, provenance confidence, confidence tiers, and source-profile-specific thresholds.
|
|
146
|
-
|
|
147
|
-
These are optional future metadata upgrades on top of Signal Contract v1. They should only be exposed when they make decisions clearer without making the caller-facing contract harder to use.
|
|
145
|
+
Possible inputs include context utility, control signal, future context signal, ingestion quality, structure preservation, provenance confidence, confidence tiers, and source-profile-specific thresholds.
|
|
146
|
+
|
|
147
|
+
These are optional future metadata upgrades on top of Signal Contract v1. They should only be exposed when they make decisions clearer without making the caller-facing contract harder to use.
|
|
148
148
|
|
|
149
|
-
Do not make `utility.score` affect ranking by default without a dedicated
|
|
149
|
+
Do not make `utility.score` affect ranking or decision labels by default without a dedicated policy pass.
|
|
150
150
|
|
|
151
151
|
## Lane 7: Ha-Pri v2 Production Path
|
|
152
152
|
|