@intentset/publisher 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,7 +25,9 @@ installed. The command is always `@intentset/cli`'s: this package has no `intent
25
25
  for `intentset` alone would fetch an unrelated unscoped package from the registry.
26
26
 
27
27
  From code, `publish(graph, registries, request, { snapshot, publishedAt })` returns the documents, the index, the help
28
- file and the diagnostics, and refuses the whole request when any field is missing or undeclared (PUB001).
28
+ file and the diagnostics, and refuses the whole request when any field is missing or undeclared (PUB001). The
29
+ snapshot, the commit and graph hash the run read, is named once, in the index and the help file; each document pins
30
+ what it was made from by its sources' hashes, so its bytes change only when those sources do.
29
31
  `@intentset/help` reads the help file in the product.
30
32
 
31
33
  ## Learn more
@@ -13,14 +13,17 @@
13
13
  * path appears only in a projection that admits internal records; sources
14
14
  * outside the projection are counted, not named; availability is the
15
15
  * request's own values, so a document does not list the other editions,
16
- * roles or releases its knowledge also serves.
16
+ * roles or releases its knowledge also serves. The block carries no snapshot:
17
+ * that is the same for every document in a run and moves with any record in
18
+ * the model, so the run names it once, in the help file and the index
19
+ * (publication §2, §5; ADR 0019), and a document's bytes change only when what
20
+ * it was made from does.
17
21
  *
18
22
  * The result is checked as Markset before it is emitted: a Markset error is
19
23
  * PUB003, and a `:::` directive outside Markset's vocabulary is PUB004
20
24
  * (CLAUDE.md invariant 5: profiles never add a directive).
21
25
  */
22
26
  import type { Artifact, Diagnostic, Graph, Visibility } from "@intentset/core";
23
- import type { Snapshot } from "./project.ts";
24
27
  import { type PublicationRequest } from "./request.ts";
25
28
  export declare const PUBLICATION_PROFILE = "intentset/publication/0.2";
26
29
  /** The top-level frontmatter key of a generated document. */
@@ -45,7 +48,6 @@ export interface PublicationMeta {
45
48
  sources: SourceStamp[];
46
49
  /** How many explained artifacts are outside the projection and so not named. */
47
50
  withheldSources: number;
48
- snapshot: Snapshot;
49
51
  audience: string;
50
52
  /** The request's values, and the flags the knowledge requires (every one of them named by the request). */
51
53
  availability: {
@@ -60,7 +62,6 @@ export interface PublicationMeta {
60
62
  publishedAt: string;
61
63
  }
62
64
  export interface GenerateOptions {
63
- snapshot: Snapshot;
64
65
  publishedAt: string;
65
66
  }
66
67
  export interface GeneratedDocument {
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,KAAK,kBAAkB,EAAU,MAAM,cAAc,CAAC;AAG/D,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAC/D,6DAA6D;AAC7D,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,uGAAuG;IACvG,UAAU,EAAE,UAAU,CAAC;IACvB,sFAAsF;IACtF,MAAM,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,+DAA+D;IAC/D,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,2GAA2G;IAC3G,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnG,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,8GAA8G;AAC9G,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,eAAe,GACvB,eAAe,CAsCjB;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CASnH;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,eAAe,GACvB;IAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CA0BnE;AAED,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,CAsEtG"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK/E,OAAO,EAAE,KAAK,kBAAkB,EAAU,MAAM,cAAc,CAAC;AAG/D,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAC/D,6DAA6D;AAC7D,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,uGAAuG;IACvG,UAAU,EAAE,UAAU,CAAC;IACvB,sFAAsF;IACtF,MAAM,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,+DAA+D;IAC/D,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,2GAA2G;IAC3G,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnG,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,8GAA8G;AAC9G,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,eAAe,GACvB,eAAe,CAqCjB;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CASnH;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,eAAe,GACvB;IAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CA0BnE;AAED,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,CAsEtG"}
package/dist/generate.js CHANGED
@@ -40,7 +40,6 @@ export function publicationMeta(graph, artifact, request, options) {
40
40
  source,
41
41
  sources,
42
42
  withheldSources,
43
- snapshot: { commit: options.snapshot.commit, graphHash: options.snapshot.graphHash },
44
43
  audience: request.audience,
45
44
  availability: {
46
45
  product: request.product,
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAA2B,MAAM,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAkB,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAC/D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAyCvD,kEAAkE;AAClE,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,4CAA4C,EAAE,oBAAoB,CAAC;AAC5E,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,QAAkB,EAClB,OAA2B,EAC3B,OAAwB;IAExB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,qEAAqE,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,MAAM,GAA8B;QACxC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;QAAE,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC7D,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,eAAe,EAAE,CAAC;;YACzF,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,OAAO;QACL,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM;QACN,OAAO;QACP,eAAe;QACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;SACrG;QACD,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,WAA4B,EAAE,IAAY;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,WAAmC,EAAE,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,QAAQ,IAAI,QAAQ,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE;QACpD,aAAa,EAAE,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,gBAAgB,CAC9B,KAAY,EACZ,QAAkB,EAClB,OAA2B,EAC3B,OAAwB;IAExB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC;IACxB,IAAI,WAA4B,CAAC;IACjC,IAAI,SAAoD,CAAC;IACzD,IAAI,CAAC;QACH,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACjE,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE;gBACX,qBAAqB,CAAC;oBACpB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO,EAAE,8BAA8B,EAAE,qCAAqC,MAAM,GAAG;oBACvF,WAAW,EAAE,+FAA+F;iBAC7G,CAAC;aACH;SACF,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACxF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACnE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC;AACzF,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,MAAc,EAAE,aAAqB;IACtF,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,CAAC,IAAwB,EAAE,EAAE,CAC1C,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG,aAAa;QAC3D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,aAAa,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO;QACtD,MAAM,CAAC,GAAG,IAKT,CAAC;QACF,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC;YACpC,MAAM,IAAI,GACR,CAAC,CAAC,IAAI;gBACN,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAC5G,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,IAAI,IAAI,KAAK,SAAS;oBAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjD,WAAW,CAAC,IAAI,CACd,qBAAqB,CAAC;oBACpB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,EAAE;oBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;oBACtB,OAAO,EAAE,GAAG,EAAE,0BAA0B,IAAI,yCAAyC;oBACrF,WAAW,EAAE,oCAAoC,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,6EAA6E;iBACpK,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAElB,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CACd,qBAAqB,CAAC;YACpB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,iCAAiC,EAAE,sCAAsC;YAClF,WAAW,EACT,wGAAwG;SAC3G,CAAC,CACH,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1D,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QAC1G,WAAW,CAAC,IAAI,CACd,qBAAqB,CAAC;YACpB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;YAClC,OAAO,EAAE,8BAA8B,EAAE,0BAA0B,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG;YAC7G,WAAW,EACT,2GAA2G;SAC9G,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
package/dist/help.d.ts CHANGED
@@ -10,6 +10,9 @@
10
10
  * binds a control to the ID has already written it where the same reader can
11
11
  * see it, and nothing else of that artifact is carried: never its title, path,
12
12
  * status or prose. Two documents tipping one ID: the lower knowledge ID wins.
13
+ *
14
+ * It is also where the run names its snapshot, the commit and graph hash it
15
+ * was published from; the documents beside it do not carry one (ADR 0019).
13
16
  */
14
17
  import type { Graph, Visibility } from "@intentset/core";
15
18
  import type { Snapshot } from "./project.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAY,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,sDAAsD;AACtD,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,YAAY,CAAC;IAC7B,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnG,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wFAAwF;AACxF,wBAAgB,QAAQ,CACtB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,WAAW,GACnB,QAAQ,CAgCV"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAY,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,sDAAsD;AACtD,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,YAAY,CAAC;IAC7B,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnG,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wFAAwF;AACxF,wBAAgB,QAAQ,CACtB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,WAAW,GACnB,QAAQ,CAgCV"}
package/dist/help.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAoCrC,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CACtB,KAAY,EACZ,YAA+B,EAC/B,OAA2B,EAC3B,OAAoB;IAEpB,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;QACrD,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7E,6EAA6E;YAC7E,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAG,QAAQ,CAAC,IAAI,CAAC,IAA+B,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAY,CAAC;IACpG,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;QACpF,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;SACxD;QACD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAoCrC,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CACtB,KAAY,EACZ,YAA+B,EAC/B,OAA2B,EAC3B,OAAoB;IAEpB,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;QACrD,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7E,6EAA6E;YAC7E,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAG,QAAQ,CAAC,IAAI,CAAC,IAA+B,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAY,CAAC;IACpG,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;QACpF,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;SACxD;QACD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,6 @@ export { EXCLUSION_REASONS, type Exclusion, type ExclusionReason, type ProjectOp
11
11
  export { type PublicationIndex, type PublishOptions, type PublishResult, type PublishedDocument, REFUSAL_REASONS, type RefusalReason, publish, renderDocument, } from "./publish.ts";
12
12
  export { type Reference, type ReferenceKind, checkReferences, checkTitles, findReferences, resolveTarget, titlePattern, } from "./references.ts";
13
13
  export { type IndexedRequest, PROJECTION_ADMITS, type PublicationRequest, REQUEST_DIMENSIONS, type RequestDimension, admits, checkRequest, indexedRequest, } from "./request.ts";
14
- export { CURRENT_PIN, REVIEW_EXTENSION, type ReviewRecord, type ReviewStatus, bindReviewPins, knowledgeReport, readReviewRecord, reviewSources, reviewStatus, } from "./review.ts";
14
+ export { CURRENT_PIN, PIN_KINDS, type PinKind, REVIEW_EXTENSION, type ReviewRecord, type ReviewStatus, bindReviewPins, knowledgeReport, pinHash, readReviewRecord, reviewSources, reviewStatus, } from "./review.ts";
15
15
  export { YamlEmitError, type YamlValue, emitYaml } from "./yaml.ts";
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,eAAe,EACf,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,eAAe,EACf,KAAK,aAAa,EAClB,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,cAAc,EACnB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,eAAe,EACf,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,eAAe,EACf,KAAK,aAAa,EAClB,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,cAAc,EACnB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,OAAO,EACZ,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,cAAc,EACd,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -11,6 +11,6 @@ export { EXCLUSION_REASONS, exclusionReason, plannedSources, project, } from "./
11
11
  export { REFUSAL_REASONS, publish, renderDocument, } from "./publish.js";
12
12
  export { checkReferences, checkTitles, findReferences, resolveTarget, titlePattern, } from "./references.js";
13
13
  export { PROJECTION_ADMITS, REQUEST_DIMENSIONS, admits, checkRequest, indexedRequest, } from "./request.js";
14
- export { CURRENT_PIN, REVIEW_EXTENSION, bindReviewPins, knowledgeReport, readReviewRecord, reviewSources, reviewStatus, } from "./review.js";
14
+ export { CURRENT_PIN, PIN_KINDS, REVIEW_EXTENSION, bindReviewPins, knowledgeReport, pinHash, readReviewRecord, reviewSources, reviewStatus, } from "./review.js";
15
15
  export { YamlEmitError, emitYaml } from "./yaml.js";
16
16
  //# 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;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAmD,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAGL,eAAe,EACf,mBAAmB,EAGnB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EAKZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EAMjB,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAKL,eAAe,EAEf,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,iBAAiB,EAEjB,kBAAkB,EAElB,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,gBAAgB,EAGhB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAmD,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAGL,eAAe,EACf,mBAAmB,EAGnB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EAKZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EAMjB,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAKL,eAAe,EAEf,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,iBAAiB,EAEjB,kBAAkB,EAElB,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,SAAS,EAET,gBAAgB,EAGhB,cAAc,EACd,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AA0BA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,UAAU,EAIhB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAoB,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,WAAW,CAAC;AACpD,OAAO,EAAwB,KAAK,QAAQ,EAAW,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAA0B,MAAM,cAAc,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,yEAAyE;AACzE,eAAO,MAAM,eAAe,YAAI,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AACvF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,4EAA4E;IAC5E,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,oFAAoF;IACpF,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,cAAc,GACtB,aAAa,CA+Ef;AAUD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,GAAG,MAAM,CAOpF"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AA4BA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,UAAU,EAIhB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAoB,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,WAAW,CAAC;AACpD,OAAO,EAAwB,KAAK,QAAQ,EAAW,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAA0B,MAAM,cAAc,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,yEAAyE;AACzE,eAAO,MAAM,eAAe,YAAI,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AACvF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,4EAA4E;IAC5E,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,oFAAoF;IACpF,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,cAAc,GACtB,aAAa,CA+Ef;AAUD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,GAAG,MAAM,CAOpF"}
package/dist/publish.js CHANGED
@@ -13,7 +13,9 @@
13
13
  * here is refused in turn; this repeats until nothing more is refused.
14
14
  *
15
15
  * The help file (help.ts) carries every published document's tips, keyed by
16
- * the ID each explains, for a product's runtime.
16
+ * the ID each explains, for a product's runtime, and names the snapshot. The
17
+ * documents do not (ADR 0019): it is the same for all of them and moves with
18
+ * any record, so a document's bytes would change on every record change.
17
19
  *
18
20
  * The index is what a customer-facing tool may read (Core §10): the snapshot,
19
21
  * the request without its authorization flags, the published IDs, and the
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
package/dist/review.d.ts CHANGED
@@ -18,17 +18,31 @@
18
18
  * rules that govern each explained behavior: a rule changing under a behavior
19
19
  * changes what the behavior promises, which is catalog case P04.
20
20
  *
21
+ * A pin is one of two kinds, named by the record's `hash` (publication §3,
22
+ * ADR 0018). Without `hash`, a pin is the source's `sourceHash`, the bytes of
23
+ * the whole file, which every review made before 0.13.0 holds. With
24
+ * `hash: content-v1`, it is the source's `contentHash`, which leaves out the
25
+ * lifecycle and review fields, so approving or implementing a source, or
26
+ * marking its delivery, leaves the knowledge current. Any other `hash` is a
27
+ * kind this version does not know: every pin reads as changed.
28
+ *
21
29
  * A pin of the literal `@current` is a fixture placeholder: `bindReviewPins`
22
- * replaces it with the source's hash in the snapshot being checked, so a
23
- * case can say "reviewed against what is there now" without computing a
24
- * hash. Unbound, it never equals a hash, so it reads as changed.
30
+ * replaces it with the source's hash of the record's kind in the snapshot
31
+ * being checked, so a case can say "reviewed against what is there now"
32
+ * without computing a hash. Unbound, it never equals a hash, so it reads as
33
+ * changed.
25
34
  */
26
35
  import { type Artifact, type Graph, type KnowledgeReportSection } from "@intentset/core";
27
36
  export declare const REVIEW_EXTENSION = "intentset.org/review";
28
37
  export declare const CURRENT_PIN = "@current";
38
+ /** The pin kinds a review record can name in `hash` (publication §3). Absent means `source`, the whole file. */
39
+ export declare const PIN_KINDS: readonly ["content-v1"];
40
+ export type PinKind = (typeof PIN_KINDS)[number];
29
41
  export interface ReviewRecord {
30
42
  /** Source ID -> the source hash it was reviewed against. Entries that are not strings are dropped. */
31
43
  sources: Record<string, string>;
44
+ /** What the pins hash: absent for the whole file, `content-v1` for the content hash, anything else unknown. */
45
+ hash?: string;
32
46
  snapshot?: string;
33
47
  }
34
48
  export interface ReviewStatus {
@@ -37,6 +51,8 @@ export interface ReviewStatus {
37
51
  changed: string[];
38
52
  /** Sources the review record does not pin. */
39
53
  missing: string[];
54
+ /** The record's `hash` when this version does not know it, so no pin can match; null otherwise. */
55
+ unknownHash: string | null;
40
56
  /** `reviewedBy`, or null when the knowledge names no reviewer. */
41
57
  reviewer: string | null;
42
58
  /** `reviewedAt`, or null when absent. */
@@ -48,6 +64,8 @@ export declare function reviewSources(graph: Graph, artifact: Artifact): string[
48
64
  export declare function readReviewRecord(artifact: Artifact): ReviewRecord | null;
49
65
  /** Core §9: whether the knowledge is current against the sources it was reviewed against. */
50
66
  export declare function reviewStatus(graph: Graph, artifact: Artifact): ReviewStatus;
67
+ /** The hash a pin of this kind holds for a source, or null for a kind this version does not know. */
68
+ export declare function pinHash(kind: string | undefined): ((source: Artifact) => string) | null;
51
69
  /**
52
70
  * Bind every `@current` pin to the pinned source's hash in this graph, for
53
71
  * fixtures. Returns a new graph; the given one is not modified, and nothing
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAa,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGpG,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AACvD,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,sGAAsG;IACtG,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,cAAc,CAAC;IACnC,2FAA2F;IAC3F,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oHAAoH;AACpH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAQxE;AAED,iHAAiH;AACjH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAWxE;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAa3E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAgBlD;AAUD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,sBAAsB,CAoBpE"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAa,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGpG,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AACvD,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,gHAAgH;AAChH,eAAO,MAAM,SAAS,YAAI,YAAY,CAAU,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,sGAAsG;IACtG,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,+GAA+G;IAC/G,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,cAAc,CAAC;IACnC,2FAA2F;IAC3F,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mGAAmG;IACnG,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oHAAoH;AACpH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAQxE;AAED,iHAAiH;AACjH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAYxE;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAgB3E;AAED,qGAAqG;AACrG,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,CAAC,GAAG,IAAI,CAIvF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAkBlD;AAUD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,sBAAsB,CAoBpE"}
package/dist/review.js CHANGED
@@ -18,15 +18,26 @@
18
18
  * rules that govern each explained behavior: a rule changing under a behavior
19
19
  * changes what the behavior promises, which is catalog case P04.
20
20
  *
21
+ * A pin is one of two kinds, named by the record's `hash` (publication §3,
22
+ * ADR 0018). Without `hash`, a pin is the source's `sourceHash`, the bytes of
23
+ * the whole file, which every review made before 0.13.0 holds. With
24
+ * `hash: content-v1`, it is the source's `contentHash`, which leaves out the
25
+ * lifecycle and review fields, so approving or implementing a source, or
26
+ * marking its delivery, leaves the knowledge current. Any other `hash` is a
27
+ * kind this version does not know: every pin reads as changed.
28
+ *
21
29
  * A pin of the literal `@current` is a fixture placeholder: `bindReviewPins`
22
- * replaces it with the source's hash in the snapshot being checked, so a
23
- * case can say "reviewed against what is there now" without computing a
24
- * hash. Unbound, it never equals a hash, so it reads as changed.
30
+ * replaces it with the source's hash of the record's kind in the snapshot
31
+ * being checked, so a case can say "reviewed against what is there now"
32
+ * without computing a hash. Unbound, it never equals a hash, so it reads as
33
+ * changed.
25
34
  */
26
35
  import { graphHash } from "@intentset/core";
27
36
  import { compareStrings, sortedUnique } from "./diagnostic.js";
28
37
  export const REVIEW_EXTENSION = "intentset.org/review";
29
38
  export const CURRENT_PIN = "@current";
39
+ /** The pin kinds a review record can name in `hash` (publication §3). Absent means `source`, the whole file. */
40
+ export const PIN_KINDS = ["content-v1"];
30
41
  /** The sources a review must pin: everything explained, and the rules governing each explained behavior. Sorted. */
31
42
  export function reviewSources(graph, artifact) {
32
43
  const ids = [];
@@ -50,6 +61,8 @@ export function readReviewRecord(artifact) {
50
61
  sources[id] = pin;
51
62
  }
52
63
  const record = { sources };
64
+ if (value.hash !== undefined)
65
+ record.hash = typeof value.hash === "string" ? value.hash : JSON.stringify(value.hash);
53
66
  if (typeof value.snapshot === "string")
54
67
  record.snapshot = value.snapshot;
55
68
  return record;
@@ -57,19 +70,30 @@ export function readReviewRecord(artifact) {
57
70
  /** Core §9: whether the knowledge is current against the sources it was reviewed against. */
58
71
  export function reviewStatus(graph, artifact) {
59
72
  const record = readReviewRecord(artifact);
73
+ const hashOf = pinHash(record?.hash);
74
+ const unknownHash = record?.hash !== undefined && hashOf === null ? record.hash : null;
60
75
  const changed = [];
61
76
  const missing = [];
62
77
  for (const id of reviewSources(graph, artifact)) {
63
78
  const pin = record?.sources[id];
79
+ const source = graph.artifacts.get(id);
64
80
  if (pin === undefined)
65
81
  missing.push(id);
66
- else if (graph.artifacts.get(id)?.sourceHash !== pin)
82
+ else if (source === undefined || hashOf === null || hashOf(source) !== pin)
67
83
  changed.push(id);
68
84
  }
69
85
  const reviewer = nonEmpty(artifact.meta.reviewedBy);
70
86
  const reviewedAt = nonEmpty(artifact.meta.reviewedAt);
71
87
  const current = changed.length === 0 && missing.length === 0 && reviewer !== null && reviewedAt !== null;
72
- return { status: current ? "current" : "needs-review", changed, missing, reviewer, reviewedAt };
88
+ return { status: current ? "current" : "needs-review", changed, missing, unknownHash, reviewer, reviewedAt };
89
+ }
90
+ /** The hash a pin of this kind holds for a source, or null for a kind this version does not know. */
91
+ export function pinHash(kind) {
92
+ if (kind === undefined)
93
+ return (source) => source.sourceHash;
94
+ if (kind === "content-v1")
95
+ return (source) => source.contentHash;
96
+ return null;
73
97
  }
74
98
  /**
75
99
  * Bind every `@current` pin to the pinned source's hash in this graph, for
@@ -85,9 +109,11 @@ export function bindReviewPins(graph) {
85
109
  artifacts.set(id, artifact);
86
110
  continue;
87
111
  }
112
+ const hashOf = pinHash(typeof value.hash === "string" || value.hash === undefined ? value.hash : "");
88
113
  const sources = {};
89
114
  for (const [source, pin] of Object.entries(value.sources)) {
90
- sources[source] = pin === CURRENT_PIN ? (graph.artifacts.get(source)?.sourceHash ?? pin) : pin;
115
+ const found = graph.artifacts.get(source);
116
+ sources[source] = pin === CURRENT_PIN && found !== undefined && hashOf !== null ? hashOf(found) : pin;
91
117
  }
92
118
  const extensions = { ...artifact.meta.extensions, [REVIEW_EXTENSION]: { ...value, sources } };
93
119
  artifacts.set(id, { ...artifact, meta: { ...artifact.meta, extensions } });
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentset/publisher",
3
- "version": "0.12.0",
3
+ "version": "0.14.0",
4
4
  "description": "Audience and release projection of reviewed knowledge into Markset documents with provenance.",
5
5
  "keywords": [
6
6
  "intentset",
@@ -35,8 +35,8 @@
35
35
  }
36
36
  },
37
37
  "dependencies": {
38
- "@intentset/core": "^0.12.0",
39
- "@intentset/markset-adapter": "^0.12.0",
38
+ "@intentset/core": "^0.14.0",
39
+ "@intentset/markset-adapter": "^0.14.0",
40
40
  "@markset-lang/parser": "0.4.1",
41
41
  "@markset-lang/render-html": "0.4.1"
42
42
  }
package/src/generate.ts CHANGED
@@ -13,7 +13,11 @@
13
13
  * path appears only in a projection that admits internal records; sources
14
14
  * outside the projection are counted, not named; availability is the
15
15
  * request's own values, so a document does not list the other editions,
16
- * roles or releases its knowledge also serves.
16
+ * roles or releases its knowledge also serves. The block carries no snapshot:
17
+ * that is the same for every document in a run and moves with any record in
18
+ * the model, so the run names it once, in the help file and the index
19
+ * (publication §2, §5; ADR 0019), and a document's bytes change only when what
20
+ * it was made from does.
17
21
  *
18
22
  * The result is checked as Markset before it is emitted: a Markset error is
19
23
  * PUB003, and a `:::` directive outside Markset's vocabulary is PUB004
@@ -24,7 +28,6 @@ import { marksetCarrier } from "@intentset/markset-adapter";
24
28
  import { BLOCK_DIRECTIVE_NAMES, parseDocument } from "@markset-lang/parser";
25
29
  import { bodyLineOffset } from "./body.ts";
26
30
  import { publicationDiagnostic, sortedUnique } from "./diagnostic.ts";
27
- import type { Snapshot } from "./project.ts";
28
31
  import { type PublicationRequest, admits } from "./request.ts";
29
32
  import { type YamlValue, emitYaml } from "./yaml.ts";
30
33
 
@@ -51,7 +54,6 @@ export interface PublicationMeta {
51
54
  sources: SourceStamp[];
52
55
  /** How many explained artifacts are outside the projection and so not named. */
53
56
  withheldSources: number;
54
- snapshot: Snapshot;
55
57
  audience: string;
56
58
  /** The request's values, and the flags the knowledge requires (every one of them named by the request). */
57
59
  availability: { product: string; release: string; role: string; edition: string; flags: string[] };
@@ -61,7 +63,6 @@ export interface PublicationMeta {
61
63
  }
62
64
 
63
65
  export interface GenerateOptions {
64
- snapshot: Snapshot;
65
66
  publishedAt: string;
66
67
  }
67
68
 
@@ -109,7 +110,6 @@ export function publicationMeta(
109
110
  source,
110
111
  sources,
111
112
  withheldSources,
112
- snapshot: { commit: options.snapshot.commit, graphHash: options.snapshot.graphHash },
113
113
  audience: request.audience,
114
114
  availability: {
115
115
  product: request.product,
package/src/help.ts CHANGED
@@ -10,6 +10,9 @@
10
10
  * binds a control to the ID has already written it where the same reader can
11
11
  * see it, and nothing else of that artifact is carried: never its title, path,
12
12
  * status or prose. Two documents tipping one ID: the lower knowledge ID wins.
13
+ *
14
+ * It is also where the run names its snapshot, the commit and graph hash it
15
+ * was published from; the documents beside it do not carry one (ADR 0019).
13
16
  */
14
17
  import type { Artifact, Graph, Visibility } from "@intentset/core";
15
18
  import { compareStrings } from "./diagnostic.ts";
package/src/index.ts CHANGED
@@ -69,11 +69,14 @@ export {
69
69
  } from "./request.ts";
70
70
  export {
71
71
  CURRENT_PIN,
72
+ PIN_KINDS,
73
+ type PinKind,
72
74
  REVIEW_EXTENSION,
73
75
  type ReviewRecord,
74
76
  type ReviewStatus,
75
77
  bindReviewPins,
76
78
  knowledgeReport,
79
+ pinHash,
77
80
  readReviewRecord,
78
81
  reviewSources,
79
82
  reviewStatus,
package/src/publish.ts CHANGED
@@ -13,7 +13,9 @@
13
13
  * here is refused in turn; this repeats until nothing more is refused.
14
14
  *
15
15
  * The help file (help.ts) carries every published document's tips, keyed by
16
- * the ID each explains, for a product's runtime.
16
+ * the ID each explains, for a product's runtime, and names the snapshot. The
17
+ * documents do not (ADR 0019): it is the same for all of them and moves with
18
+ * any record, so a document's bytes would change on every record change.
17
19
  *
18
20
  * The index is what a customer-facing tool may read (Core §10): the snapshot,
19
21
  * the request without its authorization flags, the published IDs, and the
package/src/review.ts CHANGED
@@ -18,20 +18,34 @@
18
18
  * rules that govern each explained behavior: a rule changing under a behavior
19
19
  * changes what the behavior promises, which is catalog case P04.
20
20
  *
21
+ * A pin is one of two kinds, named by the record's `hash` (publication §3,
22
+ * ADR 0018). Without `hash`, a pin is the source's `sourceHash`, the bytes of
23
+ * the whole file, which every review made before 0.13.0 holds. With
24
+ * `hash: content-v1`, it is the source's `contentHash`, which leaves out the
25
+ * lifecycle and review fields, so approving or implementing a source, or
26
+ * marking its delivery, leaves the knowledge current. Any other `hash` is a
27
+ * kind this version does not know: every pin reads as changed.
28
+ *
21
29
  * A pin of the literal `@current` is a fixture placeholder: `bindReviewPins`
22
- * replaces it with the source's hash in the snapshot being checked, so a
23
- * case can say "reviewed against what is there now" without computing a
24
- * hash. Unbound, it never equals a hash, so it reads as changed.
30
+ * replaces it with the source's hash of the record's kind in the snapshot
31
+ * being checked, so a case can say "reviewed against what is there now"
32
+ * without computing a hash. Unbound, it never equals a hash, so it reads as
33
+ * changed.
25
34
  */
26
35
  import { type Artifact, type Graph, graphHash, type KnowledgeReportSection } from "@intentset/core";
27
36
  import { compareStrings, sortedUnique } from "./diagnostic.ts";
28
37
 
29
38
  export const REVIEW_EXTENSION = "intentset.org/review";
30
39
  export const CURRENT_PIN = "@current";
40
+ /** The pin kinds a review record can name in `hash` (publication §3). Absent means `source`, the whole file. */
41
+ export const PIN_KINDS = ["content-v1"] as const;
42
+ export type PinKind = (typeof PIN_KINDS)[number];
31
43
 
32
44
  export interface ReviewRecord {
33
45
  /** Source ID -> the source hash it was reviewed against. Entries that are not strings are dropped. */
34
46
  sources: Record<string, string>;
47
+ /** What the pins hash: absent for the whole file, `content-v1` for the content hash, anything else unknown. */
48
+ hash?: string;
35
49
  snapshot?: string;
36
50
  }
37
51
 
@@ -41,6 +55,8 @@ export interface ReviewStatus {
41
55
  changed: string[];
42
56
  /** Sources the review record does not pin. */
43
57
  missing: string[];
58
+ /** The record's `hash` when this version does not know it, so no pin can match; null otherwise. */
59
+ unknownHash: string | null;
44
60
  /** `reviewedBy`, or null when the knowledge names no reviewer. */
45
61
  reviewer: string | null;
46
62
  /** `reviewedAt`, or null when absent. */
@@ -68,6 +84,7 @@ export function readReviewRecord(artifact: Artifact): ReviewRecord | null {
68
84
  if (typeof pin === "string") sources[id] = pin;
69
85
  }
70
86
  const record: ReviewRecord = { sources };
87
+ if (value.hash !== undefined) record.hash = typeof value.hash === "string" ? value.hash : JSON.stringify(value.hash);
71
88
  if (typeof value.snapshot === "string") record.snapshot = value.snapshot;
72
89
  return record;
73
90
  }
@@ -75,17 +92,27 @@ export function readReviewRecord(artifact: Artifact): ReviewRecord | null {
75
92
  /** Core §9: whether the knowledge is current against the sources it was reviewed against. */
76
93
  export function reviewStatus(graph: Graph, artifact: Artifact): ReviewStatus {
77
94
  const record = readReviewRecord(artifact);
95
+ const hashOf = pinHash(record?.hash);
96
+ const unknownHash = record?.hash !== undefined && hashOf === null ? record.hash : null;
78
97
  const changed: string[] = [];
79
98
  const missing: string[] = [];
80
99
  for (const id of reviewSources(graph, artifact)) {
81
100
  const pin = record?.sources[id];
101
+ const source = graph.artifacts.get(id);
82
102
  if (pin === undefined) missing.push(id);
83
- else if (graph.artifacts.get(id)?.sourceHash !== pin) changed.push(id);
103
+ else if (source === undefined || hashOf === null || hashOf(source) !== pin) changed.push(id);
84
104
  }
85
105
  const reviewer = nonEmpty(artifact.meta.reviewedBy);
86
106
  const reviewedAt = nonEmpty(artifact.meta.reviewedAt);
87
107
  const current = changed.length === 0 && missing.length === 0 && reviewer !== null && reviewedAt !== null;
88
- return { status: current ? "current" : "needs-review", changed, missing, reviewer, reviewedAt };
108
+ return { status: current ? "current" : "needs-review", changed, missing, unknownHash, reviewer, reviewedAt };
109
+ }
110
+
111
+ /** The hash a pin of this kind holds for a source, or null for a kind this version does not know. */
112
+ export function pinHash(kind: string | undefined): ((source: Artifact) => string) | null {
113
+ if (kind === undefined) return (source) => source.sourceHash;
114
+ if (kind === "content-v1") return (source) => source.contentHash;
115
+ return null;
89
116
  }
90
117
 
91
118
  /**
@@ -102,9 +129,11 @@ export function bindReviewPins(graph: Graph): Graph {
102
129
  artifacts.set(id, artifact);
103
130
  continue;
104
131
  }
132
+ const hashOf = pinHash(typeof value.hash === "string" || value.hash === undefined ? value.hash : "");
105
133
  const sources: Record<string, unknown> = {};
106
134
  for (const [source, pin] of Object.entries(value.sources)) {
107
- sources[source] = pin === CURRENT_PIN ? (graph.artifacts.get(source)?.sourceHash ?? pin) : pin;
135
+ const found = graph.artifacts.get(source);
136
+ sources[source] = pin === CURRENT_PIN && found !== undefined && hashOf !== null ? hashOf(found) : pin;
108
137
  }
109
138
  const extensions = { ...artifact.meta.extensions, [REVIEW_EXTENSION]: { ...value, sources } };
110
139
  artifacts.set(id, { ...artifact, meta: { ...artifact.meta, extensions } });