@principles/core 1.277.0 → 1.277.2

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 (102) hide show
  1. package/dist/runtime-v2/__tests__/replay-production-parity.test.d.ts +13 -0
  2. package/dist/runtime-v2/__tests__/replay-production-parity.test.d.ts.map +1 -0
  3. package/dist/runtime-v2/__tests__/replay-production-parity.test.js +133 -0
  4. package/dist/runtime-v2/__tests__/replay-production-parity.test.js.map +1 -0
  5. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +36 -0
  6. package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
  7. package/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
  8. package/dist/runtime-v2/activation/activation-dispatcher.js +4 -0
  9. package/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
  10. package/dist/runtime-v2/activation/activation-types.d.ts +11 -1
  11. package/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
  12. package/dist/runtime-v2/activation/activation-types.js.map +1 -1
  13. package/dist/runtime-v2/activation/production-gate-deps.d.ts +18 -1
  14. package/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -1
  15. package/dist/runtime-v2/activation/production-gate-deps.js +5 -1
  16. package/dist/runtime-v2/activation/production-gate-deps.js.map +1 -1
  17. package/dist/runtime-v2/activation/writers/rule-host-writer.d.ts +18 -0
  18. package/dist/runtime-v2/activation/writers/rule-host-writer.d.ts.map +1 -1
  19. package/dist/runtime-v2/activation/writers/rule-host-writer.js +36 -1
  20. package/dist/runtime-v2/activation/writers/rule-host-writer.js.map +1 -1
  21. package/dist/runtime-v2/golden-trace-replay-validator.d.ts +8 -0
  22. package/dist/runtime-v2/golden-trace-replay-validator.d.ts.map +1 -1
  23. package/dist/runtime-v2/golden-trace-replay-validator.js +9 -3
  24. package/dist/runtime-v2/golden-trace-replay-validator.js.map +1 -1
  25. package/dist/runtime-v2/golden-trace.d.ts +9 -0
  26. package/dist/runtime-v2/golden-trace.d.ts.map +1 -1
  27. package/dist/runtime-v2/golden-trace.js +7 -1
  28. package/dist/runtime-v2/golden-trace.js.map +1 -1
  29. package/dist/runtime-v2/index.d.ts +5 -1
  30. package/dist/runtime-v2/index.d.ts.map +1 -1
  31. package/dist/runtime-v2/index.js +3 -1
  32. package/dist/runtime-v2/index.js.map +1 -1
  33. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js +43 -0
  34. package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js.map +1 -1
  35. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js +55 -0
  36. package/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js.map +1 -1
  37. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js +30 -9
  38. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js.map +1 -1
  39. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.d.ts +12 -0
  40. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.d.ts.map +1 -0
  41. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.js +256 -0
  42. package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.js.map +1 -0
  43. package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.js +131 -0
  44. package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.js.map +1 -1
  45. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.d.ts +11 -0
  46. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.d.ts.map +1 -0
  47. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js +133 -0
  48. package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js.map +1 -0
  49. package/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
  50. package/dist/runtime-v2/internalization/diag-router-runner.js +35 -0
  51. package/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
  52. package/dist/runtime-v2/internalization/evaluator-output.d.ts +10 -0
  53. package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
  54. package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
  55. package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  56. package/dist/runtime-v2/internalization/evaluator-runner.js +4 -0
  57. package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  58. package/dist/runtime-v2/internalization/index.d.ts +5 -1
  59. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  60. package/dist/runtime-v2/internalization/index.js +3 -1
  61. package/dist/runtime-v2/internalization/index.js.map +1 -1
  62. package/dist/runtime-v2/internalization/internalization-orchestrator.d.ts.map +1 -1
  63. package/dist/runtime-v2/internalization/internalization-orchestrator.js +23 -0
  64. package/dist/runtime-v2/internalization/internalization-orchestrator.js.map +1 -1
  65. package/dist/runtime-v2/internalization/legacy-rule-contract-scanner.d.ts +11 -0
  66. package/dist/runtime-v2/internalization/legacy-rule-contract-scanner.d.ts.map +1 -1
  67. package/dist/runtime-v2/internalization/legacy-rule-contract-scanner.js +11 -1
  68. package/dist/runtime-v2/internalization/legacy-rule-contract-scanner.js.map +1 -1
  69. package/dist/runtime-v2/internalization/refiner-rulehost-gate.d.ts +21 -0
  70. package/dist/runtime-v2/internalization/refiner-rulehost-gate.d.ts.map +1 -1
  71. package/dist/runtime-v2/internalization/refiner-rulehost-gate.js +30 -9
  72. package/dist/runtime-v2/internalization/refiner-rulehost-gate.js.map +1 -1
  73. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts +18 -0
  74. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
  75. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +11 -3
  76. package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
  77. package/dist/runtime-v2/internalization/rule-code-validator.d.ts +7 -4
  78. package/dist/runtime-v2/internalization/rule-code-validator.d.ts.map +1 -1
  79. package/dist/runtime-v2/internalization/rule-code-validator.js +25 -2
  80. package/dist/runtime-v2/internalization/rule-code-validator.js.map +1 -1
  81. package/dist/runtime-v2/internalization/rule-context-v2.d.ts.map +1 -1
  82. package/dist/runtime-v2/internalization/rule-context-v2.js +6 -26
  83. package/dist/runtime-v2/internalization/rule-context-v2.js.map +1 -1
  84. package/dist/runtime-v2/internalization/rule-host-contracts.d.ts +10 -1
  85. package/dist/runtime-v2/internalization/rule-host-contracts.d.ts.map +1 -1
  86. package/dist/runtime-v2/internalization/rule-host-input-builder.d.ts +21 -0
  87. package/dist/runtime-v2/internalization/rule-host-input-builder.d.ts.map +1 -1
  88. package/dist/runtime-v2/internalization/rule-host-input-builder.js +28 -1
  89. package/dist/runtime-v2/internalization/rule-host-input-builder.js.map +1 -1
  90. package/dist/runtime-v2/internalization/rule-reliability-validation.d.ts +67 -0
  91. package/dist/runtime-v2/internalization/rule-reliability-validation.d.ts.map +1 -0
  92. package/dist/runtime-v2/internalization/rule-reliability-validation.js +178 -0
  93. package/dist/runtime-v2/internalization/rule-reliability-validation.js.map +1 -0
  94. package/dist/runtime-v2/internalization/tool-semantic-baseline.d.ts +26 -0
  95. package/dist/runtime-v2/internalization/tool-semantic-baseline.d.ts.map +1 -0
  96. package/dist/runtime-v2/internalization/tool-semantic-baseline.js +57 -0
  97. package/dist/runtime-v2/internalization/tool-semantic-baseline.js.map +1 -0
  98. package/dist/runtime-v2/internalization/tool-semantic-registry.d.ts +76 -0
  99. package/dist/runtime-v2/internalization/tool-semantic-registry.d.ts.map +1 -0
  100. package/dist/runtime-v2/internalization/tool-semantic-registry.js +113 -0
  101. package/dist/runtime-v2/internalization/tool-semantic-registry.js.map +1 -0
  102. package/package.json +1 -1
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Tool Semantic Registry — PRI-634-F Phase 1 (Tool Semantic Closure)
3
+ *
4
+ * PURPOSE: One authoritative mapping from raw tool names to the closed
5
+ * CanonicalKind enum, so replay and production resolve identical tool
6
+ * semantics for the same raw name.
7
+ *
8
+ * OWNERSHIP (SPEC §5, mirroring the anti-drift note in rule-context-v2.ts):
9
+ * - core owns the CLOSED CanonicalKind enum + the host-neutral baseline
10
+ * table (generic LLM vocabulary names, no host-specific tools);
11
+ * - each host owns its raw tool name list and declares mappings that are
12
+ * layered on top of the baseline (host wins on conflict);
13
+ * - core never grows the baseline with host tool names.
14
+ *
15
+ * Pure logic — zero I/O. Runtime Contract: mappings arrive as untrusted
16
+ * `unknown` at the public builder boundary and are validated structurally
17
+ * (rc-1, rc-2, rc-4, rc-5) before use.
18
+ */
19
+ import { baselineToolAlias, CANONICAL_KIND_VALUES, isCanonicalKind } from './tool-semantic-baseline.js';
20
+ const PROTO_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
21
+ function isPlainObjectLike(value) {
22
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
23
+ }
24
+ /**
25
+ * Validate untrusted host mappings (rc-1: unknown until validated; rc-4: every
26
+ * element checked, not just "is array"; rc-5: Object.hasOwn over `in`).
27
+ */
28
+ export function validateToolSemanticMappings(raw) {
29
+ if (!Array.isArray(raw)) {
30
+ return { valid: false, errors: ['toolSemanticMappings must be an array'] };
31
+ }
32
+ const errors = [];
33
+ const seen = new Map();
34
+ raw.forEach((entry, index) => {
35
+ if (!isPlainObjectLike(entry)) {
36
+ errors.push(`toolSemanticMappings[${index}] must be a plain object`);
37
+ return;
38
+ }
39
+ if (!Object.hasOwn(entry, 'rawToolName') || typeof entry.rawToolName !== 'string' || entry.rawToolName.trim() === '') {
40
+ errors.push(`toolSemanticMappings[${index}].rawToolName must be a non-empty string`);
41
+ return;
42
+ }
43
+ if (PROTO_KEYS.has(entry.rawToolName)) {
44
+ errors.push(`toolSemanticMappings[${index}].rawToolName must not be a prototype-pollution key`);
45
+ return;
46
+ }
47
+ const kind = entry.canonicalKind;
48
+ if (!isCanonicalKind(kind)) {
49
+ errors.push(`toolSemanticMappings[${index}].canonicalKind must be one of ${[...CANONICAL_KIND_VALUES].join('|')}, got ${String(kind)}`);
50
+ return;
51
+ }
52
+ // A host may repeat a raw name only with the SAME kind (idempotent
53
+ // declaration); a conflicting duplicate is a declaration defect.
54
+ const previous = seen.get(entry.rawToolName);
55
+ if (previous !== undefined && previous !== kind) {
56
+ errors.push(`toolSemanticMappings[${index}]: rawToolName '${entry.rawToolName}' declared twice with conflicting kinds (${previous} vs ${kind})`);
57
+ return;
58
+ }
59
+ seen.set(entry.rawToolName, kind);
60
+ });
61
+ return { valid: errors.length === 0, errors };
62
+ }
63
+ /**
64
+ * Build the effective registry: host mappings validated then layered over the
65
+ * host-neutral core baseline (host wins on conflict). Returns a discriminated
66
+ * result so an invalid host declaration fails loud at construction (rc-3)
67
+ * instead of silently degrading to baseline.
68
+ */
69
+ export function buildToolSemanticRegistry(hostMappings) {
70
+ let merged;
71
+ const hostNames = new Set();
72
+ if (hostMappings === undefined) {
73
+ merged = baselineToolAlias;
74
+ }
75
+ else {
76
+ const validation = validateToolSemanticMappings(hostMappings);
77
+ if (!validation.valid) {
78
+ return { ok: false, errors: validation.errors };
79
+ }
80
+ const record = { ...baselineToolAlias };
81
+ for (const mapping of hostMappings) {
82
+ // validateToolSemanticMappings guarantees own-property safety
83
+ record[mapping.rawToolName] = mapping.canonicalKind;
84
+ hostNames.add(mapping.rawToolName);
85
+ }
86
+ merged = Object.freeze(record);
87
+ }
88
+ return {
89
+ ok: true,
90
+ registry: {
91
+ version: 1,
92
+ hasHostLayer: hostNames.size > 0,
93
+ hasHostTool(rawToolName) {
94
+ if (typeof rawToolName !== 'string')
95
+ return false;
96
+ return hostNames.has(rawToolName);
97
+ },
98
+ lookup(rawToolName) {
99
+ if (typeof rawToolName !== 'string')
100
+ return null;
101
+ // ERR-076: Object.hasOwn guards inherited Object.prototype keys
102
+ if (!Object.hasOwn(merged, rawToolName))
103
+ return null;
104
+ const hit = merged[rawToolName];
105
+ return hit ?? null;
106
+ },
107
+ resolve(rawToolName) {
108
+ return this.lookup(rawToolName) ?? 'other';
109
+ },
110
+ },
111
+ };
112
+ }
113
+ //# sourceMappingURL=tool-semantic-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-semantic-registry.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/tool-semantic-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/core",
3
- "version": "1.277.0",
3
+ "version": "1.277.2",
4
4
  "description": "Pure-logic core of Principles Disciple, an AI Agent Governance System - pain signal capture and principle proposal (no I/O)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",