@sentropic/focus 0.3.0 → 0.5.0-rc.10

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.
Files changed (97) hide show
  1. package/README.md +9 -0
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/editing/anchors.d.ts +14 -0
  4. package/dist/editing/anchors.d.ts.map +1 -0
  5. package/dist/editing/anchors.js +113 -0
  6. package/dist/editing/anchors.js.map +1 -0
  7. package/dist/editing/codec.d.ts +24 -0
  8. package/dist/editing/codec.d.ts.map +1 -0
  9. package/dist/editing/codec.js +143 -0
  10. package/dist/editing/codec.js.map +1 -0
  11. package/dist/editing/contract.d.ts +129 -0
  12. package/dist/editing/contract.d.ts.map +1 -0
  13. package/dist/editing/contract.js +76 -0
  14. package/dist/editing/contract.js.map +1 -0
  15. package/dist/editing/diff.d.ts +12 -0
  16. package/dist/editing/diff.d.ts.map +1 -0
  17. package/dist/editing/diff.js +125 -0
  18. package/dist/editing/diff.js.map +1 -0
  19. package/dist/editing/digest.d.ts +6 -0
  20. package/dist/editing/digest.d.ts.map +1 -0
  21. package/dist/editing/digest.js +56 -0
  22. package/dist/editing/digest.js.map +1 -0
  23. package/dist/editing/index.d.ts +7 -0
  24. package/dist/editing/index.d.ts.map +1 -0
  25. package/dist/editing/index.js +7 -0
  26. package/dist/editing/index.js.map +1 -0
  27. package/dist/editing/reconcile.d.ts +66 -0
  28. package/dist/editing/reconcile.d.ts.map +1 -0
  29. package/dist/editing/reconcile.js +167 -0
  30. package/dist/editing/reconcile.js.map +1 -0
  31. package/dist/editing/structure.d.ts +24 -0
  32. package/dist/editing/structure.d.ts.map +1 -0
  33. package/dist/editing/structure.js +71 -0
  34. package/dist/editing/structure.js.map +1 -0
  35. package/dist/index.d.ts +4 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/model.d.ts +144 -2
  40. package/dist/model.d.ts.map +1 -1
  41. package/dist/model.js +1 -1
  42. package/dist/model.js.map +1 -1
  43. package/dist/registry/definitions.d.ts +159 -0
  44. package/dist/registry/definitions.d.ts.map +1 -0
  45. package/dist/registry/definitions.js +509 -0
  46. package/dist/registry/definitions.js.map +1 -0
  47. package/dist/render/evidence.d.ts +10 -0
  48. package/dist/render/evidence.d.ts.map +1 -0
  49. package/dist/render/evidence.js +37 -0
  50. package/dist/render/evidence.js.map +1 -0
  51. package/dist/render/html.d.ts.map +1 -1
  52. package/dist/render/html.js +14 -1
  53. package/dist/render/html.js.map +1 -1
  54. package/dist/render/md.d.ts.map +1 -1
  55. package/dist/render/md.js +15 -1
  56. package/dist/render/md.js.map +1 -1
  57. package/dist/render/presentation.d.ts +4 -0
  58. package/dist/render/presentation.d.ts.map +1 -0
  59. package/dist/render/presentation.js +25 -0
  60. package/dist/render/presentation.js.map +1 -0
  61. package/dist/render/terminal.d.ts.map +1 -1
  62. package/dist/render/terminal.js +15 -1
  63. package/dist/render/terminal.js.map +1 -1
  64. package/dist/track/index.d.ts.map +1 -1
  65. package/dist/track/index.js +24 -10
  66. package/dist/track/index.js.map +1 -1
  67. package/dist/validation/evidence-bytes.d.ts +5 -0
  68. package/dist/validation/evidence-bytes.d.ts.map +1 -0
  69. package/dist/validation/evidence-bytes.js +57 -0
  70. package/dist/validation/evidence-bytes.js.map +1 -0
  71. package/dist/validation/evidence-shape.d.ts +12 -0
  72. package/dist/validation/evidence-shape.d.ts.map +1 -0
  73. package/dist/validation/evidence-shape.js +54 -0
  74. package/dist/validation/evidence-shape.js.map +1 -0
  75. package/dist/validation/evidence-sources.d.ts +7 -0
  76. package/dist/validation/evidence-sources.d.ts.map +1 -0
  77. package/dist/validation/evidence-sources.js +56 -0
  78. package/dist/validation/evidence-sources.js.map +1 -0
  79. package/dist/validation/evidence.d.ts +5 -0
  80. package/dist/validation/evidence.d.ts.map +1 -0
  81. package/dist/validation/evidence.js +131 -0
  82. package/dist/validation/evidence.js.map +1 -0
  83. package/dist/validation/index.d.ts +59 -0
  84. package/dist/validation/index.d.ts.map +1 -0
  85. package/dist/validation/index.js +500 -0
  86. package/dist/validation/index.js.map +1 -0
  87. package/dist/validation/readability.d.ts +28 -0
  88. package/dist/validation/readability.d.ts.map +1 -0
  89. package/dist/validation/readability.js +265 -0
  90. package/dist/validation/readability.js.map +1 -0
  91. package/package.json +36 -8
  92. package/registry/entries.v1.json +140 -0
  93. package/schemas/decision-dossier-document.v1.schema.json +193 -0
  94. package/schemas/decision-dossier-document.v2.schema.json +925 -0
  95. package/schemas/focus-edit-return.v1.schema.json +950 -0
  96. package/schemas/focus-editing-manifest.v1.schema.json +167 -0
  97. package/skills/focus/SKILL.md +181 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/editing/structure.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,10 +7,13 @@
7
7
  * `@sentropic/track/read` `DecisionDossierView` + `amendmentTrace` (L2 replaced L1's local
8
8
  * `DecisionDossierViewFixture` type + mapper).
9
9
  */
10
- export type { Affordance, AmendmentStep, AmendmentTraceNode, ComprehensionEvidence, DecisionDossierDocument, DiagramNode, DiagramSyntax, FocusNode, FocusProvenance, FocusRef, OptionAnnotationState, OptionNode, OptionSetNode, OutcomeModality, OutcomeNode, ProseNode, QuestionNode, QuestionValidationState, TargetRef, } from "./model.js";
10
+ export type { Affordance, AmendmentStep, AmendmentTraceNode, ComprehensionEvidence, DecisionDossierDocument, DecisionDossierDocumentV1, DecisionDossierDocumentV2, EvidenceSource, EvidenceCitation, EvidenceGroup, EvidenceAnnex, AnnexBlock, DiagramNode, DiagramSyntax, DossierReadability, FocusNode, FocusProvenance, FocusRef, GlossaryEntry, OptionAnnotationState, OptionNode, OptionSetNode, OutcomeModality, OutcomeNode, ProseNode, QuestionNode, QuestionValidationState, TargetRef, } from "./model.js";
11
+ export { isEvidenceDossier } from './model.js';
11
12
  export type { HtmlRenderHooks, MdRenderHooks, RenderMarkdown, SanitizeHtml, } from "./render/hooks.js";
12
13
  export { renderTerminal } from "./render/terminal.js";
13
14
  export type { TerminalRenderOptions } from "./render/terminal.js";
14
15
  export { renderMd } from "./render/md.js";
15
16
  export { renderHtml } from "./render/html.js";
17
+ export { evidenceVolume } from './render/evidence.js';
18
+ export type { FocusEditingManifest, FocusReturn, ParagraphChange, EditTransaction } from './editing/contract.js';
16
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,SAAS,EACT,eAAe,EACf,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,SAAS,EACT,YAAY,EACZ,uBAAuB,EACvB,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,SAAS,EACT,YAAY,EACZ,uBAAuB,EACvB,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,9 @@
7
7
  * `@sentropic/track/read` `DecisionDossierView` + `amendmentTrace` (L2 replaced L1's local
8
8
  * `DecisionDossierViewFixture` type + mapper).
9
9
  */
10
+ export { isEvidenceDossier } from './model.js';
10
11
  export { renderTerminal } from "./render/terminal.js";
11
12
  export { renderMd } from "./render/md.js";
12
13
  export { renderHtml } from "./render/html.js";
14
+ export { evidenceVolume } from './render/evidence.js';
13
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+BH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgCH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAS/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/model.d.ts CHANGED
@@ -32,11 +32,15 @@ export type OptionAnnotationState = "none" | "accept" | "reject" | "comment";
32
32
  interface FocusNodeBase {
33
33
  readonly id: string;
34
34
  readonly targetRef: TargetRef;
35
+ /** v2 only; the legacy closed validator refuses this field. */
36
+ readonly citationRefs?: readonly string[];
35
37
  }
36
38
  /** Markdown prose body. The renderer injects the markdown→string conversion (host hook). */
37
39
  export interface ProseNode extends FocusNodeBase {
38
40
  readonly kind: "prose";
39
41
  readonly markdown: string;
42
+ /** Explicit question covered by any choice discussed in this prose. */
43
+ readonly questionId?: string;
40
44
  }
41
45
  /** A question with a recommended answer (préco) and a validation state. */
42
46
  export interface QuestionNode extends FocusNodeBase {
@@ -44,9 +48,22 @@ export interface QuestionNode extends FocusNodeBase {
44
48
  readonly question: string;
45
49
  /** The recommended answer (préco). Optional — a question may be open with no préco yet. */
46
50
  readonly recommendedAnswer?: string;
51
+ /** Recommended option among those linked to this question; reason in recommendedAnswer. */
52
+ readonly recommendedOptionId?: string;
47
53
  /** The actual answer, when answered. */
48
54
  readonly answer?: string;
49
55
  readonly state: QuestionValidationState;
56
+ /**
57
+ * Readability: the decision context in plain words (what the owner needs to
58
+ * know to answer in ~2 minutes). Optional at schema level; the readability
59
+ * gate requires it before presentation.
60
+ */
61
+ readonly context?: string;
62
+ /**
63
+ * Readability: estimated reading time for this question (minutes, ≤ 2).
64
+ * Optional at schema level; the readability gate requires it.
65
+ */
66
+ readonly readingTimeMinutes?: number;
50
67
  }
51
68
  /** A single option/proposal/alternative with a Claude-style annotation state. */
52
69
  export interface OptionNode extends FocusNodeBase {
@@ -56,18 +73,31 @@ export interface OptionNode extends FocusNodeBase {
56
73
  readonly annotation: OptionAnnotationState;
57
74
  /** Optional free-text comment carried with a `comment` annotation. */
58
75
  readonly annotationComment?: string;
76
+ /**
77
+ * Readability: the one-line consequence of this option for the owner.
78
+ * Optional at schema level; the readability gate requires it.
79
+ */
80
+ readonly consequence?: string;
59
81
  }
60
82
  /** A set of mutually-related options/proposals. */
61
83
  export interface OptionSetNode extends FocusNodeBase {
62
84
  readonly kind: "optionSet";
63
85
  readonly title?: string;
64
86
  readonly options: readonly OptionNode[];
87
+ /**
88
+ * Readability: the id of the explicit question these options answer.
89
+ * Optional at schema level; the readability gate requires it so no choice
90
+ * is ever implied without an explicit question (no hidden decision).
91
+ */
92
+ readonly questionId?: string;
65
93
  }
66
94
  /** The modality-tagged outcome of the focus. */
67
95
  export interface OutcomeNode extends FocusNodeBase {
68
96
  readonly kind: "outcome";
69
97
  readonly modality: OutcomeModality;
70
98
  readonly statement: string;
99
+ /** The explicit question this decision, orientation or amendment resolves. */
100
+ readonly questionId?: string;
71
101
  }
72
102
  /** One ordered step of the amendment trace. */
73
103
  export interface AmendmentStep {
@@ -86,6 +116,9 @@ export interface DiagramNode extends FocusNodeBase {
86
116
  readonly syntax: DiagramSyntax;
87
117
  readonly source: string;
88
118
  readonly alt: string;
119
+ /** diagram-core SemanticDocument, generic@1, without views/geometry/layout hints.
120
+ * Kept as plain JSON until the private DS package publishes its schema. */
121
+ readonly scene?: Readonly<Record<string, unknown>>;
89
122
  }
90
123
  /** The node families needed to render a decision-dossier. */
91
124
  export type FocusNode = ProseNode | QuestionNode | OptionSetNode | OutcomeNode | AmendmentTraceNode | DiagramNode;
@@ -96,7 +129,11 @@ export type FocusNode = ProseNode | QuestionNode | OptionSetNode | OutcomeNode |
96
129
  */
97
130
  export interface Affordance {
98
131
  readonly name: string;
99
- /** The target this affordance would act on (a node's targetRef). */
132
+ /**
133
+ * The target this affordance would act on. Resolves to the dossier `ref`
134
+ * (whole-dossier amend), a section `id`/`targetRef`, or a nested option
135
+ * `id`/`targetRef` — the same resolution scope the validator enforces.
136
+ */
100
137
  readonly targetRef: TargetRef;
101
138
  /** Human-readable label for the disabled-affordance metadata. */
102
139
  readonly label: string;
@@ -121,12 +158,43 @@ export interface FocusProvenance {
121
158
  readonly readAt: string;
122
159
  readonly comprehensionEvidence?: ComprehensionEvidence;
123
160
  }
161
+ /** One glossary entry: an opaque code mapped to plain words for the reader. */
162
+ export interface GlossaryEntry {
163
+ readonly term: string;
164
+ readonly definition: string;
165
+ }
166
+ /**
167
+ * Dossier-level readability statement: owner traceability, plain-words stakes,
168
+ * the reading budget the per-question times must fit, and the glossary that
169
+ * defines every code shown to the reader. Entirely optional at schema level
170
+ * (backward compatible); the readability gate requires it before presentation.
171
+ */
172
+ export interface DossierReadability {
173
+ /**
174
+ * The owner's literal request this dossier serves, quoted verbatim
175
+ * (traceability). Exactly one of `ownerRequestQuote` / `noOwnerRequest`.
176
+ */
177
+ readonly ownerRequestQuote?: string;
178
+ /**
179
+ * Explicit flag: no owner request backs this dossier. Blocks presentation
180
+ * until a request is quoted — never present a dossier carrying it.
181
+ */
182
+ readonly noOwnerRequest?: boolean;
183
+ /** Why this matters to the owner, in plain words (not internal jargon). */
184
+ readonly stakes?: string;
185
+ /** Declared impact: low (reversible), medium (cost/disruption), high (lasting impact). */
186
+ readonly stakesLevel?: "low" | "medium" | "high";
187
+ /** Total reading budget in minutes (≤ 30), proportionate to the stakes. */
188
+ readonly readingBudgetMinutes?: number;
189
+ /** Every code shown to the reader, defined in plain words. */
190
+ readonly glossary?: readonly GlossaryEntry[];
191
+ }
124
192
  /**
125
193
  * The CONCRETE decision-dossier document — a FocusDocument whose primary outcome modality is a
126
194
  * decision. Maps to track `DecisionDossierView{outcome,dossier,comprehensionEvidence}` +
127
195
  * `amendmentTrace` (wired for real at L2).
128
196
  */
129
- export interface DecisionDossierDocument {
197
+ export interface DecisionDossierDocumentV1 {
130
198
  readonly ref: FocusRef;
131
199
  readonly subject: string;
132
200
  readonly title: string;
@@ -139,6 +207,80 @@ export interface DecisionDossierDocument {
139
207
  readonly interactions: readonly Affordance[];
140
208
  readonly provenance: FocusProvenance;
141
209
  readonly amendmentTrace: readonly AmendmentStep[];
210
+ /**
211
+ * Readability statement. Optional at schema level (backward compatible);
212
+ * the readability gate (`@sentropic/focus/validate`) requires it and
213
+ * refuses presentation without it.
214
+ */
215
+ readonly readability?: DossierReadability;
216
+ }
217
+ /** Original bytes are stored once. Origin is provenance data, never a reader fetch. */
218
+ export interface EvidenceSource {
219
+ readonly id: string;
220
+ readonly title: string;
221
+ readonly origin: {
222
+ readonly uri: string;
223
+ } | {
224
+ readonly repo: string;
225
+ readonly revision: string;
226
+ readonly path: string;
227
+ };
228
+ readonly mediaType: string;
229
+ readonly encoding: 'base64';
230
+ readonly data: string;
231
+ readonly sha256: string;
232
+ readonly size: number;
233
+ readonly width?: number;
234
+ readonly height?: number;
235
+ readonly alt?: string;
236
+ }
237
+ export interface EvidenceCitation {
238
+ readonly id: string;
239
+ readonly sourceId: string;
240
+ readonly label: string;
241
+ /** Lines are 1-based, inclusive; CRLF is one separator; trailing empty line counts. */
242
+ readonly locator: {
243
+ readonly kind: 'lines';
244
+ readonly start: number;
245
+ readonly end: number;
246
+ } | {
247
+ readonly kind: 'image';
248
+ readonly caption: string;
249
+ };
250
+ }
251
+ export interface EvidenceGroup {
252
+ readonly id: string;
253
+ readonly summary: string;
254
+ readonly citationRefs: readonly string[];
255
+ readonly sourceRefs: readonly string[];
256
+ }
257
+ export type AnnexBlock = {
258
+ readonly kind: 'text' | 'code';
259
+ readonly text: string;
260
+ readonly language?: string;
261
+ } | {
262
+ readonly kind: 'table';
263
+ readonly columns: readonly string[];
264
+ readonly rows: readonly (readonly string[])[];
265
+ } | {
266
+ readonly kind: 'references';
267
+ readonly citationRefs: readonly string[];
268
+ };
269
+ export interface EvidenceAnnex {
270
+ readonly id: string;
271
+ readonly title: string;
272
+ readonly summary: string;
273
+ readonly blocks: readonly AnnexBlock[];
274
+ readonly backRefs: readonly string[];
275
+ }
276
+ export interface DecisionDossierDocumentV2 extends DecisionDossierDocumentV1 {
277
+ readonly schemaVersion: 2;
278
+ readonly sources: readonly EvidenceSource[];
279
+ readonly citations: readonly EvidenceCitation[];
280
+ readonly evidenceGroups: readonly EvidenceGroup[];
281
+ readonly annexes: readonly EvidenceAnnex[];
142
282
  }
283
+ export type DecisionDossierDocument = DecisionDossierDocumentV1 | DecisionDossierDocumentV2;
284
+ export declare const isEvidenceDossier: (doc: DecisionDossierDocument) => doc is DecisionDossierDocumentV2;
143
285
  export {};
144
286
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/model.js CHANGED
@@ -9,5 +9,5 @@
9
9
  * This is the read-only FocusSnapshot split: affordances render as DISABLED metadata only
10
10
  * (no live commands). Live drivers (FocusLiveSession) are deferred (L3+).
11
11
  */
12
- export {};
12
+ export const isEvidenceDossier = (doc) => 'schemaVersion' in doc && doc.schemaVersion === 2;
13
13
  //# sourceMappingURL=model.js.map
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyRH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAA4B,EAAoC,EAAE,CAClG,eAAe,IAAI,GAAG,IAAI,GAAG,CAAC,aAAa,KAAK,CAAC,CAAC"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * `@sentropic/focus/registry/definitions` — the publisher-owned definition
3
+ * surface for the `sentropic.focus` skill entry (contract §§3–4, R4).
4
+ *
5
+ * This module is SIDE-EFFECT-FREE: importing it reads no file, opens no
6
+ * handle and touches no network. The JSON manifest is read only when
7
+ * {@link loadFocusSkillDescriptor} is called; instruction text is read only
8
+ * through the caller-supplied loader in {@link resolveFocusPresentation},
9
+ * and only AFTER the presentation preflight succeeds — so an unavailable
10
+ * presentation refuses with `unsupported_presentation` with zero instruction
11
+ * loads.
12
+ */
13
+ /** Canonical registry ID of the Focus skill. */
14
+ export declare const FOCUS_SKILL_ID = "sentropic.focus";
15
+ /** Public entry version of the first Focus registry release. */
16
+ export declare const FOCUS_ENTRY_VERSION = "2.0.0";
17
+ /** Entry-contract version this descriptor conforms to. */
18
+ export declare const FOCUS_CONTRACT_VERSION = "1.1.4";
19
+ /** Parameter-schema version of the Focus entry (contract §5.4). */
20
+ export declare const FOCUS_PARAMETERS_SCHEMA_VERSION = "1.0.0";
21
+ /** Existing skill-description limit enforced by the contract. */
22
+ export declare const MAX_SKILL_DESCRIPTION_LENGTH = 280;
23
+ export type FocusPresentation = "terminal" | "markdown" | "html" | "mcp-app";
24
+ export type FocusLocale = "en" | "fr";
25
+ export interface FocusParameters {
26
+ readonly mode: "snapshot";
27
+ readonly preferredPresentation: FocusPresentation;
28
+ readonly locale: FocusLocale;
29
+ }
30
+ /** Exact §5.4 defaults, applied once before validation. */
31
+ export declare const FOCUS_PARAMETER_DEFAULTS: FocusParameters;
32
+ export interface DefinitionIssue {
33
+ readonly path: string;
34
+ readonly code: string;
35
+ readonly message: string;
36
+ }
37
+ export type DefinitionResult<T> = {
38
+ readonly ok: true;
39
+ readonly value: T;
40
+ } | {
41
+ readonly ok: false;
42
+ readonly issues: readonly DefinitionIssue[];
43
+ };
44
+ export interface FocusAsset {
45
+ readonly role: string;
46
+ readonly path: string;
47
+ readonly mediaType: string;
48
+ readonly sha256: string;
49
+ }
50
+ export interface FocusDocumentSchemaRef {
51
+ readonly name: string;
52
+ readonly schemaId: string;
53
+ readonly version: string;
54
+ readonly assetPath: string;
55
+ readonly sha256: string;
56
+ }
57
+ export interface FocusSkillPayload {
58
+ readonly profile: "instructions";
59
+ readonly metadata: {
60
+ readonly category: string;
61
+ readonly contextFilters: readonly string[];
62
+ readonly permissions: readonly string[];
63
+ readonly toolNames: readonly string[];
64
+ };
65
+ readonly instructionsAsset: string;
66
+ readonly capabilities: ReadonlyArray<{
67
+ readonly id: string;
68
+ readonly description: string;
69
+ readonly effect: "read-only" | "mutation";
70
+ readonly permissions: readonly string[];
71
+ readonly inputSchemaRef?: string;
72
+ readonly outputSchemaRef?: string;
73
+ }>;
74
+ readonly tools: readonly unknown[];
75
+ readonly documentSchemas: readonly FocusDocumentSchemaRef[];
76
+ readonly dependencies: readonly unknown[];
77
+ }
78
+ export interface FocusEntryDescriptor {
79
+ readonly format: "sentropic.registry-entry/v1";
80
+ readonly contractVersion: string;
81
+ readonly kind: "skill";
82
+ readonly id: string;
83
+ readonly name: string;
84
+ readonly description: string;
85
+ readonly entryVersion: string;
86
+ readonly publisher: {
87
+ readonly packageName: string;
88
+ readonly packageVersion: string;
89
+ };
90
+ readonly compatibility: {
91
+ readonly entryContract: string;
92
+ readonly packages: ReadonlyArray<{
93
+ readonly name: string;
94
+ readonly range: string;
95
+ }>;
96
+ readonly schemaProfiles: readonly string[];
97
+ readonly requiredHostFeatures: readonly string[];
98
+ readonly optionalHostFeatures: readonly string[];
99
+ };
100
+ readonly parameters: {
101
+ readonly schemaVersion: string;
102
+ readonly schema: Record<string, unknown>;
103
+ readonly defaults: Record<string, unknown>;
104
+ };
105
+ readonly bindings: readonly unknown[];
106
+ readonly assets: readonly FocusAsset[];
107
+ readonly skill: FocusSkillPayload;
108
+ }
109
+ /**
110
+ * Closed validation of the publisher-owned Focus entry descriptor.
111
+ * Pure: no I/O, so catalog-time checks perform zero instruction reads.
112
+ */
113
+ export declare const validateFocusEntryDescriptor: (value: unknown) => DefinitionResult<FocusEntryDescriptor>;
114
+ /**
115
+ * Validate Focus configuration values against the exact §5.4 profile.
116
+ * Declared defaults apply once before validation; unknown keys refuse.
117
+ */
118
+ export declare const validateFocusParameters: (value: unknown) => DefinitionResult<FocusParameters>;
119
+ export interface PresentationGate {
120
+ /** True when the host registry holds a UI entry for Focus. */
121
+ readonly uiRegistered: boolean;
122
+ /** True when the host selected that UI entry for this session. */
123
+ readonly uiSelected: boolean;
124
+ /** True when the host qualified the selected UI entry. */
125
+ readonly uiQualified: boolean;
126
+ /** True only when the host supplies an HTML sanitization hook. */
127
+ readonly htmlSanitizerAvailable: boolean;
128
+ }
129
+ export type PresentationResolution = {
130
+ readonly ok: true;
131
+ readonly instructions: string;
132
+ } | {
133
+ readonly ok: false;
134
+ readonly code: "unsupported_presentation";
135
+ readonly message: string;
136
+ };
137
+ /**
138
+ * Presentation preflight for the selected Focus configuration.
139
+ * `loadInstructions` runs ONLY when the requested presentation is usable, so
140
+ * an unavailable `mcp-app` (or an unsanitized `html`) refuses with
141
+ * `unsupported_presentation` with zero instruction reads/loads.
142
+ */
143
+ export declare const resolveFocusPresentation: (params: FocusParameters, gate: PresentationGate, loadInstructions: () => string) => PresentationResolution;
144
+ /**
145
+ * Read the package-owned registry manifest (`registry/entries.v1.json`).
146
+ * Called explicitly by the host; importing this module alone reads nothing.
147
+ *
148
+ * The compiled snapshot vendored into `@sentropic/track`
149
+ * (`packages/track/src/focus-vendor/registry/entries.v1.json`) ships the
150
+ * pinned 1.0.0 manifest alongside the compiled helper, so the vendor never
151
+ * resolves a foreign `@sentropic/focus` copy: package layout first,
152
+ * vendor-adjacent manifest second, and no cross-package fallback.
153
+ */
154
+ export declare const loadFocusSkillDescriptor: () => unknown;
155
+ /** Recompute every asset/schema digest over the supplied bytes. */
156
+ export declare const verifyAssetDigests: (entry: FocusEntryDescriptor, readFile: (packageRelativePath: string) => Uint8Array | null) => DefinitionIssue[];
157
+ /** Refuse absolute paths, traversal, escapes and duplicates. */
158
+ export declare const assertSafeAssetPaths: (entry: Pick<FocusEntryDescriptor, "assets">) => DefinitionIssue[];
159
+ //# sourceMappingURL=definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/registry/definitions.ts"],"names":[],"mappings":"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"}