@sentropic/focus 0.3.0 → 0.5.0-rc.1
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 +9 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +12 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/editing/anchors.d.ts +14 -0
- package/dist/editing/anchors.d.ts.map +1 -0
- package/dist/editing/anchors.js +113 -0
- package/dist/editing/anchors.js.map +1 -0
- package/dist/editing/codec.d.ts +24 -0
- package/dist/editing/codec.d.ts.map +1 -0
- package/dist/editing/codec.js +143 -0
- package/dist/editing/codec.js.map +1 -0
- package/dist/editing/contract.d.ts +129 -0
- package/dist/editing/contract.d.ts.map +1 -0
- package/dist/editing/contract.js +76 -0
- package/dist/editing/contract.js.map +1 -0
- package/dist/editing/diff.d.ts +12 -0
- package/dist/editing/diff.d.ts.map +1 -0
- package/dist/editing/diff.js +125 -0
- package/dist/editing/diff.js.map +1 -0
- package/dist/editing/digest.d.ts +6 -0
- package/dist/editing/digest.d.ts.map +1 -0
- package/dist/editing/digest.js +56 -0
- package/dist/editing/digest.js.map +1 -0
- package/dist/editing/index.d.ts +7 -0
- package/dist/editing/index.d.ts.map +1 -0
- package/dist/editing/index.js +7 -0
- package/dist/editing/index.js.map +1 -0
- package/dist/editing/reconcile.d.ts +66 -0
- package/dist/editing/reconcile.d.ts.map +1 -0
- package/dist/editing/reconcile.js +167 -0
- package/dist/editing/reconcile.js.map +1 -0
- package/dist/editing/structure.d.ts +24 -0
- package/dist/editing/structure.d.ts.map +1 -0
- package/dist/editing/structure.js +71 -0
- package/dist/editing/structure.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +144 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +1 -1
- package/dist/model.js.map +1 -1
- package/dist/registry/definitions.d.ts +159 -0
- package/dist/registry/definitions.d.ts.map +1 -0
- package/dist/registry/definitions.js +509 -0
- package/dist/registry/definitions.js.map +1 -0
- package/dist/render/evidence.d.ts +10 -0
- package/dist/render/evidence.d.ts.map +1 -0
- package/dist/render/evidence.js +37 -0
- package/dist/render/evidence.js.map +1 -0
- package/dist/render/html.d.ts.map +1 -1
- package/dist/render/html.js +14 -1
- package/dist/render/html.js.map +1 -1
- package/dist/render/md.d.ts.map +1 -1
- package/dist/render/md.js +15 -1
- package/dist/render/md.js.map +1 -1
- package/dist/render/presentation.d.ts +4 -0
- package/dist/render/presentation.d.ts.map +1 -0
- package/dist/render/presentation.js +25 -0
- package/dist/render/presentation.js.map +1 -0
- package/dist/render/terminal.d.ts.map +1 -1
- package/dist/render/terminal.js +15 -1
- package/dist/render/terminal.js.map +1 -1
- package/dist/track/index.d.ts.map +1 -1
- package/dist/track/index.js +24 -10
- package/dist/track/index.js.map +1 -1
- package/dist/validation/evidence-bytes.d.ts +5 -0
- package/dist/validation/evidence-bytes.d.ts.map +1 -0
- package/dist/validation/evidence-bytes.js +57 -0
- package/dist/validation/evidence-bytes.js.map +1 -0
- package/dist/validation/evidence-shape.d.ts +12 -0
- package/dist/validation/evidence-shape.d.ts.map +1 -0
- package/dist/validation/evidence-shape.js +54 -0
- package/dist/validation/evidence-shape.js.map +1 -0
- package/dist/validation/evidence-sources.d.ts +7 -0
- package/dist/validation/evidence-sources.d.ts.map +1 -0
- package/dist/validation/evidence-sources.js +56 -0
- package/dist/validation/evidence-sources.js.map +1 -0
- package/dist/validation/evidence.d.ts +5 -0
- package/dist/validation/evidence.d.ts.map +1 -0
- package/dist/validation/evidence.js +131 -0
- package/dist/validation/evidence.js.map +1 -0
- package/dist/validation/index.d.ts +59 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +500 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/readability.d.ts +28 -0
- package/dist/validation/readability.d.ts.map +1 -0
- package/dist/validation/readability.js +265 -0
- package/dist/validation/readability.js.map +1 -0
- package/package.json +36 -8
- package/registry/entries.v1.json +140 -0
- package/schemas/decision-dossier-document.v1.schema.json +193 -0
- package/schemas/decision-dossier-document.v2.schema.json +925 -0
- package/schemas/focus-edit-return.v1.schema.json +950 -0
- package/schemas/focus-editing-manifest.v1.schema.json +167 -0
- package/skills/focus/SKILL.md +181 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/editing/reconcile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Single source for published JSON Schemas and the structural validator.
|
|
2
|
+
* Only this deliberately small standard-JSON-Schema vocabulary is used. */
|
|
3
|
+
type Schema = {
|
|
4
|
+
type?: string | string[];
|
|
5
|
+
const?: unknown;
|
|
6
|
+
enum?: unknown[];
|
|
7
|
+
pattern?: string;
|
|
8
|
+
minLength?: number;
|
|
9
|
+
minimum?: number;
|
|
10
|
+
properties?: Record<string, Schema>;
|
|
11
|
+
required?: string[];
|
|
12
|
+
additionalProperties?: boolean;
|
|
13
|
+
items?: Schema;
|
|
14
|
+
uniqueItems?: boolean;
|
|
15
|
+
minItems?: number;
|
|
16
|
+
anyOf?: Schema[];
|
|
17
|
+
$schema?: string;
|
|
18
|
+
$id?: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const manifestSchema: Schema;
|
|
21
|
+
export declare const returnSchema: Schema;
|
|
22
|
+
export declare function matchesSchema(schema: Schema, value: unknown): boolean;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=structure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/editing/structure.ts"],"names":[],"mappings":"AAAA;2EAC2E;AAC3E,KAAK,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAClI,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAY/G,eAAO,MAAM,cAAc,EAAE,MAI5B,CAAC;AAUF,eAAO,MAAM,YAAY,EAAE,MAa1B,CAAC;AACF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBrE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
const text = { type: 'string' }, id = { type: 'string', minLength: 1 };
|
|
2
|
+
const nullableText = { type: ['string', 'null'] }, nullableId = { anyOf: [id, { type: 'null' }] };
|
|
3
|
+
const hash = { type: 'string', pattern: '^sha256:[a-f0-9]{64}$' };
|
|
4
|
+
const array = (items, uniqueItems = false) => ({ type: 'array', items, ...(uniqueItems ? { uniqueItems } : {}) });
|
|
5
|
+
const object = (properties, optional = []) => ({ type: 'object', additionalProperties: false, properties, required: Object.keys(properties).filter(k => !optional.includes(k)) });
|
|
6
|
+
const address = { nodeId: id, targetRef: id, field: { enum: ['markdown', 'question', 'recommendedAnswer', 'context', 'label', 'body', 'consequence'] } };
|
|
7
|
+
const format = { enum: ['text/plain', 'focus.markdown.p0@1'] };
|
|
8
|
+
const anchors = object({ parentId: { type: 'null' }, previousParagraphId: nullableId, nextParagraphId: nullableId });
|
|
9
|
+
const field = object({ ...address, contentFormat: format, blockKind: { enum: ['prose', 'question', 'option'] } });
|
|
10
|
+
const paragraph = object({ ...address, paragraphId: id, blockKind: { const: 'paragraph' }, parentId: { type: 'null' }, order: { type: 'integer', minimum: 0 },
|
|
11
|
+
range: object({ start: { type: 'integer', minimum: 0 }, end: { type: 'integer', minimum: 0 }, unit: { const: 'utf16' } }) });
|
|
12
|
+
export const manifestSchema = {
|
|
13
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema', $id: 'urn:sentropic:focus:FocusEditingManifest:1.0.0',
|
|
14
|
+
...object({ schemaVersion: { const: 1 }, manifestId: id, documentRef: id, baseHash: hash, manifestBaseHash: hash,
|
|
15
|
+
fields: array(field), paragraphs: array(paragraph), retiredParagraphIds: array(id, true) }),
|
|
16
|
+
};
|
|
17
|
+
const changeProperties = { ...address, documentRef: id, paragraphId: id, changeId: id, blockKind: { const: 'paragraph' }, format,
|
|
18
|
+
operation: { enum: ['replace', 'insert', 'delete', 'move'] }, before: nullableText, after: nullableText,
|
|
19
|
+
anchors, beforeAnchors: { anyOf: [anchors, { type: 'null' }] } };
|
|
20
|
+
const change = { anyOf: ['replace', 'insert', 'delete', 'move'].map(operation => object({ ...changeProperties,
|
|
21
|
+
operation: { const: operation }, before: operation === 'insert' ? { type: 'null' } : text,
|
|
22
|
+
after: operation === 'delete' ? { type: 'null' } : text,
|
|
23
|
+
beforeAnchors: operation === 'insert' ? { type: 'null' } : anchors,
|
|
24
|
+
})) };
|
|
25
|
+
const { $id: _manifestId, $schema: _manifestDialect, ...embeddedManifest } = manifestSchema;
|
|
26
|
+
export const returnSchema = {
|
|
27
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema', $id: 'urn:sentropic:focus:FocusEditReturn:1.0.0',
|
|
28
|
+
...object({ kind: { const: 'focus.return' }, schemaVersion: { const: 1 }, returnId: id, digest: hash, capture: object({ at: id }),
|
|
29
|
+
scope: { anyOf: [object({ workspaceId: id }), { type: 'null' }] },
|
|
30
|
+
source: object({ documentRef: id, hash: text, cursor: text, baseHash: hash, manifestId: id, manifestBaseHash: hash }),
|
|
31
|
+
production: { anyOf: [object({ producerId: id, generationId: id, requestId: id }), { type: 'null' }] },
|
|
32
|
+
manifest: embeddedManifest,
|
|
33
|
+
answers: array(object({ questionId: id, targetRef: id, optionIds: array(id, true), text: nullableText })),
|
|
34
|
+
notes: array(object({ targetRef: id, text: nullableText })),
|
|
35
|
+
editReturn: object({ schemaVersion: { const: 1 }, mode: { const: 'cumulative' },
|
|
36
|
+
transactions: array(object({ transactionId: id, changes: { ...array(change), minItems: 1 } })),
|
|
37
|
+
supersedesReturnId: id, supersededReturnIds: array(id, true) }, ['supersedesReturnId']),
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
export function matchesSchema(schema, value) {
|
|
41
|
+
if (schema.anyOf && !schema.anyOf.some(s => matchesSchema(s, value)))
|
|
42
|
+
return false;
|
|
43
|
+
if ('const' in schema && value !== schema.const)
|
|
44
|
+
return false;
|
|
45
|
+
if (schema.enum && !schema.enum.includes(value))
|
|
46
|
+
return false;
|
|
47
|
+
const type = value === null ? 'null' : Array.isArray(value) ? 'array' : typeof value;
|
|
48
|
+
if (schema.type && !(Array.isArray(schema.type) ? schema.type : [schema.type]).some(t => t === type || (t === 'integer' && Number.isInteger(value))))
|
|
49
|
+
return false;
|
|
50
|
+
if (typeof value === 'string' && ((schema.minLength !== undefined && [...value].length < schema.minLength) || (schema.pattern && !new RegExp(schema.pattern, 'u').test(value))))
|
|
51
|
+
return false;
|
|
52
|
+
if (typeof value === 'number' && schema.minimum !== undefined && value < schema.minimum)
|
|
53
|
+
return false;
|
|
54
|
+
if (Array.isArray(value)) {
|
|
55
|
+
if (schema.minItems !== undefined && value.length < schema.minItems)
|
|
56
|
+
return false;
|
|
57
|
+
if (schema.uniqueItems && new Set(value.map(v => JSON.stringify(v))).size !== value.length)
|
|
58
|
+
return false;
|
|
59
|
+
if (schema.items && !value.every(v => matchesSchema(schema.items, v)))
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
if (value !== null && typeof value === 'object' && !Array.isArray(value) && schema.properties) {
|
|
63
|
+
const v = value;
|
|
64
|
+
if (schema.required?.some(k => !Object.hasOwn(v, k)))
|
|
65
|
+
return false;
|
|
66
|
+
if (Object.keys(v).some(k => Object.hasOwn(schema.properties, k) ? !matchesSchema(schema.properties[k], v[k]) : schema.additionalProperties === false))
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=structure.js.map
|
|
@@ -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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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
|
-
/**
|
|
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
|
|
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
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,iFAAiF;AACjF,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnF,8FAA8F;AAC9F,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnD,2EAA2E;AAC3E,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAExE,kFAAkF;AAClF,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7E,0FAA0F;AAC1F,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;
|
|
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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"}
|