@lokascript/framework 2.0.0 → 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.
Files changed (126) hide show
  1. package/dist/aot/index.d.ts +1 -0
  2. package/dist/aot/index.d.ts.map +1 -1
  3. package/dist/aot/registry-bridge.d.ts +27 -0
  4. package/dist/aot/registry-bridge.d.ts.map +1 -0
  5. package/dist/api/create-dsl.d.ts.map +1 -1
  6. package/dist/api/dispatcher.d.ts +22 -0
  7. package/dist/api/dispatcher.d.ts.map +1 -1
  8. package/dist/api/domain-registry.d.ts +41 -0
  9. package/dist/api/domain-registry.d.ts.map +1 -1
  10. package/dist/api/index.js +1351 -21
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/core/index.js +114 -10
  13. package/dist/core/index.js.map +1 -1
  14. package/dist/core/pattern-matching/index.js +74 -10
  15. package/dist/core/pattern-matching/index.js.map +1 -1
  16. package/dist/core/pattern-matching/pattern-matcher.d.ts.map +1 -1
  17. package/dist/core/types.d.ts +80 -2
  18. package/dist/core/types.d.ts.map +1 -1
  19. package/dist/core/types.js +40 -0
  20. package/dist/core/types.js.map +1 -1
  21. package/dist/feedback/confidence-gate.d.ts +28 -0
  22. package/dist/feedback/confidence-gate.d.ts.map +1 -0
  23. package/dist/feedback/feedback-formatter.d.ts +21 -0
  24. package/dist/feedback/feedback-formatter.d.ts.map +1 -0
  25. package/dist/feedback/index.d.ts +11 -0
  26. package/dist/feedback/index.d.ts.map +1 -0
  27. package/dist/feedback/pattern-tracker.d.ts +47 -0
  28. package/dist/feedback/pattern-tracker.d.ts.map +1 -0
  29. package/dist/feedback/types.d.ts +113 -0
  30. package/dist/feedback/types.d.ts.map +1 -0
  31. package/dist/generation/index.js +2 -1
  32. package/dist/generation/index.js.map +1 -1
  33. package/dist/index.cjs +2685 -71
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.ts +6 -2
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2652 -71
  38. package/dist/index.js.map +1 -1
  39. package/dist/ir/explicit-parser.d.ts +31 -0
  40. package/dist/ir/explicit-parser.d.ts.map +1 -0
  41. package/dist/ir/explicit-renderer.d.ts +17 -0
  42. package/dist/ir/explicit-renderer.d.ts.map +1 -0
  43. package/dist/ir/from-interchange.d.ts +51 -0
  44. package/dist/ir/from-interchange.d.ts.map +1 -0
  45. package/dist/ir/index.d.ts +29 -0
  46. package/dist/ir/index.d.ts.map +1 -0
  47. package/dist/ir/index.js +1557 -0
  48. package/dist/ir/index.js.map +1 -0
  49. package/dist/ir/json-schema.d.ts +40 -0
  50. package/dist/ir/json-schema.d.ts.map +1 -0
  51. package/dist/ir/protocol-json.d.ts +73 -0
  52. package/dist/ir/protocol-json.d.ts.map +1 -0
  53. package/dist/ir/references.d.ts +19 -0
  54. package/dist/ir/references.d.ts.map +1 -0
  55. package/dist/ir/types.d.ts +141 -0
  56. package/dist/ir/types.d.ts.map +1 -0
  57. package/dist/parsing/index.js +74 -10
  58. package/dist/parsing/index.js.map +1 -1
  59. package/dist/prompts/index.d.ts +9 -0
  60. package/dist/prompts/index.d.ts.map +1 -0
  61. package/dist/prompts/prompt-generator.d.ts +49 -0
  62. package/dist/prompts/prompt-generator.d.ts.map +1 -0
  63. package/dist/prompts/types.d.ts +64 -0
  64. package/dist/prompts/types.d.ts.map +1 -0
  65. package/dist/schema/command-schema.d.ts +17 -0
  66. package/dist/schema/command-schema.d.ts.map +1 -1
  67. package/dist/schema/index.js.map +1 -1
  68. package/dist/testing/index.js +3 -0
  69. package/dist/testing/index.js.map +1 -1
  70. package/dist/training/index.d.ts +11 -0
  71. package/dist/training/index.d.ts.map +1 -0
  72. package/dist/training/jsonl-writer.d.ts +42 -0
  73. package/dist/training/jsonl-writer.d.ts.map +1 -0
  74. package/dist/training/schema-synthesizer.d.ts +20 -0
  75. package/dist/training/schema-synthesizer.d.ts.map +1 -0
  76. package/dist/training/types.d.ts +73 -0
  77. package/dist/training/types.d.ts.map +1 -0
  78. package/package.json +5 -1
  79. package/src/aot/index.ts +1 -0
  80. package/src/aot/registry-bridge.test.ts +104 -0
  81. package/src/aot/registry-bridge.ts +66 -0
  82. package/src/api/create-dsl.test.ts +306 -0
  83. package/src/api/create-dsl.ts +21 -0
  84. package/src/api/dispatcher.test.ts +66 -0
  85. package/src/api/dispatcher.ts +77 -9
  86. package/src/api/domain-registry.ts +120 -4
  87. package/src/core/pattern-matching/pattern-matcher.test.ts +131 -0
  88. package/src/core/pattern-matching/pattern-matcher.ts +102 -19
  89. package/src/core/types.ts +145 -2
  90. package/src/feedback/confidence-gate.test.ts +111 -0
  91. package/src/feedback/confidence-gate.ts +70 -0
  92. package/src/feedback/feedback-formatter.test.ts +198 -0
  93. package/src/feedback/feedback-formatter.ts +298 -0
  94. package/src/feedback/index.ts +24 -0
  95. package/src/feedback/pattern-tracker.test.ts +198 -0
  96. package/src/feedback/pattern-tracker.ts +140 -0
  97. package/src/feedback/types.ts +149 -0
  98. package/src/generation/pattern-generator.ts +2 -2
  99. package/src/index.ts +22 -0
  100. package/src/integration/llm-lse-integration.test.ts +457 -0
  101. package/src/ir/explicit-parser.test.ts +306 -0
  102. package/src/ir/explicit-parser.ts +419 -0
  103. package/src/ir/explicit-renderer.test.ts +144 -0
  104. package/src/ir/explicit-renderer.ts +146 -0
  105. package/src/ir/from-interchange.test.ts +853 -0
  106. package/src/ir/from-interchange.ts +594 -0
  107. package/src/ir/index.ts +66 -0
  108. package/src/ir/json-schema.test.ts +281 -0
  109. package/src/ir/json-schema.ts +299 -0
  110. package/src/ir/protocol-json.test.ts +1185 -0
  111. package/src/ir/protocol-json.ts +745 -0
  112. package/src/ir/references.test.ts +38 -0
  113. package/src/ir/references.ts +33 -0
  114. package/src/ir/round-trip.test.ts +557 -0
  115. package/src/ir/types.ts +181 -0
  116. package/src/prompts/index.ts +15 -0
  117. package/src/prompts/prompt-generator.test.ts +386 -0
  118. package/src/prompts/prompt-generator.ts +531 -0
  119. package/src/prompts/types.ts +89 -0
  120. package/src/schema/command-schema.ts +19 -0
  121. package/src/training/index.ts +13 -0
  122. package/src/training/jsonl-writer.test.ts +138 -0
  123. package/src/training/jsonl-writer.ts +67 -0
  124. package/src/training/schema-synthesizer.test.ts +250 -0
  125. package/src/training/schema-synthesizer.ts +306 -0
  126. package/src/training/types.ts +103 -0
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Explicit Syntax Parser
3
+ *
4
+ * Parses the universal [command role:value ...] bracket syntax.
5
+ * Domain-agnostic — schema validation is injectable via ParseExplicitOptions.
6
+ *
7
+ * Syntax:
8
+ * [command role1:value1 role2:value2 ...]
9
+ *
10
+ * Examples:
11
+ * [toggle patient:.active destination:#button]
12
+ * [put patient:"hello" destination:#output]
13
+ * [on event:click body:[toggle patient:.active]]
14
+ * [select patient:name source:users condition:age>25]
15
+ */
16
+ import type { SemanticNode } from '../core/types';
17
+ import type { ParseExplicitOptions } from './types';
18
+ /** Structural role names whose bracket-enclosed values may be nested commands. */
19
+ export declare const STRUCTURAL_ROLES: Set<string>;
20
+ /**
21
+ * Parse explicit bracket syntax into a semantic node.
22
+ *
23
+ * When `options.schemaLookup` is provided, validates roles against the
24
+ * command's schema. When omitted, accepts any role names.
25
+ */
26
+ export declare function parseExplicit(input: string, options?: ParseExplicitOptions): SemanticNode;
27
+ /**
28
+ * Check if input is explicit bracket syntax.
29
+ */
30
+ export declare function isExplicitSyntax(input: string): boolean;
31
+ //# sourceMappingURL=explicit-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explicit-parser.d.ts","sourceRoot":"","sources":["../../src/ir/explicit-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,YAAY,EAKb,MAAM,eAAe,CAAC;AAWvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpD,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,aAS3B,CAAC;AAsBH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,YAAY,CAkL7F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGvD"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Explicit Syntax Renderer
3
+ *
4
+ * Serializes SemanticNode to the universal [command role:value ...] bracket syntax.
5
+ * Zero dependencies beyond core types — no language-specific logic.
6
+ */
7
+ import type { SemanticNode } from '../core/types';
8
+ /**
9
+ * Render a semantic node as explicit bracket syntax.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * renderExplicit(node) // "[toggle patient:.active destination:#button]"
14
+ * ```
15
+ */
16
+ export declare function renderExplicit(node: SemanticNode): string;
17
+ //# sourceMappingURL=explicit-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explicit-renderer.d.ts","sourceRoot":"","sources":["../../src/ir/explicit-renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EAOb,MAAM,eAAe,CAAC;AAEvB;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAoFzD"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * InterchangeNode → SemanticNode Converter
3
+ *
4
+ * Converts the expression-level InterchangeNode AST (from core/semantic parsers)
5
+ * into the command-level SemanticNode IR used by LSE, MCP tools, and domain DSLs.
6
+ *
7
+ * This bridges the two IR pipelines in the monorepo:
8
+ * - Pipeline A (InterchangeNode): full expression trees, 16 node types
9
+ * - Pipeline B (SemanticNode): command-level semantics, opaque expression values
10
+ *
11
+ * Expression subtrees are intentionally collapsed to ExpressionValue { raw: string }
12
+ * — LSE deliberately abstracts away expression-level detail.
13
+ *
14
+ * Uses structural typing for the input to avoid a dependency on the core package.
15
+ */
16
+ import type { SemanticNode, SemanticValue } from '../core/types';
17
+ /**
18
+ * Minimal interface matching InterchangeNode's structural shape.
19
+ * Uses the `type` discriminant for dispatch. Additional fields are
20
+ * accessed dynamically — this keeps the framework free of core imports.
21
+ */
22
+ interface INode {
23
+ readonly type: string;
24
+ readonly [key: string]: unknown;
25
+ }
26
+ /**
27
+ * Convert an InterchangeNode (expression-level AST) to a SemanticNode (command-level IR).
28
+ *
29
+ * Handles all 16 InterchangeNode types:
30
+ * - Command/event nodes map to corresponding SemanticNode kinds
31
+ * - Control flow nodes (if, repeat, foreach, while) map to conditional/loop kinds
32
+ * - Expression nodes are wrapped as `get` commands with the value as patient role
33
+ *
34
+ * @param node - An InterchangeNode (or structurally compatible object)
35
+ * @returns A SemanticNode suitable for LSE rendering, protocol JSON, or MCP tools
36
+ */
37
+ export declare function fromInterchangeNode(node: INode): SemanticNode;
38
+ /**
39
+ * Convert an InterchangeNode to a SemanticValue.
40
+ *
41
+ * Simple nodes map directly to typed SemanticValue variants.
42
+ * Complex expression nodes are collapsed to ExpressionValue { raw: string }.
43
+ */
44
+ export declare function convertValue(node: INode): SemanticValue;
45
+ /**
46
+ * Recursively render an InterchangeNode expression tree to a string.
47
+ * Used to collapse complex expressions into ExpressionValue.raw.
48
+ */
49
+ export declare function renderExpr(node: INode): string;
50
+ export {};
51
+ //# sourceMappingURL=from-interchange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from-interchange.d.ts","sourceRoot":"","sources":["../../src/ir/from-interchange.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAId,MAAM,eAAe,CAAC;AAkBvB;;;;GAIG;AACH,UAAU,KAAK;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,GAAG,YAAY,CA4B7D;AAsKD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa,CAmCvD;AA0CD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CA8E9C"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * IR (Intermediate Representation)
3
+ *
4
+ * Universal explicit bracket syntax for semantic DSL interchange.
5
+ * Domain-agnostic — works for any DSL built on the framework.
6
+ *
7
+ * Three input formats converge on SemanticNode:
8
+ * 1. Bracket syntax: [toggle patient:.active destination:#button]
9
+ * 2. LLM JSON: { action: "toggle", roles: { patient: { type: "selector", value: ".active" } } }
10
+ * 3. Natural language: (handled by language-specific parsers, not this module)
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { parseExplicit, renderExplicit, jsonToSemanticNode } from '@lokascript/framework/ir';
15
+ *
16
+ * const node = parseExplicit('[toggle patient:.active]');
17
+ * const bracket = renderExplicit(node); // "[toggle patient:.active]"
18
+ * const json = semanticNodeToJSON(node); // { action: "toggle", roles: { ... } }
19
+ * ```
20
+ */
21
+ export type { SemanticJSON, SemanticJSONValue, SchemaLookup, ParseExplicitOptions, IRDiagnostic, } from './types';
22
+ export { DEFAULT_REFERENCES, isValidReference } from './references';
23
+ export { parseExplicit, isExplicitSyntax } from './explicit-parser';
24
+ export { renderExplicit } from './explicit-renderer';
25
+ export { jsonToSemanticNode, validateSemanticJSON, semanticNodeToJSON } from './json-schema';
26
+ export type { ProtocolNodeJSON, ProtocolValueJSON, ProtocolNodeKind, ProtocolChainType, ProtocolDiagnosticJSON, AnnotationJSON, MatchArmJSON, LSEEnvelopeJSON, } from './types';
27
+ export { toProtocolJSON, fromProtocolJSON, validateProtocolJSON, toEnvelopeJSON, fromEnvelopeJSON, isEnvelope, } from './protocol-json';
28
+ export { fromInterchangeNode, convertValue, renderExpr } from './from-interchange';
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ir/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAEjB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EAEpB,cAAc,EACd,gBAAgB,EAChB,UAAU,GACX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}