@proposit/proposit-core 0.10.0 → 0.11.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.
Files changed (67) hide show
  1. package/README.md +88 -9
  2. package/dist/cli/commands/premises.d.ts.map +1 -1
  3. package/dist/cli/commands/premises.js +82 -5
  4. package/dist/cli/commands/premises.js.map +1 -1
  5. package/dist/cli/commands/render.d.ts.map +1 -1
  6. package/dist/cli/commands/render.js +2 -1
  7. package/dist/cli/commands/render.js.map +1 -1
  8. package/dist/cli/engine.d.ts.map +1 -1
  9. package/dist/cli/engine.js +3 -0
  10. package/dist/cli/engine.js.map +1 -1
  11. package/dist/cli/import.d.ts.map +1 -1
  12. package/dist/cli/import.js +70 -13
  13. package/dist/cli/import.js.map +1 -1
  14. package/dist/cli/storage/migrate-v0.11.d.ts +15 -0
  15. package/dist/cli/storage/migrate-v0.11.d.ts.map +1 -0
  16. package/dist/cli/storage/migrate-v0.11.js +125 -0
  17. package/dist/cli/storage/migrate-v0.11.js.map +1 -0
  18. package/dist/extensions/basics/schemata.d.ts +11 -1
  19. package/dist/extensions/basics/schemata.d.ts.map +1 -1
  20. package/dist/lib/consts.d.ts.map +1 -1
  21. package/dist/lib/consts.js +6 -1
  22. package/dist/lib/consts.js.map +1 -1
  23. package/dist/lib/core/argument-engine.d.ts +39 -1
  24. package/dist/lib/core/argument-engine.d.ts.map +1 -1
  25. package/dist/lib/core/argument-engine.js +214 -13
  26. package/dist/lib/core/argument-engine.js.map +1 -1
  27. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +132 -7
  28. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
  29. package/dist/lib/core/interfaces/library.interfaces.d.ts +13 -0
  30. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
  31. package/dist/lib/core/managed-derivation-premise-engine.d.ts +155 -0
  32. package/dist/lib/core/managed-derivation-premise-engine.d.ts.map +1 -0
  33. package/dist/lib/core/managed-derivation-premise-engine.js +517 -0
  34. package/dist/lib/core/managed-derivation-premise-engine.js.map +1 -0
  35. package/dist/lib/core/premise-engine.d.ts +6 -5
  36. package/dist/lib/core/premise-engine.d.ts.map +1 -1
  37. package/dist/lib/core/premise-engine.js +5 -3
  38. package/dist/lib/core/premise-engine.js.map +1 -1
  39. package/dist/lib/core/proposit-core.d.ts.map +1 -1
  40. package/dist/lib/core/proposit-core.js +14 -0
  41. package/dist/lib/core/proposit-core.js.map +1 -1
  42. package/dist/lib/index.d.ts +3 -0
  43. package/dist/lib/index.d.ts.map +1 -1
  44. package/dist/lib/index.js +2 -0
  45. package/dist/lib/index.js.map +1 -1
  46. package/dist/lib/schemata/import.d.ts +39 -2
  47. package/dist/lib/schemata/import.d.ts.map +1 -1
  48. package/dist/lib/schemata/import.js +22 -1
  49. package/dist/lib/schemata/import.js.map +1 -1
  50. package/dist/lib/schemata/propositional.d.ts +32 -1
  51. package/dist/lib/schemata/propositional.d.ts.map +1 -1
  52. package/dist/lib/schemata/propositional.js +17 -2
  53. package/dist/lib/schemata/propositional.js.map +1 -1
  54. package/dist/lib/types/evaluation.d.ts +1 -1
  55. package/dist/lib/types/evaluation.d.ts.map +1 -1
  56. package/dist/lib/types/validation.d.ts +10 -0
  57. package/dist/lib/types/validation.d.ts.map +1 -1
  58. package/dist/lib/types/validation.js +11 -0
  59. package/dist/lib/types/validation.js.map +1 -1
  60. package/dist/lib/utils/derivation-validation.d.ts +24 -0
  61. package/dist/lib/utils/derivation-validation.d.ts.map +1 -0
  62. package/dist/lib/utils/derivation-validation.js +107 -0
  63. package/dist/lib/utils/derivation-validation.js.map +1 -0
  64. package/dist/lib/utils/lookup.d.ts.map +1 -1
  65. package/dist/lib/utils/lookup.js +1 -0
  66. package/dist/lib/utils/lookup.js.map +1 -1
  67. package/package.json +1 -1
@@ -0,0 +1,125 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { getStateDir } from "../config.js";
4
+ const MARKER = ".proposit-v0.11";
5
+ /**
6
+ * One-time migration of CLI state directories from pre-v0.11.0 to v0.11.0:
7
+ *
8
+ * - Backfills `type: "freeform"` on every premise `meta.json` that lacks it.
9
+ *
10
+ * Checksums are NOT stored in premise `meta.json` on disk — they are computed
11
+ * lazily at hydration time by `ArgumentEngine.fromSnapshot` via `flushChecksums()`.
12
+ * No checksum recomputation pass is required here; the runtime handles it.
13
+ *
14
+ * Detected via the absence of a `.proposit-v0.11` marker in the state dir;
15
+ * once migration completes (or there is nothing to migrate) the marker is
16
+ * written so subsequent CLI invocations no-op immediately.
17
+ */
18
+ export async function migrateV011() {
19
+ const stateDir = getStateDir();
20
+ const markerPath = path.join(stateDir, MARKER);
21
+ // Step 1: Detection — skip if marker exists.
22
+ try {
23
+ await fs.access(markerPath);
24
+ return; // Already migrated.
25
+ }
26
+ catch {
27
+ // Marker missing — proceed with migration.
28
+ }
29
+ // If the state dir doesn't exist yet (fresh install), there's nothing to
30
+ // migrate. Create the directory and drop the marker so we don't re-check
31
+ // every invocation.
32
+ try {
33
+ await fs.mkdir(stateDir, { recursive: true });
34
+ }
35
+ catch {
36
+ // mkdir failures are surfaced by later steps when they touch files.
37
+ }
38
+ // Step 2: Backfill premise types.
39
+ await backfillPremiseTypes(stateDir);
40
+ // Step 3: Marker write.
41
+ await fs.writeFile(markerPath, new Date().toISOString());
42
+ process.stderr.write(`[proposit] Migrated state directory to v0.11.0 format at ${stateDir}\n`);
43
+ }
44
+ async function readJsonFile(filePath) {
45
+ try {
46
+ const content = await fs.readFile(filePath, "utf-8");
47
+ return JSON.parse(content);
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
53
+ async function writeJsonFile(filePath, data) {
54
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
55
+ await fs.writeFile(filePath, JSON.stringify(data, null, 2));
56
+ }
57
+ /**
58
+ * Walks `{stateDir}/arguments/{id}/{version}/premises/{premiseId}/meta.json`
59
+ * for every argument/version/premise combination and adds `type: "freeform"`
60
+ * where the field is absent.
61
+ *
62
+ * Checksums are not stored in premise meta.json — they are recomputed at
63
+ * runtime by `flushChecksums()` during engine hydration. No checksum pass is
64
+ * needed here; the cascade to argument-level checksums is handled automatically
65
+ * when `ArgumentEngine.fromSnapshot` restores the engine.
66
+ */
67
+ async function backfillPremiseTypes(stateDir) {
68
+ const argumentsDir = path.join(stateDir, "arguments");
69
+ let argumentDirs;
70
+ try {
71
+ const entries = await fs.readdir(argumentsDir, { withFileTypes: true });
72
+ argumentDirs = entries
73
+ .filter((e) => e.isDirectory())
74
+ .map((e) => path.join(argumentsDir, e.name));
75
+ }
76
+ catch {
77
+ return; // No arguments directory — nothing to migrate.
78
+ }
79
+ let backfilled = 0;
80
+ for (const argumentDir of argumentDirs) {
81
+ // Each sub-directory with a numeric name is a version directory.
82
+ let versionEntries;
83
+ try {
84
+ versionEntries = await fs.readdir(argumentDir, {
85
+ withFileTypes: true,
86
+ });
87
+ }
88
+ catch {
89
+ continue;
90
+ }
91
+ const versionDirs = versionEntries
92
+ .filter((e) => e.isDirectory() && /^\d+$/.test(e.name))
93
+ .map((e) => path.join(argumentDir, e.name));
94
+ for (const versionDir of versionDirs) {
95
+ const premisesDir = path.join(versionDir, "premises");
96
+ let premiseEntries;
97
+ try {
98
+ premiseEntries = await fs.readdir(premisesDir, {
99
+ withFileTypes: true,
100
+ });
101
+ }
102
+ catch {
103
+ continue; // No premises directory for this version.
104
+ }
105
+ const premiseDirs = premiseEntries
106
+ .filter((e) => e.isDirectory())
107
+ .map((e) => path.join(premisesDir, e.name));
108
+ for (const premiseDir of premiseDirs) {
109
+ const metaPath = path.join(premiseDir, "meta.json");
110
+ const meta = await readJsonFile(metaPath);
111
+ if (!meta)
112
+ continue;
113
+ if (meta.type !== undefined)
114
+ continue; // Already has type.
115
+ meta.type = "freeform";
116
+ await writeJsonFile(metaPath, meta);
117
+ backfilled++;
118
+ }
119
+ }
120
+ }
121
+ if (backfilled > 0) {
122
+ process.stderr.write(`[proposit migration] Backfilled type='freeform' on ${backfilled} pre-existing premise(s)\n`);
123
+ }
124
+ }
125
+ //# sourceMappingURL=migrate-v0.11.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-v0.11.js","sourceRoot":"","sources":["../../../src/cli/storage/migrate-v0.11.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,8 @@ export declare const BasicsClaimSchema: Type.TIntersect<[Type.TObject<{
21
21
  body: Type.TString;
22
22
  }>]>;
23
23
  export type TBasicsClaim = Static<typeof BasicsClaimSchema>;
24
- export declare const BasicsPremiseSchema: Type.TIntersect<[Type.TObject<{
24
+ export declare const BasicsPremiseSchema: Type.TIntersect<[Type.TUnion<[Type.TObject<{
25
+ type: Type.TLiteral<"freeform">;
25
26
  id: Type.TString;
26
27
  argumentId: Type.TString;
27
28
  argumentVersion: Type.TNumber;
@@ -29,6 +30,15 @@ export declare const BasicsPremiseSchema: Type.TIntersect<[Type.TObject<{
29
30
  descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
30
31
  combinedChecksum: Type.TString;
31
32
  }>, Type.TObject<{
33
+ type: Type.TLiteral<"derivation">;
34
+ derivedClaimId: Type.TString;
35
+ id: Type.TString;
36
+ argumentId: Type.TString;
37
+ argumentVersion: Type.TNumber;
38
+ checksum: Type.TString;
39
+ descendantChecksum: Type.TUnion<[Type.TString, Type.TNull]>;
40
+ combinedChecksum: Type.TString;
41
+ }>]>, Type.TObject<{
32
42
  title: Type.TString;
33
43
  }>]>;
34
44
  export type TBasicsPremise = Static<typeof BasicsPremiseSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../../../src/extensions/basics/schemata.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAO3C,eAAO,MAAM,oBAAoB;;;;;;;;;IAM/B,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,iBAAiB;;;;;;;;;IAM5B,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,mBAAmB;;;;;;;;;IAK9B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AA4B/D,eAAO,MAAM,mBAAmB,cAI9B,CAAA"}
1
+ {"version":3,"file":"schemata.d.ts","sourceRoot":"","sources":["../../../src/extensions/basics/schemata.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAO3C,eAAO,MAAM,oBAAoB;;;;;;;;;IAM/B,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,iBAAiB;;;;;;;;;IAM5B,CAAA;AACF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;IAK9B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AA4B/D,eAAO,MAAM,mBAAmB,cAI9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,mBAAmB,CA+BjE,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACxC,mBAAmB,GAAG,SAAS,CAuBjC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAkBtC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,mBAAmB,GAChC,mBAAmB,CAiBrB"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,mBAAmB,CAoCjE,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACxC,mBAAmB,GAAG,SAAS,CAuBjC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAkBtC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,mBAAmB,GAChC,mBAAmB,CAiBrB"}
@@ -19,7 +19,12 @@ export const DEFAULT_CHECKSUM_CONFIG = {
19
19
  "boundArgumentId",
20
20
  "boundArgumentVersion",
21
21
  ]),
22
- premiseFields: new Set(["argumentId", "argumentVersion"]),
22
+ premiseFields: new Set([
23
+ "argumentId",
24
+ "argumentVersion",
25
+ "type",
26
+ "derivedClaimId",
27
+ ]),
23
28
  argumentFields: new Set(["version"]),
24
29
  roleFields: new Set(["conclusionPremiseId"]),
25
30
  claimFields: new Set(["version", "type"]),
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/lib/consts.ts"],"names":[],"mappings":"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"}
@@ -81,14 +81,42 @@ export declare class ArgumentEngine<TArg extends TCoreArgument = TCoreArgument,
81
81
  setExtras(extras: Record<string, unknown>): TCoreMutationResult<Record<string, unknown>, TExpr, TVar, TPremise, TArg>;
82
82
  updateExtras(updates: Record<string, unknown>): TCoreMutationResult<Record<string, unknown>, TExpr, TVar, TPremise, TArg>;
83
83
  toDisplayString(): string;
84
- createPremise(extras?: Record<string, unknown>, symbol?: string): TCoreMutationResult<PremiseEngine<TArg, TPremise, TExpr, TVar>, TExpr, TVar, TPremise, TArg>;
84
+ /** @internal Normalized options bag used internally by createPremise/createPremiseWithId. */
85
+ private static parsePremiseArgsInternal;
86
+ createPremise(): TCoreMutationResult<PremiseEngine<TArg, TPremise, TExpr, TVar>, TExpr, TVar, TPremise, TArg>;
87
+ createPremise(extras: Record<string, unknown> | undefined, symbol: string): TCoreMutationResult<PremiseEngine<TArg, TPremise, TExpr, TVar>, TExpr, TVar, TPremise, TArg>;
88
+ createPremise(extras: Record<string, unknown>, symbol?: string): TCoreMutationResult<PremiseEngine<TArg, TPremise, TExpr, TVar>, TExpr, TVar, TPremise, TArg>;
89
+ createPremise(options: {
90
+ type?: "freeform" | "derivation";
91
+ derivedClaimId?: string;
92
+ extras?: Record<string, unknown>;
93
+ symbol?: string;
94
+ }): TCoreMutationResult<PremiseEngine<TArg, TPremise, TExpr, TVar>, TExpr, TVar, TPremise, TArg>;
85
95
  createPremiseWithId(id: string, extras?: Record<string, unknown>, symbol?: string): TCoreMutationResult<PremiseEngine<TArg, TPremise, TExpr, TVar>, TExpr, TVar, TPremise, TArg>;
96
+ createPremiseWithId(id: string, options: {
97
+ type?: "freeform" | "derivation";
98
+ derivedClaimId?: string;
99
+ extras?: Record<string, unknown>;
100
+ symbol?: string;
101
+ }): TCoreMutationResult<PremiseEngine<TArg, TPremise, TExpr, TVar>, TExpr, TVar, TPremise, TArg>;
86
102
  removePremise(premiseId: string): TCoreMutationResult<TPremise | undefined, TExpr, TVar, TPremise, TArg>;
87
103
  getPremise(premiseId: string): PremiseEngine<TArg, TPremise, TExpr, TVar> | undefined;
88
104
  hasPremise(premiseId: string): boolean;
89
105
  listPremiseIds(): string[];
90
106
  listPremises(): PremiseEngine<TArg, TPremise, TExpr, TVar>[];
91
107
  addVariable(variable: TOptionalChecksum<TClaimBoundVariable> & Record<string, unknown>): TCoreMutationResult<TVar, TExpr, TVar, TPremise, TArg>;
108
+ /**
109
+ * Ensures a claim-bound variable for the given claim exists in this
110
+ * argument. If one already exists, returns it. Otherwise creates a new
111
+ * claim-bound variable with a fresh UUID, the current version of the claim
112
+ * from the ClaimLibrary, and an auto-generated symbol.
113
+ *
114
+ * @throws InvariantViolationError(CLAIM_NOT_FOUND) when the claim is not in
115
+ * the library.
116
+ *
117
+ * @since 0.11.0
118
+ */
119
+ ensureClaimBoundVariable(claimId: string): TClaimBoundVariable;
92
120
  bindVariableToPremise(variable: TOptionalChecksum<TPremiseBoundVariable> & Record<string, unknown>): TCoreMutationResult<TVar, TExpr, TVar, TPremise, TArg>;
93
121
  /** Adds a premise-bound variable that references a premise in a different argument. */
94
122
  bindVariableToExternalPremise(variable: TOptionalChecksum<TPremiseBoundVariable> & Record<string, unknown>): TCoreMutationResult<TVar, TExpr, TVar, TPremise, TArg>;
@@ -166,6 +194,16 @@ export declare class ArgumentEngine<TArg extends TCoreArgument = TCoreArgument,
166
194
  private validateAfterPremiseMutation;
167
195
  validate(): TInvariantValidationResult;
168
196
  validateEvaluability(): TCoreValidationResult;
197
+ /**
198
+ * Returns the derivation-specific subset of `validateEvaluability` checks.
199
+ * Apps can pre-check derivation premise structures before invoking the full
200
+ * evaluation pipeline.
201
+ *
202
+ * @since 0.11.0
203
+ */
204
+ validateDerivationStructures(): TInvariantValidationResult;
205
+ private collectDerivationStructureIssues;
206
+ private collectDerivationViolations;
169
207
  private asValidationContext;
170
208
  private asEvaluationContext;
171
209
  evaluate(assignment: TCoreExpressionAssignment, options?: TCoreArgumentEvaluationOptions): TCoreArgumentEvaluationResult;
@@ -1 +1 @@
1
- {"version":3,"file":"argument-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/argument-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"argument-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/argument-engine.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import { isClaimBound, isPremiseBound, } from "../schemata/index.js";
2
2
  import { DEFAULT_GRAMMAR_CONFIG, PERMISSIVE_GRAMMAR_CONFIG, } from "../types/grammar.js";
3
+ import { CLAIM_NOT_FOUND, CREATE_DERIVATION_CLAIM_NOT_FOUND, CREATE_DERIVATION_REQUIRES_DERIVED_CLAIM_ID, DERIVATION_STRUCTURE_INVALID_AT_EVALUATION, } from "../types/validation.js";
4
+ import { validateDerivationStructure } from "../utils/derivation-validation.js";
3
5
  import { DEFAULT_CHECKSUM_CONFIG, normalizeChecksumConfig, serializeChecksumConfig, } from "../consts.js";
4
6
  import { ChangeCollector } from "./change-collector.js";
5
7
  import { canonicalSerialize, computeHash, entityChecksum } from "./checksum.js";
6
8
  import { evaluateArgument as evaluateArgumentStandalone, checkArgumentValidity as checkArgumentValidityStandalone, } from "./evaluation/argument-evaluation.js";
9
+ import { makeErrorIssue, makeValidationResult, } from "./evaluation/validation.js";
7
10
  import { validateArgument as validateArgumentStandalone, validateArgumentAfterPremiseMutation as validateAfterPremiseMutationStandalone, validateArgumentEvaluability as validateArgumentEvaluabilityStandalone, collectArgumentReferencedVariables as collectArgumentReferencedVariablesStandalone, } from "./argument-validation.js";
8
11
  import { InvariantViolationError } from "./invariant-violation-error.js";
9
12
  import { PremiseEngine } from "./premise-engine.js";
@@ -348,20 +351,79 @@ export class ArgumentEngine {
348
351
  }
349
352
  return lines.join("\n");
350
353
  }
351
- createPremise(extras, symbol) {
352
- return this.createPremiseWithId(this.generateId(), extras, symbol);
354
+ /** @internal Normalized options bag used internally by createPremise/createPremiseWithId. */
355
+ static parsePremiseArgsInternal(arg1, arg2) {
356
+ const isTypedBag = arg1 !== null &&
357
+ arg1 !== undefined &&
358
+ (typeof arg1.type === "string" ||
359
+ typeof arg1.derivedClaimId ===
360
+ "string");
361
+ if (isTypedBag) {
362
+ const bag = arg1;
363
+ return {
364
+ type: bag.type ?? "freeform",
365
+ derivedClaimId: bag.derivedClaimId,
366
+ extras: bag.extras,
367
+ symbol: bag.symbol,
368
+ };
369
+ }
370
+ return {
371
+ type: "freeform",
372
+ extras: arg1,
373
+ symbol: arg2,
374
+ };
375
+ }
376
+ createPremise(arg1, arg2) {
377
+ return this.createPremiseWithId(this.generateId(), arg1, arg2);
353
378
  }
354
- createPremiseWithId(id, extras, symbol) {
379
+ createPremiseWithId(id, arg2, arg3) {
380
+ const options = ArgumentEngine.parsePremiseArgsInternal(arg2, arg3);
355
381
  return this.withValidation(() => {
356
382
  if (this.premises.has(id)) {
357
383
  throw new Error(`Premise "${id}" already exists.`);
358
384
  }
359
- const premiseData = {
360
- ...extras,
361
- id,
362
- argumentId: this.argument.id,
363
- argumentVersion: this.argument.version,
364
- };
385
+ // Derivation init flow — only when not restoring from snapshot.
386
+ if (options.type === "derivation" && !this.restoringFromSnapshot) {
387
+ if (!options.derivedClaimId) {
388
+ throw new InvariantViolationError([
389
+ {
390
+ code: CREATE_DERIVATION_REQUIRES_DERIVED_CLAIM_ID,
391
+ message: `${CREATE_DERIVATION_REQUIRES_DERIVED_CLAIM_ID}: createPremise with type "derivation" requires derivedClaimId`,
392
+ entityType: "premise",
393
+ entityId: id,
394
+ premiseId: id,
395
+ },
396
+ ]);
397
+ }
398
+ const claim = this.claimLibrary.getCurrent(options.derivedClaimId);
399
+ if (!claim) {
400
+ throw new InvariantViolationError([
401
+ {
402
+ code: CREATE_DERIVATION_CLAIM_NOT_FOUND,
403
+ message: `${CREATE_DERIVATION_CLAIM_NOT_FOUND}: claim ${options.derivedClaimId} not found in claim library`,
404
+ entityType: "claim",
405
+ entityId: options.derivedClaimId,
406
+ },
407
+ ]);
408
+ }
409
+ }
410
+ const premiseType = options.type ?? "freeform";
411
+ const premiseData = premiseType === "derivation" && options.derivedClaimId
412
+ ? {
413
+ ...options.extras,
414
+ id,
415
+ argumentId: this.argument.id,
416
+ argumentVersion: this.argument.version,
417
+ type: "derivation",
418
+ derivedClaimId: options.derivedClaimId,
419
+ }
420
+ : {
421
+ ...options.extras,
422
+ id,
423
+ argumentId: this.argument.id,
424
+ argumentVersion: this.argument.version,
425
+ type: "freeform",
426
+ };
365
427
  const pm = new PremiseEngine(premiseData, {
366
428
  argument: this.argument,
367
429
  variables: this.variables,
@@ -391,7 +453,7 @@ export class ArgumentEngine {
391
453
  }
392
454
  // Auto-create a premise-bound variable for this premise
393
455
  if (!this.restoringFromSnapshot) {
394
- const autoSymbol = symbol ?? this.generateUniqueSymbol();
456
+ const autoSymbol = options.symbol ?? this.generateUniqueSymbol();
395
457
  const autoVariable = {
396
458
  id: this.generateId(),
397
459
  argumentId: this.argument.id,
@@ -408,6 +470,44 @@ export class ArgumentEngine {
408
470
  collector.addedVariable(withChecksum);
409
471
  this.markAllPremisesDirty();
410
472
  }
473
+ // Derivation init: add naked-Q root expression for the consequent variable.
474
+ // Only runs when not restoring from snapshot.
475
+ if (options.type === "derivation" &&
476
+ options.derivedClaimId &&
477
+ !this.restoringFromSnapshot) {
478
+ // Track existing variables before ensureClaimBoundVariable so we
479
+ // can detect whether a new variable was materialized.
480
+ const variablesBefore = new Set(this.variables.toArray().map((v) => v.id));
481
+ const consequentVariable = this.ensureClaimBoundVariable(options.derivedClaimId);
482
+ // If ensureClaimBoundVariable created a new variable, record it.
483
+ if (!variablesBefore.has(consequentVariable.id)) {
484
+ collector.addedVariable(consequentVariable);
485
+ this.markAllPremisesDirty();
486
+ }
487
+ // Add the naked-Q root expression via appendExpression.
488
+ const { changes: exprChanges } = pm.appendExpression(null, {
489
+ id: this.generateId(),
490
+ type: "variable",
491
+ variableId: consequentVariable.id,
492
+ premiseId: id,
493
+ argumentId: this.argument.id,
494
+ argumentVersion: this.argument.version,
495
+ });
496
+ // Merge expression changes into the outer collector.
497
+ if (exprChanges.expressions) {
498
+ for (const e of exprChanges.expressions.added) {
499
+ collector.addedExpression(e);
500
+ }
501
+ for (const e of exprChanges.expressions.modified) {
502
+ collector.modifiedExpression(e);
503
+ }
504
+ }
505
+ if (exprChanges.premises) {
506
+ for (const p of exprChanges.premises.modified) {
507
+ collector.modifiedPremise(p);
508
+ }
509
+ }
510
+ }
411
511
  const changes = this.finalizeChanges(collector);
412
512
  return {
413
513
  result: pm,
@@ -499,6 +599,51 @@ export class ArgumentEngine {
499
599
  };
500
600
  });
501
601
  }
602
+ /**
603
+ * Ensures a claim-bound variable for the given claim exists in this
604
+ * argument. If one already exists, returns it. Otherwise creates a new
605
+ * claim-bound variable with a fresh UUID, the current version of the claim
606
+ * from the ClaimLibrary, and an auto-generated symbol.
607
+ *
608
+ * @throws InvariantViolationError(CLAIM_NOT_FOUND) when the claim is not in
609
+ * the library.
610
+ *
611
+ * @since 0.11.0
612
+ */
613
+ ensureClaimBoundVariable(claimId) {
614
+ // Return existing claim-bound variable if one is already bound to this claim.
615
+ const existing = this.variables
616
+ .toArray()
617
+ .find((v) => isClaimBound(v) &&
618
+ v.claimId === claimId);
619
+ if (existing) {
620
+ return existing;
621
+ }
622
+ // Verify the claim exists in the library.
623
+ const currentClaim = this.claimLibrary.getCurrent(claimId);
624
+ if (!currentClaim) {
625
+ throw new InvariantViolationError([
626
+ {
627
+ code: CLAIM_NOT_FOUND,
628
+ message: `${CLAIM_NOT_FOUND}: Claim ${claimId} not found in claim library`,
629
+ entityType: "claim",
630
+ entityId: claimId,
631
+ },
632
+ ]);
633
+ }
634
+ const rawVariable = {
635
+ id: this.generateId(),
636
+ argumentId: this.argument.id,
637
+ argumentVersion: this.argument.version,
638
+ symbol: this.generateUniqueSymbol(),
639
+ claimId,
640
+ claimVersion: currentClaim.version,
641
+ };
642
+ const withChecksum = this.attachVariableChecksum(rawVariable);
643
+ this.variables.addVariable(withChecksum);
644
+ this.markAllPremisesDirty();
645
+ return withChecksum;
646
+ }
502
647
  bindVariableToPremise(variable) {
503
648
  return this.withValidation(() => {
504
649
  if (variable.argumentId !== this.argument.id) {
@@ -931,8 +1076,18 @@ export class ArgumentEngine {
931
1076
  // Create premises (premise-bound variables reference them)
932
1077
  const premiseEngines = new Map();
933
1078
  for (const premise of premises) {
934
- const { id: _id, argumentId: _argumentId, argumentVersion: _argumentVersion, checksum: _checksum, ...extras } = premise;
935
- const { result: pe } = engine.createPremiseWithId(premise.id, extras);
1079
+ // Restoration shape: every sibling property on the row that isn't
1080
+ // an entity-id or hierarchical-checksum field is a project extra.
1081
+ // Pull `type` / `derivedClaimId` out explicitly and pass the rest
1082
+ // under the typed-bag's `extras` slot so they survive the parser.
1083
+ // Pre-CR-2026-05-07: passing the row directly tripped the
1084
+ // typed-bag heuristic on `type: string` and dropped every sibling.
1085
+ const { id: _id, argumentId: _argumentId, argumentVersion: _argumentVersion, checksum: _checksum, descendantChecksum: _descendantChecksum, combinedChecksum: _combinedChecksum, type, derivedClaimId, ...siblingExtras } = premise;
1086
+ const { result: pe } = engine.createPremiseWithId(premise.id, {
1087
+ type: type,
1088
+ derivedClaimId: derivedClaimId,
1089
+ extras: siblingExtras,
1090
+ });
936
1091
  premiseEngines.set(premise.id, pe);
937
1092
  }
938
1093
  // Register premise-bound variables (depend on premises)
@@ -1256,7 +1411,53 @@ export class ArgumentEngine {
1256
1411
  return validateArgumentStandalone(this.asValidationContext());
1257
1412
  }
1258
1413
  validateEvaluability() {
1259
- return validateArgumentEvaluabilityStandalone(this.asValidationContext());
1414
+ const base = validateArgumentEvaluabilityStandalone(this.asValidationContext());
1415
+ const derivationIssues = this.collectDerivationStructureIssues();
1416
+ if (derivationIssues.length === 0)
1417
+ return base;
1418
+ return makeValidationResult([...base.issues, ...derivationIssues]);
1419
+ }
1420
+ /**
1421
+ * Returns the derivation-specific subset of `validateEvaluability` checks.
1422
+ * Apps can pre-check derivation premise structures before invoking the full
1423
+ * evaluation pipeline.
1424
+ *
1425
+ * @since 0.11.0
1426
+ */
1427
+ validateDerivationStructures() {
1428
+ const violations = [];
1429
+ for (const { violation } of this.collectDerivationViolations()) {
1430
+ violations.push({
1431
+ ...violation,
1432
+ code: DERIVATION_STRUCTURE_INVALID_AT_EVALUATION,
1433
+ });
1434
+ }
1435
+ return { ok: violations.length === 0, violations };
1436
+ }
1437
+ collectDerivationStructureIssues() {
1438
+ const issues = [];
1439
+ for (const { violation } of this.collectDerivationViolations()) {
1440
+ issues.push(makeErrorIssue({
1441
+ code: DERIVATION_STRUCTURE_INVALID_AT_EVALUATION,
1442
+ message: violation.message,
1443
+ premiseId: violation.entityId,
1444
+ }));
1445
+ }
1446
+ return issues;
1447
+ }
1448
+ *collectDerivationViolations() {
1449
+ const allVars = this.variables.toArray();
1450
+ for (const premise of this.listPremises()) {
1451
+ const premiseData = premise.toPremiseData();
1452
+ if (premiseData.type !== "derivation")
1453
+ continue;
1454
+ const derivationPremise = premiseData;
1455
+ const exprs = premise.getExpressions();
1456
+ const subResult = validateDerivationStructure(derivationPremise, exprs, allVars);
1457
+ for (const violation of subResult.violations) {
1458
+ yield { violation };
1459
+ }
1460
+ }
1260
1461
  }
1261
1462
  asValidationContext() {
1262
1463
  return {