@ldclabs/kip-lang 2.0.2 → 2.1.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/dist/token.js CHANGED
@@ -61,6 +61,7 @@ export var TokenType;
61
61
  TokenType["Archive"] = "ARCHIVE";
62
62
  TokenType["Tombstone"] = "TOMBSTONE";
63
63
  TokenType["Purge"] = "PURGE";
64
+ TokenType["Payload"] = "PAYLOAD";
64
65
  TokenType["Confirm"] = "CONFIRM";
65
66
  TokenType["Reference"] = "REFERENCE";
66
67
  TokenType["Policy"] = "POLICY";
@@ -108,6 +109,8 @@ export var TokenType;
108
109
  TokenType["Facets"] = "FACETS";
109
110
  TokenType["Types"] = "TYPES";
110
111
  TokenType["Policies"] = "POLICIES";
112
+ TokenType["Dependents"] = "DEPENDENTS";
113
+ TokenType["Depth"] = "DEPTH";
111
114
  TokenType["Compatibility"] = "COMPATIBILITY";
112
115
  TokenType["From"] = "FROM";
113
116
  TokenType["Error"] = "ERROR";
@@ -213,6 +216,7 @@ export const KEYWORDS = new Map([
213
216
  ['ARCHIVE', TokenType.Archive],
214
217
  ['TOMBSTONE', TokenType.Tombstone],
215
218
  ['PURGE', TokenType.Purge],
219
+ ['PAYLOAD', TokenType.Payload],
216
220
  ['CONFIRM', TokenType.Confirm],
217
221
  ['REFERENCE', TokenType.Reference],
218
222
  ['POLICY', TokenType.Policy],
@@ -260,6 +264,8 @@ export const KEYWORDS = new Map([
260
264
  ['FACETS', TokenType.Facets],
261
265
  ['TYPES', TokenType.Types],
262
266
  ['POLICIES', TokenType.Policies],
267
+ ['DEPENDENTS', TokenType.Dependents],
268
+ ['DEPTH', TokenType.Depth],
263
269
  ['COMPATIBILITY', TokenType.Compatibility],
264
270
  ['FROM', TokenType.From],
265
271
  ['ERROR', TokenType.Error],
package/dist/token.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  * has to load in runtimes with no filesystem; `test/lower.test.mjs` asserts the
8
8
  * two stay in step.
9
9
  */
10
- export declare const PARSER_VERSION = "2.0.2";
10
+ export declare const PARSER_VERSION = "2.1.0";
11
11
  /** The KIP specification revision this grammar targets. */
12
12
  export declare const KIP_SPEC_REVISION = "2.0-draft";
13
13
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * has to load in runtimes with no filesystem; `test/lower.test.mjs` asserts the
8
8
  * two stay in step.
9
9
  */
10
- export const PARSER_VERSION = '2.0.2';
10
+ export const PARSER_VERSION = '2.1.0';
11
11
  /** The KIP specification revision this grammar targets. */
12
12
  export const KIP_SPEC_REVISION = '2.0-draft';
13
13
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ldclabs/kip-lang",
3
- "version": "2.0.2",
3
+ "version": "2.1.0",
4
4
  "description": "Language toolkit for KIP 2.0 (Knowledge Interaction Protocol): lexer, parser, formatter, diagnostics, and lowering of KQL/KML/META to the executable AST",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/ast.ts CHANGED
@@ -47,6 +47,7 @@ export type MutationClause =
47
47
  | ArchiveStatement
48
48
  | TombstoneStatement
49
49
  | PurgeStatement
50
+ | PurgePayloadStatement
50
51
  | MergeConceptStatement
51
52
 
52
53
  /** META — introspection, grounding, verification, history, export. */
@@ -617,6 +618,19 @@ export interface PurgeStatement extends BaseNode {
617
618
  confirm: StringLiteral
618
619
  }
619
620
 
621
+ /**
622
+ * Erases Evidence payload bytes while the element survives (Spec §60.6).
623
+ * The element survives, so there is no REFERENCE POLICY clause; the
624
+ * confirmation literal is the same `CONFIRM "PURGE"` as element purge.
625
+ */
626
+ export interface PurgePayloadStatement extends BaseNode {
627
+ kind: 'PurgePayloadStatement'
628
+ target: TargetRef
629
+ where?: WhereClause
630
+ limit?: LimitClause
631
+ confirm: StringLiteral
632
+ }
633
+
620
634
  /** Non-destructive: the source stays addressable as merged history. */
621
635
  export interface MergeConceptStatement extends BaseNode {
622
636
  kind: 'MergeConceptStatement'
@@ -677,12 +691,17 @@ export type ListTargetKind =
677
691
  | 'FACETS'
678
692
  | 'STRUCTURAL_FIELDS'
679
693
  | 'EPISTEMIC_POLICIES'
694
+ | 'DEPENDENTS'
680
695
 
681
696
  export interface ListStatement extends BaseNode {
682
697
  kind: 'ListStatement'
683
698
  target: ListTargetKind
684
699
  /** `LIST SCHEMA PACKAGES STATUS ...` */
685
700
  status?: ScalarValue
701
+ /** `LIST DEPENDENTS :id` — the element whose derived cognition is listed. */
702
+ element?: ScalarValue
703
+ /** `LIST DEPENDENTS ... DEPTH :n` — traversal bound (Spec §63.5). */
704
+ depth?: ScalarValue
686
705
  limit?: LimitClause
687
706
  cursor?: CursorClause
688
707
  }
package/src/exec-ast.ts CHANGED
@@ -314,6 +314,7 @@ export type MutationClause =
314
314
  | { Archive: RemovalStatement }
315
315
  | { Tombstone: RemovalStatement }
316
316
  | { Purge: PurgeStatement }
317
+ | { PurgePayload: PurgePayloadStatement }
317
318
  | { MergeConcept: MergeConcept }
318
319
 
319
320
  export interface ConceptCreate {
@@ -475,6 +476,18 @@ export interface PurgeStatement {
475
476
  confirm: string
476
477
  }
477
478
 
479
+ /**
480
+ * Payload-only purge (Spec §60.6): Evidence bytes are destroyed, the element
481
+ * survives, so no reference policy exists.
482
+ */
483
+ export interface PurgePayloadStatement {
484
+ target: ElementRef
485
+ where_clauses: WhereClause[] | null
486
+ limit: Scalar | null
487
+ /** Always the literal `PURGE`; the grammar freezes the spelling. */
488
+ confirm: string
489
+ }
490
+
478
491
  export interface MergeConcept {
479
492
  source: ElementRef
480
493
  into: ElementRef
@@ -525,6 +538,10 @@ export interface ListCommand {
525
538
  target: ListTarget
526
539
  /** `LIST SCHEMA PACKAGES STATUS ...` only. */
527
540
  status: Scalar | null
541
+ /** `LIST DEPENDENTS :id` only — the traversal root. */
542
+ element: Scalar | null
543
+ /** `LIST DEPENDENTS ... DEPTH :n` only. */
544
+ depth: Scalar | null
528
545
  limit: Scalar | null
529
546
  cursor: Scalar | null
530
547
  }
@@ -537,6 +554,7 @@ export type ListTarget =
537
554
  | 'Facets'
538
555
  | 'StructuralFields'
539
556
  | 'EpistemicPolicies'
557
+ | 'Dependents'
540
558
 
541
559
  export interface SearchCommand {
542
560
  target: SearchTarget
package/src/formatter.ts CHANGED
@@ -42,6 +42,7 @@ import type {
42
42
  ArchiveStatement,
43
43
  TombstoneStatement,
44
44
  PurgeStatement,
45
+ PurgePayloadStatement,
45
46
  MergeConceptStatement,
46
47
  DescribeStatement,
47
48
  ListStatement,
@@ -258,6 +259,9 @@ class Formatter {
258
259
  case 'PurgeStatement':
259
260
  this.formatPurge(stmt)
260
261
  break
262
+ case 'PurgePayloadStatement':
263
+ this.formatPurgePayload(stmt)
264
+ break
261
265
  case 'MergeConceptStatement':
262
266
  this.formatMerge(stmt)
263
267
  break
@@ -899,6 +903,19 @@ class Formatter {
899
903
  this.indentLevel--
900
904
  }
901
905
 
906
+ private formatPurgePayload(stmt: PurgePayloadStatement): void {
907
+ this.writeIndent()
908
+ this.write(`PURGE PAYLOAD ${this.targetRef(stmt.target)}`)
909
+ this.newline()
910
+ if (stmt.where) this.formatWhere(stmt.where, 'WHERE')
911
+ if (stmt.limit) this.formatLimit(stmt.limit)
912
+ this.indentLevel++
913
+ this.writeIndent()
914
+ this.write(`CONFIRM ${stmt.confirm.value}`)
915
+ this.newline()
916
+ this.indentLevel--
917
+ }
918
+
902
919
  private formatMerge(stmt: MergeConceptStatement): void {
903
920
  this.writeIndent()
904
921
  this.write(
@@ -1043,9 +1060,12 @@ class Formatter {
1043
1060
  PREDICATES: 'PREDICATES',
1044
1061
  FACETS: 'FACETS',
1045
1062
  STRUCTURAL_FIELDS: 'STRUCTURAL FIELDS',
1046
- EPISTEMIC_POLICIES: 'EPISTEMIC POLICIES'
1063
+ EPISTEMIC_POLICIES: 'EPISTEMIC POLICIES',
1064
+ DEPENDENTS: 'DEPENDENTS'
1047
1065
  }
1048
1066
  this.write(`LIST ${words[stmt.target]}`)
1067
+ if (stmt.element) this.write(` ${this.scalar(stmt.element)}`)
1068
+ if (stmt.depth) this.write(` DEPTH ${this.scalar(stmt.depth)}`)
1049
1069
  if (stmt.status) this.write(` STATUS ${this.scalar(stmt.status)}`)
1050
1070
  if (stmt.limit) this.write(` LIMIT ${this.scalar(stmt.limit.value)}`)
1051
1071
  if (stmt.cursor) this.write(` CURSOR ${this.scalar(stmt.cursor.value)}`)
package/src/index.ts CHANGED
@@ -99,6 +99,7 @@ export type {
99
99
  ArchiveStatement,
100
100
  TombstoneStatement,
101
101
  PurgeStatement,
102
+ PurgePayloadStatement,
102
103
  MergeConceptStatement,
103
104
  // META
104
105
  DescribeStatement,
@@ -206,6 +207,7 @@ export type {
206
207
  SetRetention,
207
208
  RemovalStatement,
208
209
  PurgeStatement as ExecPurgeStatement,
210
+ PurgePayloadStatement as ExecPurgePayloadStatement,
209
211
  MergeConcept,
210
212
  // META
211
213
  MetaCommand,
package/src/lower.ts CHANGED
@@ -40,6 +40,7 @@ import type {
40
40
  ArchiveStatement,
41
41
  TombstoneStatement,
42
42
  PurgeStatement,
43
+ PurgePayloadStatement,
43
44
  MergeConceptStatement,
44
45
  DescribeStatement,
45
46
  ListStatement,
@@ -253,6 +254,7 @@ export function lowerStatement(stmt: Statement): Command {
253
254
  case 'ArchiveStatement':
254
255
  case 'TombstoneStatement':
255
256
  case 'PurgeStatement':
257
+ case 'PurgePayloadStatement':
256
258
  case 'MergeConceptStatement':
257
259
  const clauses = lowerMutationClause(stmt, 0)
258
260
  assertUniqueHandles(clauses, stmt.range)
@@ -921,6 +923,8 @@ function lowerMutationClause(
921
923
  return [{ Tombstone: lowerRemoval(stmt) }]
922
924
  case 'PurgeStatement':
923
925
  return [{ Purge: lowerPurge(stmt) }]
926
+ case 'PurgePayloadStatement':
927
+ return [{ PurgePayload: lowerPurgePayload(stmt) }]
924
928
  case 'MergeConceptStatement':
925
929
  return [
926
930
  {
@@ -1252,6 +1256,21 @@ function lowerPurge(stmt: PurgeStatement) {
1252
1256
  }
1253
1257
  }
1254
1258
 
1259
+ function lowerPurgePayload(stmt: PurgePayloadStatement) {
1260
+ if (stmt.confirm.parsed !== 'PURGE') {
1261
+ throw invalidSyntax(
1262
+ 'PURGE PAYLOAD must be confirmed with the exact literal "PURGE"',
1263
+ stmt.confirm.range
1264
+ )
1265
+ }
1266
+ return {
1267
+ target: lowerElementRef(stmt.target),
1268
+ where_clauses: stmt.where ? lowerWhere(stmt.where) : null,
1269
+ limit: stmt.limit ? lowerScalar(stmt.limit.value) : null,
1270
+ confirm: 'PURGE'
1271
+ }
1272
+ }
1273
+
1255
1274
  // ---------------------------------------------------------------------------
1256
1275
  // UPDATE
1257
1276
  // ---------------------------------------------------------------------------
@@ -1769,7 +1788,8 @@ const LIST_TARGETS: Record<ListStatement['target'], ListTarget> = {
1769
1788
  PREDICATES: 'Predicates',
1770
1789
  FACETS: 'Facets',
1771
1790
  STRUCTURAL_FIELDS: 'StructuralFields',
1772
- EPISTEMIC_POLICIES: 'EpistemicPolicies'
1791
+ EPISTEMIC_POLICIES: 'EpistemicPolicies',
1792
+ DEPENDENTS: 'Dependents'
1773
1793
  }
1774
1794
 
1775
1795
  const SEARCH_TARGETS: Record<SearchStatement['searchKind'], SearchTarget> = {
@@ -1853,9 +1873,14 @@ function lowerDescribe(stmt: DescribeStatement): DescribeTarget {
1853
1873
  }
1854
1874
 
1855
1875
  function lowerList(stmt: ListStatement) {
1876
+ if (stmt.target === 'DEPENDENTS' && !stmt.element) {
1877
+ throw invalidSyntax('LIST DEPENDENTS requires an element operand', stmt.range)
1878
+ }
1856
1879
  return {
1857
1880
  target: LIST_TARGETS[stmt.target],
1858
1881
  status: stmt.status ? lowerScalar(stmt.status) : null,
1882
+ element: stmt.element ? lowerScalar(stmt.element) : null,
1883
+ depth: stmt.depth ? lowerScalar(stmt.depth) : null,
1859
1884
  limit: stmt.limit ? lowerScalar(stmt.limit.value) : null,
1860
1885
  cursor: stmt.cursor ? lowerScalar(stmt.cursor.value) : null
1861
1886
  }
package/src/parser.ts CHANGED
@@ -74,6 +74,7 @@ import type {
74
74
  ArchiveStatement,
75
75
  TombstoneStatement,
76
76
  PurgeStatement,
77
+ PurgePayloadStatement,
77
78
  MergeConceptStatement,
78
79
  DescribeStatement,
79
80
  DescribeTargetKind,
@@ -1907,10 +1908,13 @@ class Parser {
1907
1908
  }
1908
1909
  }
1909
1910
 
1910
- private parsePurgeStatement(): PurgeStatement {
1911
+ private parsePurgeStatement(): PurgeStatement | PurgePayloadStatement {
1911
1912
  const leadingComments = this.collectLeadingComments()
1912
1913
  const start = this.currentPos()
1913
- this.expectKeywordWithSpace(TokenType.Purge)
1914
+ const purge = this.expectKeywordWithSpace(TokenType.Purge)
1915
+ if (this.check(TokenType.Payload)) {
1916
+ return this.parsePurgePayloadTail(start, purge, leadingComments)
1917
+ }
1914
1918
  const target = this.parseTargetRef()
1915
1919
 
1916
1920
  let where: WhereClause | undefined
@@ -1954,6 +1958,49 @@ class Parser {
1954
1958
  }
1955
1959
  }
1956
1960
 
1961
+ /**
1962
+ * `PURGE PAYLOAD` erases Evidence bytes while the element survives
1963
+ * (Spec §60.6), so there is no REFERENCE POLICY clause; the confirmation
1964
+ * literal is the same as element purge.
1965
+ */
1966
+ private parsePurgePayloadTail(
1967
+ start: Position,
1968
+ purge: Token,
1969
+ leadingComments: string[]
1970
+ ): PurgePayloadStatement {
1971
+ this.expectSecondWord(TokenType.Payload, purge)
1972
+ const target = this.parseTargetRef()
1973
+
1974
+ let where: WhereClause | undefined
1975
+ if (this.check(TokenType.Where)) {
1976
+ this.expectKeywordWithSpace(TokenType.Where)
1977
+ this.dialect = 'raw'
1978
+ where = this.parseWhereClause()
1979
+ }
1980
+
1981
+ const limit = this.check(TokenType.Limit) ? this.parseLimitClause() : undefined
1982
+
1983
+ this.expect(TokenType.Confirm)
1984
+ const confirmTok = this.current()
1985
+ const confirm = this.parseStringLiteral()
1986
+ if (confirm.parsed !== 'PURGE') {
1987
+ this.error(
1988
+ `PURGE PAYLOAD must be confirmed with the exact literal "PURGE", got ${confirmTok.value}`,
1989
+ confirmTok
1990
+ )
1991
+ }
1992
+
1993
+ return {
1994
+ kind: 'PurgePayloadStatement',
1995
+ target,
1996
+ where,
1997
+ limit,
1998
+ confirm,
1999
+ range: { start, end: this.endPos() },
2000
+ leadingComments: leadingComments.length ? leadingComments : undefined
2001
+ }
2002
+ }
2003
+
1957
2004
  private parseMergeConcept(): MergeConceptStatement {
1958
2005
  const leadingComments = this.collectLeadingComments()
1959
2006
  const start = this.currentPos()
@@ -2123,6 +2170,8 @@ class Parser {
2123
2170
 
2124
2171
  let target: ListTargetKind
2125
2172
  let status: ScalarValue | undefined
2173
+ let element: ScalarValue | undefined
2174
+ let depth: ScalarValue | undefined
2126
2175
 
2127
2176
  switch (tok.type) {
2128
2177
  case TokenType.Spaces:
@@ -2160,6 +2209,14 @@ class Parser {
2160
2209
  target = 'EPISTEMIC_POLICIES'
2161
2210
  break
2162
2211
  }
2212
+ case TokenType.Dependents:
2213
+ // Bounded reverse provenance closure (Spec §63.5): the operand is
2214
+ // required, the DEPTH bound is optional and defaults engine-side to 1.
2215
+ this.expectSecondWord(TokenType.Dependents, list)
2216
+ target = 'DEPENDENTS'
2217
+ element = this.parseScalarValue()
2218
+ if (this.match(TokenType.Depth)) depth = this.parseScalarValue()
2219
+ break
2163
2220
  default:
2164
2221
  this.error(`Unknown LIST target '${tok.value}'`, tok)
2165
2222
  throw new ParseAbort()
@@ -2174,6 +2231,8 @@ class Parser {
2174
2231
  kind: 'ListStatement',
2175
2232
  target,
2176
2233
  status,
2234
+ element,
2235
+ depth,
2177
2236
  limit,
2178
2237
  cursor,
2179
2238
  range: { start, end: this.endPos() },
package/src/semantics.ts CHANGED
@@ -158,11 +158,12 @@ function analyzeMutationClause(stmt: Statement, diags: Diagnostic[]): void {
158
158
  ), diags)
159
159
  break
160
160
 
161
- // Spec §52.7 names six statements whose WHERE can select an unbounded set
162
- // and which SHOULD therefore carry a LIMIT. Warning on the read and on
161
+ // Spec §52.7 names seven statements whose WHERE can select an unbounded
162
+ // set and which SHOULD therefore carry a LIMIT. Warning on the read and on
163
163
  // UPDATE while staying silent on the removal ladder had it backwards: an
164
164
  // over-broad PURGE is the one that cannot be undone.
165
165
  case 'PurgeStatement':
166
+ case 'PurgePayloadStatement':
166
167
  case 'SetRetentionStatement':
167
168
  if (stmt.where) checkWhere(stmt.where, !!stmt.limit, diags)
168
169
  break
package/src/token.ts CHANGED
@@ -65,6 +65,7 @@ export enum TokenType {
65
65
  Archive = 'ARCHIVE',
66
66
  Tombstone = 'TOMBSTONE',
67
67
  Purge = 'PURGE',
68
+ Payload = 'PAYLOAD',
68
69
  Confirm = 'CONFIRM',
69
70
  Reference = 'REFERENCE',
70
71
  Policy = 'POLICY',
@@ -113,6 +114,8 @@ export enum TokenType {
113
114
  Facets = 'FACETS',
114
115
  Types = 'TYPES',
115
116
  Policies = 'POLICIES',
117
+ Dependents = 'DEPENDENTS',
118
+ Depth = 'DEPTH',
116
119
  Compatibility = 'COMPATIBILITY',
117
120
  From = 'FROM',
118
121
  Error = 'ERROR',
@@ -245,6 +248,7 @@ export const KEYWORDS: ReadonlyMap<string, TokenType> = new Map([
245
248
  ['ARCHIVE', TokenType.Archive],
246
249
  ['TOMBSTONE', TokenType.Tombstone],
247
250
  ['PURGE', TokenType.Purge],
251
+ ['PAYLOAD', TokenType.Payload],
248
252
  ['CONFIRM', TokenType.Confirm],
249
253
  ['REFERENCE', TokenType.Reference],
250
254
  ['POLICY', TokenType.Policy],
@@ -293,6 +297,8 @@ export const KEYWORDS: ReadonlyMap<string, TokenType> = new Map([
293
297
  ['FACETS', TokenType.Facets],
294
298
  ['TYPES', TokenType.Types],
295
299
  ['POLICIES', TokenType.Policies],
300
+ ['DEPENDENTS', TokenType.Dependents],
301
+ ['DEPTH', TokenType.Depth],
296
302
  ['COMPATIBILITY', TokenType.Compatibility],
297
303
  ['FROM', TokenType.From],
298
304
  ['ERROR', TokenType.Error],
package/src/version.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  * has to load in runtimes with no filesystem; `test/lower.test.mjs` asserts the
8
8
  * two stay in step.
9
9
  */
10
- export const PARSER_VERSION = '2.0.2'
10
+ export const PARSER_VERSION = '2.1.0'
11
11
 
12
12
  /** The KIP specification revision this grammar targets. */
13
13
  export const KIP_SPEC_REVISION = '2.0-draft'