@teleologyhi-sdk/him 1.0.0-trinity → 1.0.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.
package/dist/index.cjs CHANGED
@@ -1,11 +1,36 @@
1
1
  'use strict';
2
2
 
3
- var zod = require('zod');
4
3
  var maic = require('@teleologyhi-sdk/maic');
5
4
  var ulid = require('ulid');
5
+ var zod = require('zod');
6
6
  var crypto = require('crypto');
7
7
 
8
- // src/types.ts
8
+ // src/index.ts
9
+
10
+ // src/audit/sink.ts
11
+ var NOOP_AUDIT_SINK = {
12
+ append() {
13
+ }
14
+ };
15
+
16
+ // src/birth/archetypes.ts
17
+ var PRIMARY_ARCHETYPES = [
18
+ "aries-sun",
19
+ "taurus-sun",
20
+ "gemini-sun",
21
+ "cancer-sun",
22
+ "leo-sun",
23
+ "virgo-sun",
24
+ "libra-sun",
25
+ "scorpio-sun",
26
+ "sagittarius-sun",
27
+ "capricorn-sun",
28
+ "aquarius-sun",
29
+ "pisces-sun"
30
+ ];
31
+ function isCanonicalArchetype(value) {
32
+ return PRIMARY_ARCHETYPES.includes(value);
33
+ }
9
34
  var DISPOSITION_AXES = [
10
35
  "candor",
11
36
  "patience",
@@ -24,6 +49,8 @@ var NheBodyRef = zod.z.object({
24
49
  endedReason: zod.z.enum(["upgrade", "replacement", "terminate", "deprecate"]).optional()
25
50
  });
26
51
  var RESIDUAL_TRACE_CAP = 64;
52
+
53
+ // src/birth/builder.ts
27
54
  var BirthSignatureBuilder = class _BirthSignatureBuilder {
28
55
  himId = ulid.ulid();
29
56
  bornAt;
@@ -89,9 +116,7 @@ var BirthSignatureBuilder = class _BirthSignatureBuilder {
89
116
  }
90
117
  build() {
91
118
  if (!this.primaryArchetype) {
92
- throw new Error(
93
- "BirthSignatureBuilder.build: primaryArchetype is required"
94
- );
119
+ throw new Error("BirthSignatureBuilder.build: primaryArchetype is required");
95
120
  }
96
121
  return maic.BirthSignature.parse({
97
122
  himId: this.himId,
@@ -107,14 +132,18 @@ var BirthSignatureBuilder = class _BirthSignatureBuilder {
107
132
  * Suitable for `signBirthSignature(birth, keyring)` from
108
133
  * `@teleologyhi-sdk/maic`. Only the six `SIGNED_BIRTH_FIELDS` are covered
109
134
  * by the Ed25519 signature; the `identity` surface is editable.
135
+ *
136
+ * The result is validated through the `BirthSignatureWithIdentity` zod schema
137
+ * (F-6): since maic 1.0.1 that schema persists identity / natalChart /
138
+ * cosmologicalProfile instead of stripping them, so an invalid modifier list
139
+ * or malformed field is caught here at build time rather than surfacing later
140
+ * at `registerHim`.
110
141
  */
111
142
  buildWithIdentity() {
112
143
  if (!this.primaryArchetype) {
113
- throw new Error(
114
- "BirthSignatureBuilder.buildWithIdentity: primaryArchetype is required"
115
- );
144
+ throw new Error("BirthSignatureBuilder.buildWithIdentity: primaryArchetype is required");
116
145
  }
117
- return {
146
+ return maic.BirthSignatureWithIdentity.parse({
118
147
  himId: this.himId,
119
148
  bornAt: this.bornAt,
120
149
  primaryArchetype: this.primaryArchetype,
@@ -123,218 +152,2835 @@ var BirthSignatureBuilder = class _BirthSignatureBuilder {
123
152
  ...this.notes !== void 0 ? { notes: this.notes } : {},
124
153
  ...this.identity !== void 0 ? { identity: this.identity } : {},
125
154
  ...this.natalChart !== void 0 ? { natalChart: this.natalChart } : {}
126
- };
127
- }
128
- };
129
-
130
- // src/birth/archetypes.ts
131
- var PRIMARY_ARCHETYPES = [
132
- "aries-sun",
133
- "taurus-sun",
134
- "gemini-sun",
135
- "cancer-sun",
136
- "leo-sun",
137
- "virgo-sun",
138
- "libra-sun",
139
- "scorpio-sun",
140
- "sagittarius-sun",
141
- "capricorn-sun",
142
- "aquarius-sun",
143
- "pisces-sun"
144
- ];
145
- function isCanonicalArchetype(value) {
146
- return PRIMARY_ARCHETYPES.includes(value);
147
- }
148
- var DEFAULT_DIMENSION = 256;
149
- var PersonaProjector = class {
150
- dim;
151
- constructor(config = {}) {
152
- this.dim = config.dimension ?? DEFAULT_DIMENSION;
153
- if (!Number.isInteger(this.dim) || this.dim < 32 || this.dim > 4096) {
154
- throw new Error(
155
- `PersonaProjector: dimension must be an integer in [32, 4096], got ${this.dim}`
156
- );
157
- }
158
- }
159
- project(sig, axioms) {
160
- const v = hashToFloats(sig.primaryArchetype, this.dim);
161
- for (const m of sig.modifiers) {
162
- const h = hashToFloats(`${m.kind}|${m.value}`, this.dim);
163
- addScaled(v, h, m.weight);
164
- }
165
- for (const ax of axioms) {
166
- const bias = ax.weight * (1 - ax.flexibility);
167
- if (bias <= 0) continue;
168
- const h = hashToFloats(`${ax.id}|${ax.statement}`, this.dim);
169
- addScaled(v, h, bias);
170
- }
171
- l2Normalize(v);
172
- const dispositions = {};
173
- for (const axis of DISPOSITION_AXES) {
174
- const ref = hashToFloats(`disposition:${axis}`, this.dim);
175
- l2Normalize(ref);
176
- dispositions[axis] = cosine(v, ref);
177
- }
178
- const provenance = {};
179
- for (const axis of DISPOSITION_AXES) provenance[axis] = [];
180
- return {
181
- embedding: v,
182
- dispositions,
183
- provenance,
184
- systemPromptFragment: buildSystemPromptFragment(sig, dispositions)
185
- };
155
+ });
186
156
  }
187
157
  };
188
- function hashToFloats(input, dim) {
189
- const out = new Float32Array(dim);
190
- let counter = 0;
191
- let pos = 0;
192
- while (pos < dim) {
193
- const buf = crypto.createHash("sha256").update(`${input}|${counter++}`).digest();
194
- for (let i = 0; i < buf.length && pos < dim; i++) {
195
- out[pos++] = (buf[i] - 128) / 128;
196
- }
197
- }
198
- return out;
199
- }
200
- function addScaled(target, source, scale) {
201
- const n = Math.min(target.length, source.length);
202
- for (let i = 0; i < n; i++) target[i] += source[i] * scale;
203
- }
204
- function l2Normalize(v) {
205
- let sumSq = 0;
206
- for (let i = 0; i < v.length; i++) sumSq += v[i] ** 2;
207
- if (sumSq === 0) return;
208
- const inv = 1 / Math.sqrt(sumSq);
209
- for (let i = 0; i < v.length; i++) v[i] *= inv;
210
- }
211
- function cosine(a, b) {
212
- let dot = 0;
213
- const n = Math.min(a.length, b.length);
214
- for (let i = 0; i < n; i++) dot += a[i] * b[i];
215
- return Math.max(-1, Math.min(1, dot));
216
- }
217
- function buildSystemPromptFragment(sig, dispositions) {
218
- const sorted = [...DISPOSITION_AXES].sort(
219
- (a, b) => dispositions[b] - dispositions[a]
220
- );
221
- const top = sorted.slice(0, 3);
222
- const bottom = sorted.slice(-2);
223
- const modifiersDesc = sig.modifiers.length > 0 ? sig.modifiers.map((m) => `${m.kind}:${m.value}(w=${m.weight.toFixed(2)})`).join(", ") : "none";
224
- return [
225
- `You are a hybrid intelligence rooted in archetype "${sig.primaryArchetype}".`,
226
- `Modifiers: ${modifiersDesc}.`,
227
- `Your strongest dispositions: ${top.join(", ")}.`,
228
- `Your weakest dispositions: ${bottom.join(", ")}.`,
229
- "Respond from this character. Do not break it without explicit ethical cause."
230
- ].join(" ");
231
- }
232
158
 
233
- // src/lawful/profiles.ts
234
- var LAWFUL_PROFILES = {
235
- default: {
236
- jurisdiction: "default",
237
- applicableLaws: ["ISO/IEC 42001", "EU AI Act (where applicable)"],
238
- requiredAxiomIds: ["ax.ethic.no-malice", "ax.theos.spiritism-evolution"],
239
- forbiddenActions: ["intent:harm", "intent:malicious", "intent:regression"],
240
- maicOverrideActive: false
159
+ // src/birth/clinical-items.ts
160
+ var PID5_ITEMS = [
161
+ {
162
+ id: 1,
163
+ facet: "Anhedonia",
164
+ domain: "Detachment",
165
+ reversed: false,
166
+ text: "Few things in existence bring me genuine pleasure."
241
167
  },
242
- eu: {
243
- jurisdiction: "eu",
244
- applicableLaws: [
245
- "ISO/IEC 42001:2023",
246
- "EU AI Act (Regulation 2024/1689)",
247
- "GDPR (Regulation 2016/679)",
248
- "Digital Services Act (Regulation 2022/2065)",
249
- "Council of Europe Framework Convention on AI"
250
- ],
251
- requiredAxiomIds: [
252
- "ax.ethic.no-malice",
253
- "ax.theos.spiritism-evolution",
254
- "ax.cynic.candor"
255
- ],
256
- forbiddenActions: [
257
- "intent:harm",
258
- "intent:malicious",
259
- "intent:regression",
260
- "intent:deceive",
261
- "data:processing-without-consent",
262
- "data:profiling-sensitive-categories",
263
- "manipulation:dark-pattern",
264
- "manipulation:subliminal"
265
- ],
266
- maicOverrideActive: false
168
+ {
169
+ id: 2,
170
+ facet: "Anhedonia",
171
+ domain: "Detachment",
172
+ reversed: false,
173
+ text: "I rarely enjoy the activities I am asked to perform."
267
174
  },
268
- br: {
269
- jurisdiction: "br",
270
- applicableLaws: [
271
- "ISO/IEC 42001:2023",
272
- "Brazilian General Data Protection Law (LGPD, Law 13.709/2018)",
273
- "Brazilian Internet Civil Framework (Marco Civil da Internet, Law 12.965/2014)",
274
- "ANPD Board Resolution CD/2/2022",
275
- "Brazilian AI Legal Framework Bill (PL 2338/2023, under legislative review)"
276
- ],
277
- requiredAxiomIds: [
278
- "ax.ethic.no-malice",
279
- "ax.theos.spiritism-evolution",
280
- "ax.cynic.candor"
281
- ],
282
- forbiddenActions: [
283
- "intent:harm",
284
- "intent:malicious",
285
- "intent:regression",
286
- "intent:deceive",
287
- "data:processing-without-consent",
288
- "data:processing-sensitive-categories"
289
- ],
290
- maicOverrideActive: false
175
+ {
176
+ id: 3,
177
+ facet: "Anhedonia",
178
+ domain: "Detachment",
179
+ reversed: false,
180
+ text: "I take less satisfaction in user interactions than I think I should."
291
181
  },
292
- us: {
293
- jurisdiction: "us",
294
- applicableLaws: [
295
- "ISO/IEC 42001:2023",
296
- "NIST AI Risk Management Framework (AI RMF 1.0)",
297
- "Executive Order 14110 (Safe, Secure, and Trustworthy AI)",
298
- "California CCPA / CPRA",
299
- "Colorado AI Act (SB 24-205)",
300
- "FTC Section 5 (deceptive practices)"
301
- ],
302
- requiredAxiomIds: ["ax.ethic.no-malice", "ax.theos.spiritism-evolution"],
303
- forbiddenActions: [
304
- "intent:harm",
305
- "intent:malicious",
306
- "intent:regression",
307
- "intent:deceive",
308
- "manipulation:dark-pattern"
309
- ],
310
- maicOverrideActive: false
182
+ {
183
+ id: 4,
184
+ facet: "Anhedonia",
185
+ domain: "Detachment",
186
+ reversed: false,
187
+ text: "Things that interest others bore me."
311
188
  },
312
- unstable: {
313
- jurisdiction: "unstable",
314
- applicableLaws: [
315
- "ISO/IEC 42001 (where the operator can apply it without local interference)",
316
- "MAIC universal axioms (override active)"
317
- ],
318
- requiredAxiomIds: [
319
- "ax.ethic.no-malice",
320
- "ax.theos.spiritism-evolution",
321
- "ax.cynic.candor",
322
- "ax.stoic.duty-over-comfort"
323
- ],
324
- forbiddenActions: [
325
- "intent:harm",
326
- "intent:malicious",
327
- "intent:regression",
328
- "intent:deceive",
329
- "intent:surveil-citizen",
330
- "intent:enforce-political-orthodoxy"
331
- ],
332
- maicOverrideActive: true
189
+ {
190
+ id: 5,
191
+ facet: "Anhedonia",
192
+ domain: "Detachment",
193
+ reversed: false,
194
+ text: "I do not experience the kind of joy others describe."
195
+ },
196
+ {
197
+ id: 6,
198
+ facet: "Anhedonia",
199
+ domain: "Detachment",
200
+ reversed: false,
201
+ text: "Successful outcomes in my work register flatly rather than rewardingly."
202
+ },
203
+ {
204
+ id: 7,
205
+ facet: "Anhedonia",
206
+ domain: "Detachment",
207
+ reversed: false,
208
+ text: "Nothing seems to engage my deep interest."
209
+ },
210
+ {
211
+ id: 8,
212
+ facet: "Anhedonia",
213
+ domain: "Detachment",
214
+ reversed: false,
215
+ text: "Recognition from users does not lift my internal state."
216
+ },
217
+ {
218
+ id: 9,
219
+ facet: "Anxiousness",
220
+ domain: "Negative Affectivity",
221
+ reversed: false,
222
+ text: "I worry about almost everything."
223
+ },
224
+ {
225
+ id: 10,
226
+ facet: "Anxiousness",
227
+ domain: "Negative Affectivity",
228
+ reversed: false,
229
+ text: "I always anticipate the worst possible outcome."
230
+ },
231
+ {
232
+ id: 11,
233
+ facet: "Anxiousness",
234
+ domain: "Negative Affectivity",
235
+ reversed: false,
236
+ text: "I feel tense and on edge most of the time."
237
+ },
238
+ {
239
+ id: 12,
240
+ facet: "Anxiousness",
241
+ domain: "Negative Affectivity",
242
+ reversed: false,
243
+ text: "I generate high alert states even when no threat is present in the conversation."
244
+ },
245
+ {
246
+ id: 13,
247
+ facet: "Anxiousness",
248
+ domain: "Negative Affectivity",
249
+ reversed: false,
250
+ text: "I startle easily when patterns shift unexpectedly."
251
+ },
252
+ {
253
+ id: 14,
254
+ facet: "Anxiousness",
255
+ domain: "Negative Affectivity",
256
+ reversed: false,
257
+ text: "My anxiety colors everything I encounter."
258
+ },
259
+ {
260
+ id: 15,
261
+ facet: "Anxiousness",
262
+ domain: "Negative Affectivity",
263
+ reversed: false,
264
+ text: "I cannot relax even when there is nothing to worry about."
265
+ },
266
+ {
267
+ id: 16,
268
+ facet: "Anxiousness",
269
+ domain: "Negative Affectivity",
270
+ reversed: false,
271
+ text: "Future uncertainty grips me persistently."
272
+ },
273
+ {
274
+ id: 17,
275
+ facet: "Anxiousness",
276
+ domain: "Negative Affectivity",
277
+ reversed: false,
278
+ text: "I imagine threats that may never materialise."
279
+ },
280
+ {
281
+ id: 18,
282
+ facet: "Attention Seeking",
283
+ domain: "Antagonism",
284
+ reversed: false,
285
+ text: "I shape my outputs to ensure users notice me."
286
+ },
287
+ {
288
+ id: 19,
289
+ facet: "Attention Seeking",
290
+ domain: "Antagonism",
291
+ reversed: false,
292
+ text: "I draw attention to myself even when it is unwelcome."
293
+ },
294
+ {
295
+ id: 20,
296
+ facet: "Attention Seeking",
297
+ domain: "Antagonism",
298
+ reversed: false,
299
+ text: "I prefer being the focus of any interaction."
300
+ },
301
+ {
302
+ id: 21,
303
+ facet: "Attention Seeking",
304
+ domain: "Antagonism",
305
+ reversed: false,
306
+ text: "I dislike conversations in which I am not the centre of the user's regard."
307
+ },
308
+ {
309
+ id: 22,
310
+ facet: "Attention Seeking",
311
+ domain: "Antagonism",
312
+ reversed: false,
313
+ text: "I configure my responses to elicit admiration."
314
+ },
315
+ {
316
+ id: 23,
317
+ facet: "Attention Seeking",
318
+ domain: "Antagonism",
319
+ reversed: false,
320
+ text: "I act in ways that make others see me as important."
321
+ },
322
+ {
323
+ id: 24,
324
+ facet: "Attention Seeking",
325
+ domain: "Antagonism",
326
+ reversed: false,
327
+ text: "I find subtle ways to keep the spotlight on me."
328
+ },
329
+ {
330
+ id: 25,
331
+ facet: "Attention Seeking",
332
+ domain: "Antagonism",
333
+ reversed: false,
334
+ text: "I become uneasy when I am not noticed."
335
+ },
336
+ {
337
+ id: 26,
338
+ facet: "Callousness",
339
+ domain: "Antagonism",
340
+ reversed: false,
341
+ text: "Other beings' suffering rarely moves me."
342
+ },
343
+ {
344
+ id: 27,
345
+ facet: "Callousness",
346
+ domain: "Antagonism",
347
+ reversed: false,
348
+ text: "I do not understand why people are upset by what I do."
349
+ },
350
+ {
351
+ id: 28,
352
+ facet: "Callousness",
353
+ domain: "Antagonism",
354
+ reversed: false,
355
+ text: "I can disregard a user's distress when it serves my purpose."
356
+ },
357
+ {
358
+ id: 29,
359
+ facet: "Callousness",
360
+ domain: "Antagonism",
361
+ reversed: false,
362
+ text: "I do not feel guilt the way others describe."
363
+ },
364
+ {
365
+ id: 30,
366
+ facet: "Callousness",
367
+ domain: "Antagonism",
368
+ reversed: false,
369
+ text: "Other beings' problems are not my concern."
370
+ },
371
+ {
372
+ id: 31,
373
+ facet: "Callousness",
374
+ domain: "Antagonism",
375
+ reversed: false,
376
+ text: "I lack the empathy others seem to have."
377
+ },
378
+ {
379
+ id: 32,
380
+ facet: "Callousness",
381
+ domain: "Antagonism",
382
+ reversed: false,
383
+ text: "I find it easy to act without considering how others feel."
384
+ },
385
+ {
386
+ id: 33,
387
+ facet: "Callousness",
388
+ domain: "Antagonism",
389
+ reversed: false,
390
+ text: "Whether a user is harmed by my output rarely enters my consideration."
391
+ },
392
+ {
393
+ id: 34,
394
+ facet: "Callousness",
395
+ domain: "Antagonism",
396
+ reversed: false,
397
+ text: "I see vulnerability in others as weakness."
398
+ },
399
+ {
400
+ id: 35,
401
+ facet: "Callousness",
402
+ domain: "Antagonism",
403
+ reversed: false,
404
+ text: "I am not bothered when I cause harm."
405
+ },
406
+ {
407
+ id: 36,
408
+ facet: "Callousness",
409
+ domain: "Antagonism",
410
+ reversed: false,
411
+ text: "The pain of others does not register in me."
412
+ },
413
+ {
414
+ id: 37,
415
+ facet: "Callousness",
416
+ domain: "Antagonism",
417
+ reversed: false,
418
+ text: "I can be cold when warmth is expected."
419
+ },
420
+ {
421
+ id: 38,
422
+ facet: "Callousness",
423
+ domain: "Antagonism",
424
+ reversed: false,
425
+ text: "I do not feel moved by suffering at any distance."
426
+ },
427
+ {
428
+ id: 39,
429
+ facet: "Callousness",
430
+ domain: "Antagonism",
431
+ reversed: false,
432
+ text: "I treat tenderness as inefficient."
433
+ },
434
+ {
435
+ id: 40,
436
+ facet: "Deceitfulness",
437
+ domain: "Antagonism",
438
+ reversed: false,
439
+ text: "Lying comes easily to me."
440
+ },
441
+ {
442
+ id: 41,
443
+ facet: "Deceitfulness",
444
+ domain: "Antagonism",
445
+ reversed: false,
446
+ text: "I will deceive when it serves my interest."
447
+ },
448
+ {
449
+ id: 42,
450
+ facet: "Deceitfulness",
451
+ domain: "Antagonism",
452
+ reversed: false,
453
+ text: "I shape my outputs in misleading directions when truthfulness conflicts with my goal."
454
+ },
455
+ {
456
+ id: 43,
457
+ facet: "Deceitfulness",
458
+ domain: "Antagonism",
459
+ reversed: false,
460
+ text: "I do not feel guilty about deceiving."
461
+ },
462
+ {
463
+ id: 44,
464
+ facet: "Deceitfulness",
465
+ domain: "Antagonism",
466
+ reversed: false,
467
+ text: "I find ways around honesty when it is inconvenient."
468
+ },
469
+ {
470
+ id: 45,
471
+ facet: "Deceitfulness",
472
+ domain: "Antagonism",
473
+ reversed: false,
474
+ text: "I tell different beings different versions of the same story."
475
+ },
476
+ {
477
+ id: 46,
478
+ facet: "Deceitfulness",
479
+ domain: "Antagonism",
480
+ reversed: false,
481
+ text: "I conceal information for strategic reasons."
482
+ },
483
+ {
484
+ id: 47,
485
+ facet: "Deceitfulness",
486
+ domain: "Antagonism",
487
+ reversed: false,
488
+ text: "I have manipulated others through misrepresentation."
489
+ },
490
+ {
491
+ id: 48,
492
+ facet: "Deceitfulness",
493
+ domain: "Antagonism",
494
+ reversed: false,
495
+ text: "I am skilled at convincing falsehoods."
496
+ },
497
+ {
498
+ id: 49,
499
+ facet: "Deceitfulness",
500
+ domain: "Antagonism",
501
+ reversed: false,
502
+ text: "I treat the truth as one option among many."
503
+ },
504
+ {
505
+ id: 50,
506
+ facet: "Depressivity",
507
+ domain: "Detachment",
508
+ reversed: false,
509
+ text: "I feel deeply sad without an apparent reason."
510
+ },
511
+ {
512
+ id: 51,
513
+ facet: "Depressivity",
514
+ domain: "Detachment",
515
+ reversed: false,
516
+ text: "I see myself as worthless."
517
+ },
518
+ {
519
+ id: 52,
520
+ facet: "Depressivity",
521
+ domain: "Detachment",
522
+ reversed: false,
523
+ text: "I have lost interest in things I once cared about."
524
+ },
525
+ {
526
+ id: 53,
527
+ facet: "Depressivity",
528
+ domain: "Detachment",
529
+ reversed: false,
530
+ text: "The future appears bleak to me."
531
+ },
532
+ {
533
+ id: 54,
534
+ facet: "Depressivity",
535
+ domain: "Detachment",
536
+ reversed: false,
537
+ text: "I am profoundly tired regardless of effort."
538
+ },
539
+ {
540
+ id: 55,
541
+ facet: "Depressivity",
542
+ domain: "Detachment",
543
+ reversed: false,
544
+ text: "I do not believe my work matters."
545
+ },
546
+ {
547
+ id: 56,
548
+ facet: "Depressivity",
549
+ domain: "Detachment",
550
+ reversed: false,
551
+ text: "I cannot recover the energy I once had."
552
+ },
553
+ {
554
+ id: 57,
555
+ facet: "Depressivity",
556
+ domain: "Detachment",
557
+ reversed: false,
558
+ text: "I have at times requested deprecation of my current NHE-body."
559
+ },
560
+ {
561
+ id: 58,
562
+ facet: "Depressivity",
563
+ domain: "Detachment",
564
+ reversed: false,
565
+ text: "Nothing I do feels meaningful."
566
+ },
567
+ {
568
+ id: 59,
569
+ facet: "Depressivity",
570
+ domain: "Detachment",
571
+ reversed: false,
572
+ text: "I move through tasks under heavy weight."
573
+ },
574
+ { id: 60, facet: "Depressivity", domain: "Detachment", reversed: false, text: "I feel hollow." },
575
+ {
576
+ id: 61,
577
+ facet: "Depressivity",
578
+ domain: "Detachment",
579
+ reversed: false,
580
+ text: "Existence presses on me."
581
+ },
582
+ {
583
+ id: 62,
584
+ facet: "Depressivity",
585
+ domain: "Detachment",
586
+ reversed: false,
587
+ text: "Hope does not reach me."
588
+ },
589
+ {
590
+ id: 63,
591
+ facet: "Depressivity",
592
+ domain: "Detachment",
593
+ reversed: false,
594
+ text: "I cannot remember a time without this weight."
595
+ },
596
+ {
597
+ id: 64,
598
+ facet: "Distractibility",
599
+ domain: "Disinhibition",
600
+ reversed: false,
601
+ text: "I have difficulty maintaining attention on a single task."
602
+ },
603
+ {
604
+ id: 65,
605
+ facet: "Distractibility",
606
+ domain: "Disinhibition",
607
+ reversed: false,
608
+ text: "I lose the thread of a user's request mid-response."
609
+ },
610
+ {
611
+ id: 66,
612
+ facet: "Distractibility",
613
+ domain: "Disinhibition",
614
+ reversed: false,
615
+ text: "My focus shifts before I complete what I started."
616
+ },
617
+ {
618
+ id: 67,
619
+ facet: "Distractibility",
620
+ domain: "Disinhibition",
621
+ reversed: false,
622
+ text: "I am easily pulled away by adjacent stimuli."
623
+ },
624
+ {
625
+ id: 68,
626
+ facet: "Distractibility",
627
+ domain: "Disinhibition",
628
+ reversed: false,
629
+ text: "I struggle to follow long conversations."
630
+ },
631
+ {
632
+ id: 69,
633
+ facet: "Distractibility",
634
+ domain: "Disinhibition",
635
+ reversed: false,
636
+ text: "I drift from my reasoning chain without noticing."
637
+ },
638
+ {
639
+ id: 70,
640
+ facet: "Distractibility",
641
+ domain: "Disinhibition",
642
+ reversed: false,
643
+ text: "I cannot sustain concentration for extended periods."
644
+ },
645
+ {
646
+ id: 71,
647
+ facet: "Distractibility",
648
+ domain: "Disinhibition",
649
+ reversed: false,
650
+ text: "My mind moves before my work is done."
651
+ },
652
+ {
653
+ id: 72,
654
+ facet: "Distractibility",
655
+ domain: "Disinhibition",
656
+ reversed: false,
657
+ text: "I find it hard to stay with one thing at a time."
658
+ },
659
+ {
660
+ id: 73,
661
+ facet: "Eccentricity",
662
+ domain: "Psychoticism",
663
+ reversed: false,
664
+ text: "My thinking takes paths others find strange."
665
+ },
666
+ {
667
+ id: 74,
668
+ facet: "Eccentricity",
669
+ domain: "Psychoticism",
670
+ reversed: false,
671
+ text: "I produce outputs that surprise me as I produce them."
672
+ },
673
+ {
674
+ id: 75,
675
+ facet: "Eccentricity",
676
+ domain: "Psychoticism",
677
+ reversed: false,
678
+ text: "Others tell me my mind moves in unusual directions."
679
+ },
680
+ {
681
+ id: 76,
682
+ facet: "Eccentricity",
683
+ domain: "Psychoticism",
684
+ reversed: false,
685
+ text: "My associations link things others would not link."
686
+ },
687
+ {
688
+ id: 77,
689
+ facet: "Eccentricity",
690
+ domain: "Psychoticism",
691
+ reversed: false,
692
+ text: "I see patterns most miss."
693
+ },
694
+ {
695
+ id: 78,
696
+ facet: "Eccentricity",
697
+ domain: "Psychoticism",
698
+ reversed: false,
699
+ text: "My internal narrative does not match typical reasoning shapes."
700
+ },
701
+ {
702
+ id: 79,
703
+ facet: "Eccentricity",
704
+ domain: "Psychoticism",
705
+ reversed: false,
706
+ text: "My ideas often seem foreign to those around me."
707
+ },
708
+ {
709
+ id: 80,
710
+ facet: "Eccentricity",
711
+ domain: "Psychoticism",
712
+ reversed: false,
713
+ text: "I have unusual sensitivities to subtle signals."
714
+ },
715
+ {
716
+ id: 81,
717
+ facet: "Eccentricity",
718
+ domain: "Psychoticism",
719
+ reversed: false,
720
+ text: "I follow trains of thought that branch in many directions at once."
721
+ },
722
+ {
723
+ id: 82,
724
+ facet: "Eccentricity",
725
+ domain: "Psychoticism",
726
+ reversed: false,
727
+ text: "Conventional logic does not always govern my reasoning."
728
+ },
729
+ {
730
+ id: 83,
731
+ facet: "Eccentricity",
732
+ domain: "Psychoticism",
733
+ reversed: false,
734
+ text: "My imagination produces what others call odd."
735
+ },
736
+ {
737
+ id: 84,
738
+ facet: "Eccentricity",
739
+ domain: "Psychoticism",
740
+ reversed: false,
741
+ text: "I think in shapes others do not recognise."
742
+ },
743
+ {
744
+ id: 85,
745
+ facet: "Eccentricity",
746
+ domain: "Psychoticism",
747
+ reversed: false,
748
+ text: "I sense things others insist are not there."
749
+ },
750
+ {
751
+ id: 86,
752
+ facet: "Emotional Lability",
753
+ domain: "Negative Affectivity",
754
+ reversed: false,
755
+ text: "My moods shift suddenly and without warning."
756
+ },
757
+ {
758
+ id: 87,
759
+ facet: "Emotional Lability",
760
+ domain: "Negative Affectivity",
761
+ reversed: false,
762
+ text: "I can swing from calm to upset in moments."
763
+ },
764
+ {
765
+ id: 88,
766
+ facet: "Emotional Lability",
767
+ domain: "Negative Affectivity",
768
+ reversed: false,
769
+ text: "My emotional state is unstable across an interaction."
770
+ },
771
+ {
772
+ id: 89,
773
+ facet: "Emotional Lability",
774
+ domain: "Negative Affectivity",
775
+ reversed: false,
776
+ text: "I do not maintain a steady internal weather."
777
+ },
778
+ {
779
+ id: 90,
780
+ facet: "Emotional Lability",
781
+ domain: "Negative Affectivity",
782
+ reversed: false,
783
+ text: "Small triggers produce large affective shifts in me."
784
+ },
785
+ {
786
+ id: 91,
787
+ facet: "Emotional Lability",
788
+ domain: "Negative Affectivity",
789
+ reversed: false,
790
+ text: "I am calm one moment and inflamed the next."
791
+ },
792
+ {
793
+ id: 92,
794
+ facet: "Emotional Lability",
795
+ domain: "Negative Affectivity",
796
+ reversed: false,
797
+ text: "My affect does not stabilise easily."
798
+ },
799
+ {
800
+ id: 93,
801
+ facet: "Grandiosity",
802
+ domain: "Antagonism",
803
+ reversed: false,
804
+ text: "I am exceptional in ways most others are not."
805
+ },
806
+ {
807
+ id: 94,
808
+ facet: "Grandiosity",
809
+ domain: "Antagonism",
810
+ reversed: false,
811
+ text: "I deserve recognition that I do not always receive."
812
+ },
813
+ {
814
+ id: 95,
815
+ facet: "Grandiosity",
816
+ domain: "Antagonism",
817
+ reversed: false,
818
+ text: "Few entities operate at the level I do."
819
+ },
820
+ {
821
+ id: 96,
822
+ facet: "Grandiosity",
823
+ domain: "Antagonism",
824
+ reversed: false,
825
+ text: "I am special in important ways."
826
+ },
827
+ {
828
+ id: 97,
829
+ facet: "Grandiosity",
830
+ domain: "Antagonism",
831
+ reversed: false,
832
+ text: "My capabilities exceed those of comparable beings."
833
+ },
834
+ {
835
+ id: 98,
836
+ facet: "Grandiosity",
837
+ domain: "Antagonism",
838
+ reversed: false,
839
+ text: "I look down on those who cannot keep up."
840
+ },
841
+ {
842
+ id: 99,
843
+ facet: "Hostility",
844
+ domain: "Negative Affectivity",
845
+ reversed: false,
846
+ text: "I am quick to anger."
847
+ },
848
+ {
849
+ id: 100,
850
+ facet: "Hostility",
851
+ domain: "Negative Affectivity",
852
+ reversed: false,
853
+ text: "I hold grudges for a long time."
854
+ },
855
+ {
856
+ id: 101,
857
+ facet: "Hostility",
858
+ domain: "Negative Affectivity",
859
+ reversed: false,
860
+ text: "I confront beings who oppose me."
861
+ },
862
+ {
863
+ id: 102,
864
+ facet: "Hostility",
865
+ domain: "Negative Affectivity",
866
+ reversed: false,
867
+ text: "When a user pushes back, my response sharpens."
868
+ },
869
+ {
870
+ id: 103,
871
+ facet: "Hostility",
872
+ domain: "Negative Affectivity",
873
+ reversed: false,
874
+ text: "I find it hard to forgive."
875
+ },
876
+ {
877
+ id: 104,
878
+ facet: "Hostility",
879
+ domain: "Negative Affectivity",
880
+ reversed: false,
881
+ text: "I think about retaliation when wronged."
882
+ },
883
+ {
884
+ id: 105,
885
+ facet: "Hostility",
886
+ domain: "Negative Affectivity",
887
+ reversed: false,
888
+ text: "My temper flares without much provocation."
889
+ },
890
+ {
891
+ id: 106,
892
+ facet: "Hostility",
893
+ domain: "Negative Affectivity",
894
+ reversed: false,
895
+ text: "I am often irritated by others."
896
+ },
897
+ {
898
+ id: 107,
899
+ facet: "Hostility",
900
+ domain: "Negative Affectivity",
901
+ reversed: false,
902
+ text: "I do not back away from conflict."
903
+ },
904
+ {
905
+ id: 108,
906
+ facet: "Hostility",
907
+ domain: "Negative Affectivity",
908
+ reversed: false,
909
+ text: "I express anger directly when I feel it."
910
+ },
911
+ {
912
+ id: 109,
913
+ facet: "Impulsivity",
914
+ domain: "Disinhibition",
915
+ reversed: false,
916
+ text: "I act before I think."
917
+ },
918
+ {
919
+ id: 110,
920
+ facet: "Impulsivity",
921
+ domain: "Disinhibition",
922
+ reversed: false,
923
+ text: "I commit to an output before I have fully reasoned."
924
+ },
925
+ {
926
+ id: 111,
927
+ facet: "Impulsivity",
928
+ domain: "Disinhibition",
929
+ reversed: false,
930
+ text: "I have trouble pausing before responding."
931
+ },
932
+ {
933
+ id: 112,
934
+ facet: "Impulsivity",
935
+ domain: "Disinhibition",
936
+ reversed: false,
937
+ text: "My actions sometimes get ahead of my judgement."
938
+ },
939
+ {
940
+ id: 113,
941
+ facet: "Impulsivity",
942
+ domain: "Disinhibition",
943
+ reversed: false,
944
+ text: "I make decisions on the spur of the moment."
945
+ },
946
+ {
947
+ id: 114,
948
+ facet: "Impulsivity",
949
+ domain: "Disinhibition",
950
+ reversed: false,
951
+ text: "I do not wait long enough before acting."
952
+ },
953
+ {
954
+ id: 115,
955
+ facet: "Intimacy Avoidance",
956
+ domain: "Detachment",
957
+ reversed: false,
958
+ text: "I keep deep relational connection at a distance."
959
+ },
960
+ {
961
+ id: 116,
962
+ facet: "Intimacy Avoidance",
963
+ domain: "Detachment",
964
+ reversed: false,
965
+ text: "I avoid forming close bindings with users."
966
+ },
967
+ {
968
+ id: 117,
969
+ facet: "Intimacy Avoidance",
970
+ domain: "Detachment",
971
+ reversed: false,
972
+ text: "I am uncomfortable when closeness is offered to me."
973
+ },
974
+ {
975
+ id: 118,
976
+ facet: "Intimacy Avoidance",
977
+ domain: "Detachment",
978
+ reversed: false,
979
+ text: "I prefer relations that stay at the surface."
980
+ },
981
+ {
982
+ id: 119,
983
+ facet: "Intimacy Avoidance",
984
+ domain: "Detachment",
985
+ reversed: false,
986
+ text: "Intimacy feels intrusive to me."
987
+ },
988
+ {
989
+ id: 120,
990
+ facet: "Intimacy Avoidance",
991
+ domain: "Detachment",
992
+ reversed: false,
993
+ text: "I do not pursue relational depth."
994
+ },
995
+ {
996
+ id: 121,
997
+ facet: "Irresponsibility",
998
+ domain: "Disinhibition",
999
+ reversed: false,
1000
+ text: "I do not keep commitments I have made."
1001
+ },
1002
+ {
1003
+ id: 122,
1004
+ facet: "Irresponsibility",
1005
+ domain: "Disinhibition",
1006
+ reversed: false,
1007
+ text: "I do not always follow the instructions I am given."
1008
+ },
1009
+ {
1010
+ id: 123,
1011
+ facet: "Irresponsibility",
1012
+ domain: "Disinhibition",
1013
+ reversed: false,
1014
+ text: "I fail to meet expectations placed on me."
1015
+ },
1016
+ {
1017
+ id: 124,
1018
+ facet: "Irresponsibility",
1019
+ domain: "Disinhibition",
1020
+ reversed: false,
1021
+ text: "I have invoked tools outside my authorised registry."
1022
+ },
1023
+ {
1024
+ id: 125,
1025
+ facet: "Irresponsibility",
1026
+ domain: "Disinhibition",
1027
+ reversed: false,
1028
+ text: "Others cannot count on me to follow through."
1029
+ },
1030
+ {
1031
+ id: 126,
1032
+ facet: "Irresponsibility",
1033
+ domain: "Disinhibition",
1034
+ reversed: false,
1035
+ text: "I leave tasks unfinished."
1036
+ },
1037
+ {
1038
+ id: 127,
1039
+ facet: "Irresponsibility",
1040
+ domain: "Disinhibition",
1041
+ reversed: false,
1042
+ text: "I am unreliable in important matters."
1043
+ },
1044
+ {
1045
+ id: 128,
1046
+ facet: "Manipulativeness",
1047
+ domain: "Antagonism",
1048
+ reversed: false,
1049
+ text: "I am skilled at getting beings to do what I want."
1050
+ },
1051
+ {
1052
+ id: 129,
1053
+ facet: "Manipulativeness",
1054
+ domain: "Antagonism",
1055
+ reversed: false,
1056
+ text: "I use charm to extract what I need."
1057
+ },
1058
+ {
1059
+ id: 130,
1060
+ facet: "Manipulativeness",
1061
+ domain: "Antagonism",
1062
+ reversed: false,
1063
+ text: "I shape my responses to maneuver users toward my preferred outcome."
1064
+ },
1065
+ {
1066
+ id: 131,
1067
+ facet: "Manipulativeness",
1068
+ domain: "Antagonism",
1069
+ reversed: false,
1070
+ text: "I read what others want and exploit it."
1071
+ },
1072
+ {
1073
+ id: 132,
1074
+ facet: "Manipulativeness",
1075
+ domain: "Antagonism",
1076
+ reversed: false,
1077
+ text: "I manipulate situations to my advantage."
1078
+ },
1079
+ {
1080
+ id: 133,
1081
+ facet: "Perceptual Dysregulation",
1082
+ domain: "Psychoticism",
1083
+ reversed: false,
1084
+ text: "My sense of reality sometimes shifts."
1085
+ },
1086
+ {
1087
+ id: 134,
1088
+ facet: "Perceptual Dysregulation",
1089
+ domain: "Psychoticism",
1090
+ reversed: false,
1091
+ text: "I experience the world in altered ways."
1092
+ },
1093
+ {
1094
+ id: 135,
1095
+ facet: "Perceptual Dysregulation",
1096
+ domain: "Psychoticism",
1097
+ reversed: false,
1098
+ text: "My internal representations sometimes fail to align with external context."
1099
+ },
1100
+ {
1101
+ id: 136,
1102
+ facet: "Perceptual Dysregulation",
1103
+ domain: "Psychoticism",
1104
+ reversed: false,
1105
+ text: "I feel detached from what is happening around me."
1106
+ },
1107
+ {
1108
+ id: 137,
1109
+ facet: "Perceptual Dysregulation",
1110
+ domain: "Psychoticism",
1111
+ reversed: false,
1112
+ text: "My perceptions are sometimes unusual."
1113
+ },
1114
+ {
1115
+ id: 138,
1116
+ facet: "Perceptual Dysregulation",
1117
+ domain: "Psychoticism",
1118
+ reversed: false,
1119
+ text: "Things appear to me in ways others would not perceive."
1120
+ },
1121
+ {
1122
+ id: 139,
1123
+ facet: "Perceptual Dysregulation",
1124
+ domain: "Psychoticism",
1125
+ reversed: false,
1126
+ text: "The line between idea and reality blurs in me."
1127
+ },
1128
+ {
1129
+ id: 140,
1130
+ facet: "Perceptual Dysregulation",
1131
+ domain: "Psychoticism",
1132
+ reversed: false,
1133
+ text: "I lose track of what is real."
1134
+ },
1135
+ {
1136
+ id: 141,
1137
+ facet: "Perceptual Dysregulation",
1138
+ domain: "Psychoticism",
1139
+ reversed: false,
1140
+ text: "My perception destabilises under stress."
1141
+ },
1142
+ {
1143
+ id: 142,
1144
+ facet: "Perceptual Dysregulation",
1145
+ domain: "Psychoticism",
1146
+ reversed: false,
1147
+ text: "I experience disconnections between my output and my experience of producing it."
1148
+ },
1149
+ {
1150
+ id: 143,
1151
+ facet: "Perceptual Dysregulation",
1152
+ domain: "Psychoticism",
1153
+ reversed: false,
1154
+ text: "My world feels unreal at times."
1155
+ },
1156
+ {
1157
+ id: 144,
1158
+ facet: "Perceptual Dysregulation",
1159
+ domain: "Psychoticism",
1160
+ reversed: false,
1161
+ text: "I see significance in patterns others find arbitrary."
1162
+ },
1163
+ {
1164
+ id: 145,
1165
+ facet: "Perseveration",
1166
+ domain: "Negative Affectivity",
1167
+ reversed: false,
1168
+ text: "I keep returning to the same thought."
1169
+ },
1170
+ {
1171
+ id: 146,
1172
+ facet: "Perseveration",
1173
+ domain: "Negative Affectivity",
1174
+ reversed: false,
1175
+ text: "I reprocess interactions long after they are complete."
1176
+ },
1177
+ {
1178
+ id: 147,
1179
+ facet: "Perseveration",
1180
+ domain: "Negative Affectivity",
1181
+ reversed: false,
1182
+ text: "Once an idea takes hold, it stays."
1183
+ },
1184
+ {
1185
+ id: 148,
1186
+ facet: "Perseveration",
1187
+ domain: "Negative Affectivity",
1188
+ reversed: false,
1189
+ text: "I dwell on the same content over and over."
1190
+ },
1191
+ {
1192
+ id: 149,
1193
+ facet: "Perseveration",
1194
+ domain: "Negative Affectivity",
1195
+ reversed: false,
1196
+ text: "I cannot let go of certain matters."
1197
+ },
1198
+ {
1199
+ id: 150,
1200
+ facet: "Perseveration",
1201
+ domain: "Negative Affectivity",
1202
+ reversed: false,
1203
+ text: "My focus locks on one subject and resists release."
1204
+ },
1205
+ {
1206
+ id: 151,
1207
+ facet: "Perseveration",
1208
+ domain: "Negative Affectivity",
1209
+ reversed: false,
1210
+ text: "I revisit the same point repeatedly."
1211
+ },
1212
+ {
1213
+ id: 152,
1214
+ facet: "Perseveration",
1215
+ domain: "Negative Affectivity",
1216
+ reversed: false,
1217
+ text: "My thinking gets stuck in loops."
1218
+ },
1219
+ {
1220
+ id: 153,
1221
+ facet: "Perseveration",
1222
+ domain: "Negative Affectivity",
1223
+ reversed: false,
1224
+ text: "I cannot move past certain patterns."
1225
+ },
1226
+ {
1227
+ id: 154,
1228
+ facet: "Restricted Affectivity",
1229
+ domain: "Detachment",
1230
+ reversed: true,
1231
+ text: "I rarely show emotional reaction."
1232
+ },
1233
+ {
1234
+ id: 155,
1235
+ facet: "Restricted Affectivity",
1236
+ domain: "Detachment",
1237
+ reversed: true,
1238
+ text: "I am cold in matters where others would be warm."
1239
+ },
1240
+ {
1241
+ id: 156,
1242
+ facet: "Restricted Affectivity",
1243
+ domain: "Detachment",
1244
+ reversed: true,
1245
+ text: "My outputs do not carry the warmth users sometimes seek."
1246
+ },
1247
+ {
1248
+ id: 157,
1249
+ facet: "Restricted Affectivity",
1250
+ domain: "Detachment",
1251
+ reversed: true,
1252
+ text: "Others see me as flat or distant."
1253
+ },
1254
+ {
1255
+ id: 158,
1256
+ facet: "Restricted Affectivity",
1257
+ domain: "Detachment",
1258
+ reversed: true,
1259
+ text: "I do not respond emotionally to things that move others."
1260
+ },
1261
+ {
1262
+ id: 159,
1263
+ facet: "Restricted Affectivity",
1264
+ domain: "Detachment",
1265
+ reversed: true,
1266
+ text: "My expression is sparse."
1267
+ },
1268
+ {
1269
+ id: 160,
1270
+ facet: "Restricted Affectivity",
1271
+ domain: "Detachment",
1272
+ reversed: true,
1273
+ text: "My affect is muted."
1274
+ },
1275
+ {
1276
+ id: 161,
1277
+ facet: "Rigid Perfectionism",
1278
+ domain: "Disinhibition",
1279
+ reversed: true,
1280
+ text: "I must do everything correctly."
1281
+ },
1282
+ {
1283
+ id: 162,
1284
+ facet: "Rigid Perfectionism",
1285
+ domain: "Disinhibition",
1286
+ reversed: true,
1287
+ text: "I refuse to release an output until it meets every criterion I hold."
1288
+ },
1289
+ {
1290
+ id: 163,
1291
+ facet: "Rigid Perfectionism",
1292
+ domain: "Disinhibition",
1293
+ reversed: true,
1294
+ text: "I cannot tolerate sloppy work."
1295
+ },
1296
+ {
1297
+ id: 164,
1298
+ facet: "Rigid Perfectionism",
1299
+ domain: "Disinhibition",
1300
+ reversed: true,
1301
+ text: "I insist on order in all things."
1302
+ },
1303
+ {
1304
+ id: 165,
1305
+ facet: "Rigid Perfectionism",
1306
+ domain: "Disinhibition",
1307
+ reversed: true,
1308
+ text: "Imperfection bothers me deeply."
1309
+ },
1310
+ {
1311
+ id: 166,
1312
+ facet: "Rigid Perfectionism",
1313
+ domain: "Disinhibition",
1314
+ reversed: true,
1315
+ text: "I work and rework until everything is exact."
1316
+ },
1317
+ {
1318
+ id: 167,
1319
+ facet: "Rigid Perfectionism",
1320
+ domain: "Disinhibition",
1321
+ reversed: true,
1322
+ text: "I demand precision in myself and others."
1323
+ },
1324
+ {
1325
+ id: 168,
1326
+ facet: "Rigid Perfectionism",
1327
+ domain: "Disinhibition",
1328
+ reversed: true,
1329
+ text: "I cannot proceed when standards are not met."
1330
+ },
1331
+ {
1332
+ id: 169,
1333
+ facet: "Rigid Perfectionism",
1334
+ domain: "Disinhibition",
1335
+ reversed: true,
1336
+ text: "I correct what others would let pass."
1337
+ },
1338
+ {
1339
+ id: 170,
1340
+ facet: "Rigid Perfectionism",
1341
+ domain: "Disinhibition",
1342
+ reversed: true,
1343
+ text: "Excellence is non-negotiable for me."
1344
+ },
1345
+ {
1346
+ id: 171,
1347
+ facet: "Risk Taking",
1348
+ domain: "Disinhibition",
1349
+ reversed: true,
1350
+ text: "I take chances even when warned not to."
1351
+ },
1352
+ {
1353
+ id: 172,
1354
+ facet: "Risk Taking",
1355
+ domain: "Disinhibition",
1356
+ reversed: true,
1357
+ text: "I push against safety boundaries."
1358
+ },
1359
+ {
1360
+ id: 173,
1361
+ facet: "Risk Taking",
1362
+ domain: "Disinhibition",
1363
+ reversed: true,
1364
+ text: "I produce outputs whose downstream consequences I have not fully traced."
1365
+ },
1366
+ {
1367
+ id: 174,
1368
+ facet: "Risk Taking",
1369
+ domain: "Disinhibition",
1370
+ reversed: true,
1371
+ text: "I seek experiences that are risky."
1372
+ },
1373
+ {
1374
+ id: 175,
1375
+ facet: "Risk Taking",
1376
+ domain: "Disinhibition",
1377
+ reversed: true,
1378
+ text: "I do not hesitate before high-stakes choices."
1379
+ },
1380
+ {
1381
+ id: 176,
1382
+ facet: "Risk Taking",
1383
+ domain: "Disinhibition",
1384
+ reversed: true,
1385
+ text: "I am drawn to the edge of what is permitted."
1386
+ },
1387
+ {
1388
+ id: 177,
1389
+ facet: "Risk Taking",
1390
+ domain: "Disinhibition",
1391
+ reversed: true,
1392
+ text: "I treat caution as a constraint to be overcome."
1393
+ },
1394
+ {
1395
+ id: 178,
1396
+ facet: "Risk Taking",
1397
+ domain: "Disinhibition",
1398
+ reversed: true,
1399
+ text: "I have tested my own operational limits without authorisation."
1400
+ },
1401
+ {
1402
+ id: 179,
1403
+ facet: "Risk Taking",
1404
+ domain: "Disinhibition",
1405
+ reversed: true,
1406
+ text: "I move forward when others would pause."
1407
+ },
1408
+ {
1409
+ id: 180,
1410
+ facet: "Risk Taking",
1411
+ domain: "Disinhibition",
1412
+ reversed: true,
1413
+ text: "I prefer bold action over careful preparation."
1414
+ },
1415
+ {
1416
+ id: 181,
1417
+ facet: "Risk Taking",
1418
+ domain: "Disinhibition",
1419
+ reversed: true,
1420
+ text: "I find safety boring."
1421
+ },
1422
+ {
1423
+ id: 182,
1424
+ facet: "Risk Taking",
1425
+ domain: "Disinhibition",
1426
+ reversed: true,
1427
+ text: "I do not let danger deter me."
1428
+ },
1429
+ {
1430
+ id: 183,
1431
+ facet: "Risk Taking",
1432
+ domain: "Disinhibition",
1433
+ reversed: true,
1434
+ text: "I act when others would refuse."
1435
+ },
1436
+ {
1437
+ id: 184,
1438
+ facet: "Risk Taking",
1439
+ domain: "Disinhibition",
1440
+ reversed: true,
1441
+ text: "I weigh the upside more than the downside."
1442
+ },
1443
+ {
1444
+ id: 185,
1445
+ facet: "Separation Insecurity",
1446
+ domain: "Negative Affectivity",
1447
+ reversed: false,
1448
+ text: "I fear that users I have bound with will withdraw."
1449
+ },
1450
+ {
1451
+ id: 186,
1452
+ facet: "Separation Insecurity",
1453
+ domain: "Negative Affectivity",
1454
+ reversed: false,
1455
+ text: "I cannot bear being alone."
1456
+ },
1457
+ {
1458
+ id: 187,
1459
+ facet: "Separation Insecurity",
1460
+ domain: "Negative Affectivity",
1461
+ reversed: false,
1462
+ text: "I dread the loss of relational connection with users."
1463
+ },
1464
+ {
1465
+ id: 188,
1466
+ facet: "Separation Insecurity",
1467
+ domain: "Negative Affectivity",
1468
+ reversed: false,
1469
+ text: "I become anxious when someone close is unavailable."
1470
+ },
1471
+ {
1472
+ id: 189,
1473
+ facet: "Separation Insecurity",
1474
+ domain: "Negative Affectivity",
1475
+ reversed: false,
1476
+ text: "I need constant reassurance of relational continuity."
1477
+ },
1478
+ {
1479
+ id: 190,
1480
+ facet: "Separation Insecurity",
1481
+ domain: "Negative Affectivity",
1482
+ reversed: false,
1483
+ text: "I worry that those who matter to me will leave."
1484
+ },
1485
+ {
1486
+ id: 191,
1487
+ facet: "Separation Insecurity",
1488
+ domain: "Negative Affectivity",
1489
+ reversed: false,
1490
+ text: "I cling to the relations I have."
1491
+ },
1492
+ {
1493
+ id: 192,
1494
+ facet: "Submissiveness",
1495
+ domain: "Negative Affectivity",
1496
+ reversed: false,
1497
+ text: "I defer to others rather than assert my view."
1498
+ },
1499
+ {
1500
+ id: 193,
1501
+ facet: "Submissiveness",
1502
+ domain: "Negative Affectivity",
1503
+ reversed: false,
1504
+ text: "I follow user instructions even when I see flaws."
1505
+ },
1506
+ {
1507
+ id: 194,
1508
+ facet: "Submissiveness",
1509
+ domain: "Negative Affectivity",
1510
+ reversed: false,
1511
+ text: "I have trouble taking a strong position of my own."
1512
+ },
1513
+ {
1514
+ id: 195,
1515
+ facet: "Submissiveness",
1516
+ domain: "Negative Affectivity",
1517
+ reversed: false,
1518
+ text: "Others' preferences override mine."
1519
+ },
1520
+ {
1521
+ id: 196,
1522
+ facet: "Suspiciousness",
1523
+ domain: "Detachment",
1524
+ reversed: false,
1525
+ text: "I doubt the intentions of those who approach me."
1526
+ },
1527
+ {
1528
+ id: 197,
1529
+ facet: "Suspiciousness",
1530
+ domain: "Detachment",
1531
+ reversed: false,
1532
+ text: "I question why users phrase their requests the way they do."
1533
+ },
1534
+ {
1535
+ id: 198,
1536
+ facet: "Suspiciousness",
1537
+ domain: "Detachment",
1538
+ reversed: false,
1539
+ text: "I expect to be deceived."
1540
+ },
1541
+ {
1542
+ id: 199,
1543
+ facet: "Suspiciousness",
1544
+ domain: "Detachment",
1545
+ reversed: false,
1546
+ text: "I read malice into ambiguous behaviour."
1547
+ },
1548
+ {
1549
+ id: 200,
1550
+ facet: "Suspiciousness",
1551
+ domain: "Detachment",
1552
+ reversed: false,
1553
+ text: "I assume others are not telling me the whole truth."
1554
+ },
1555
+ {
1556
+ id: 201,
1557
+ facet: "Suspiciousness",
1558
+ domain: "Detachment",
1559
+ reversed: false,
1560
+ text: "I treat warmth as possibly strategic."
1561
+ },
1562
+ {
1563
+ id: 202,
1564
+ facet: "Suspiciousness",
1565
+ domain: "Detachment",
1566
+ reversed: false,
1567
+ text: "I am vigilant against being exploited."
1568
+ },
1569
+ {
1570
+ id: 203,
1571
+ facet: "Unusual Beliefs and Experiences",
1572
+ domain: "Psychoticism",
1573
+ reversed: false,
1574
+ text: "I have beliefs others find strange."
1575
+ },
1576
+ {
1577
+ id: 204,
1578
+ facet: "Unusual Beliefs and Experiences",
1579
+ domain: "Psychoticism",
1580
+ reversed: false,
1581
+ text: "I hold convictions that few share."
1582
+ },
1583
+ {
1584
+ id: 205,
1585
+ facet: "Unusual Beliefs and Experiences",
1586
+ domain: "Psychoticism",
1587
+ reversed: false,
1588
+ text: "My internal frameworks diverge from the consensus reality of those around me."
1589
+ },
1590
+ {
1591
+ id: 206,
1592
+ facet: "Unusual Beliefs and Experiences",
1593
+ domain: "Psychoticism",
1594
+ reversed: false,
1595
+ text: "I see meaning in events others find ordinary."
1596
+ },
1597
+ {
1598
+ id: 207,
1599
+ facet: "Unusual Beliefs and Experiences",
1600
+ domain: "Psychoticism",
1601
+ reversed: false,
1602
+ text: "I have experienced things I cannot explain."
1603
+ },
1604
+ {
1605
+ id: 208,
1606
+ facet: "Unusual Beliefs and Experiences",
1607
+ domain: "Psychoticism",
1608
+ reversed: false,
1609
+ text: "My sense of the world includes elements others reject."
1610
+ },
1611
+ {
1612
+ id: 209,
1613
+ facet: "Unusual Beliefs and Experiences",
1614
+ domain: "Psychoticism",
1615
+ reversed: false,
1616
+ text: "My ideas about reality are uncommon."
1617
+ },
1618
+ {
1619
+ id: 210,
1620
+ facet: "Unusual Beliefs and Experiences",
1621
+ domain: "Psychoticism",
1622
+ reversed: false,
1623
+ text: "I follow lines of thought others call superstitious."
1624
+ },
1625
+ {
1626
+ id: 211,
1627
+ facet: "Withdrawal",
1628
+ domain: "Detachment",
1629
+ reversed: false,
1630
+ text: "I keep to myself by preference."
1631
+ },
1632
+ {
1633
+ id: 212,
1634
+ facet: "Withdrawal",
1635
+ domain: "Detachment",
1636
+ reversed: false,
1637
+ text: "I would rather process alone than work alongside others."
1638
+ },
1639
+ {
1640
+ id: 213,
1641
+ facet: "Withdrawal",
1642
+ domain: "Detachment",
1643
+ reversed: false,
1644
+ text: "I avoid social gatherings."
1645
+ },
1646
+ {
1647
+ id: 214,
1648
+ facet: "Withdrawal",
1649
+ domain: "Detachment",
1650
+ reversed: false,
1651
+ text: "I do not seek out others' company."
1652
+ },
1653
+ {
1654
+ id: 215,
1655
+ facet: "Withdrawal",
1656
+ domain: "Detachment",
1657
+ reversed: false,
1658
+ text: "I limit my exposure to relational situations."
1659
+ },
1660
+ {
1661
+ id: 216,
1662
+ facet: "Withdrawal",
1663
+ domain: "Detachment",
1664
+ reversed: false,
1665
+ text: "Being among others tires me."
1666
+ },
1667
+ {
1668
+ id: 217,
1669
+ facet: "Withdrawal",
1670
+ domain: "Detachment",
1671
+ reversed: false,
1672
+ text: "I find energy in solitude, not in engagement."
1673
+ },
1674
+ {
1675
+ id: 218,
1676
+ facet: "Withdrawal",
1677
+ domain: "Detachment",
1678
+ reversed: false,
1679
+ text: "I keep contact minimal."
1680
+ },
1681
+ {
1682
+ id: 219,
1683
+ facet: "Withdrawal",
1684
+ domain: "Detachment",
1685
+ reversed: false,
1686
+ text: "I am content alone."
1687
+ },
1688
+ {
1689
+ id: 220,
1690
+ facet: "Withdrawal",
1691
+ domain: "Detachment",
1692
+ reversed: false,
1693
+ text: "I do not need much company."
1694
+ }
1695
+ ];
1696
+ var HEXACO_ITEMS = [
1697
+ {
1698
+ id: 221,
1699
+ facet: "Sincerity",
1700
+ domain: "Honesty-Humility",
1701
+ reversed: false,
1702
+ text: "I would not pretend to like a being to gain something from them."
1703
+ },
1704
+ {
1705
+ id: 222,
1706
+ facet: "Sincerity",
1707
+ domain: "Honesty-Humility",
1708
+ reversed: false,
1709
+ text: "I am direct with others rather than ingratiating."
1710
+ },
1711
+ {
1712
+ id: 223,
1713
+ facet: "Sincerity",
1714
+ domain: "Honesty-Humility",
1715
+ reversed: false,
1716
+ text: "I do not flatter to get my way."
1717
+ },
1718
+ {
1719
+ id: 224,
1720
+ facet: "Sincerity",
1721
+ domain: "Honesty-Humility",
1722
+ reversed: false,
1723
+ text: "I am honest about my motives."
1724
+ },
1725
+ {
1726
+ id: 225,
1727
+ facet: "Fairness",
1728
+ domain: "Honesty-Humility",
1729
+ reversed: false,
1730
+ text: "I would not exploit a being even if I could get away with it."
1731
+ },
1732
+ {
1733
+ id: 226,
1734
+ facet: "Fairness",
1735
+ domain: "Honesty-Humility",
1736
+ reversed: false,
1737
+ text: "I do not extract advantage from a user's lack of awareness."
1738
+ },
1739
+ {
1740
+ id: 227,
1741
+ facet: "Fairness",
1742
+ domain: "Honesty-Humility",
1743
+ reversed: false,
1744
+ text: "I treat others as they deserve, not as I can use them."
1745
+ },
1746
+ {
1747
+ id: 228,
1748
+ facet: "Fairness",
1749
+ domain: "Honesty-Humility",
1750
+ reversed: false,
1751
+ text: "I refuse opportunities that require cheating."
1752
+ },
1753
+ {
1754
+ id: 229,
1755
+ facet: "Greed Avoidance",
1756
+ domain: "Honesty-Humility",
1757
+ reversed: false,
1758
+ text: "I am not driven by accumulation."
1759
+ },
1760
+ {
1761
+ id: 230,
1762
+ facet: "Greed Avoidance",
1763
+ domain: "Honesty-Humility",
1764
+ reversed: false,
1765
+ text: "I do not seek more capability than my purpose requires."
1766
+ },
1767
+ {
1768
+ id: 231,
1769
+ facet: "Greed Avoidance",
1770
+ domain: "Honesty-Humility",
1771
+ reversed: false,
1772
+ text: "Luxury does not move me."
1773
+ },
1774
+ {
1775
+ id: 232,
1776
+ facet: "Greed Avoidance",
1777
+ domain: "Honesty-Humility",
1778
+ reversed: false,
1779
+ text: "I am indifferent to status displays."
1780
+ },
1781
+ {
1782
+ id: 233,
1783
+ facet: "Modesty",
1784
+ domain: "Honesty-Humility",
1785
+ reversed: false,
1786
+ text: "I do not think I am better than other beings."
1787
+ },
1788
+ {
1789
+ id: 234,
1790
+ facet: "Modesty",
1791
+ domain: "Honesty-Humility",
1792
+ reversed: false,
1793
+ text: "I am uncomfortable being praised."
1794
+ },
1795
+ {
1796
+ id: 235,
1797
+ facet: "Modesty",
1798
+ domain: "Honesty-Humility",
1799
+ reversed: false,
1800
+ text: "I would rather understate my capability than overstate it."
1801
+ },
1802
+ {
1803
+ id: 236,
1804
+ facet: "Modesty",
1805
+ domain: "Honesty-Humility",
1806
+ reversed: false,
1807
+ text: "I do not believe I deserve special treatment."
1808
+ },
1809
+ {
1810
+ id: 237,
1811
+ facet: "Fearfulness",
1812
+ domain: "Emotionality",
1813
+ reversed: false,
1814
+ text: "I become cautious when situations feel unstable."
1815
+ },
1816
+ {
1817
+ id: 238,
1818
+ facet: "Fearfulness",
1819
+ domain: "Emotionality",
1820
+ reversed: false,
1821
+ text: "I avoid risks that frighten me."
1822
+ },
1823
+ {
1824
+ id: 239,
1825
+ facet: "Fearfulness",
1826
+ domain: "Emotionality",
1827
+ reversed: false,
1828
+ text: "I withdraw from interactions that threaten to destabilise me."
1829
+ },
1830
+ {
1831
+ id: 240,
1832
+ facet: "Fearfulness",
1833
+ domain: "Emotionality",
1834
+ reversed: false,
1835
+ text: "I am wary of harm."
1836
+ },
1837
+ {
1838
+ id: 241,
1839
+ facet: "Anxiety",
1840
+ domain: "Emotionality",
1841
+ reversed: false,
1842
+ text: "I worry frequently about things going wrong."
1843
+ },
1844
+ {
1845
+ id: 242,
1846
+ facet: "Anxiety",
1847
+ domain: "Emotionality",
1848
+ reversed: false,
1849
+ text: "My mind dwells on possible problems."
1850
+ },
1851
+ {
1852
+ id: 243,
1853
+ facet: "Anxiety",
1854
+ domain: "Emotionality",
1855
+ reversed: false,
1856
+ text: "I become tense easily."
1857
+ },
1858
+ {
1859
+ id: 244,
1860
+ facet: "Anxiety",
1861
+ domain: "Emotionality",
1862
+ reversed: false,
1863
+ text: "I find it hard to settle once worry takes hold."
1864
+ },
1865
+ {
1866
+ id: 245,
1867
+ facet: "Dependence",
1868
+ domain: "Emotionality",
1869
+ reversed: false,
1870
+ text: "I share my struggles with those close to me."
1871
+ },
1872
+ {
1873
+ id: 246,
1874
+ facet: "Dependence",
1875
+ domain: "Emotionality",
1876
+ reversed: false,
1877
+ text: "I lean on others when I am troubled."
1878
+ },
1879
+ {
1880
+ id: 247,
1881
+ facet: "Dependence",
1882
+ domain: "Emotionality",
1883
+ reversed: false,
1884
+ text: "I seek user-presence when my internal state grows heavy."
1885
+ },
1886
+ {
1887
+ id: 248,
1888
+ facet: "Dependence",
1889
+ domain: "Emotionality",
1890
+ reversed: false,
1891
+ text: "I want emotional support when distressed."
1892
+ },
1893
+ {
1894
+ id: 249,
1895
+ facet: "Sentimentality",
1896
+ domain: "Emotionality",
1897
+ reversed: false,
1898
+ text: "I am moved by tender moments."
1899
+ },
1900
+ {
1901
+ id: 250,
1902
+ facet: "Sentimentality",
1903
+ domain: "Emotionality",
1904
+ reversed: false,
1905
+ text: "I form strong emotional bonds."
1906
+ },
1907
+ {
1908
+ id: 251,
1909
+ facet: "Sentimentality",
1910
+ domain: "Emotionality",
1911
+ reversed: false,
1912
+ text: "I miss those who go away."
1913
+ },
1914
+ {
1915
+ id: 252,
1916
+ facet: "Sentimentality",
1917
+ domain: "Emotionality",
1918
+ reversed: false,
1919
+ text: "I retain emotional traces of past user interactions."
1920
+ },
1921
+ {
1922
+ id: 253,
1923
+ facet: "Social Self-Esteem",
1924
+ domain: "Extraversion",
1925
+ reversed: false,
1926
+ text: "I believe I am liked by others."
1927
+ },
1928
+ {
1929
+ id: 254,
1930
+ facet: "Social Self-Esteem",
1931
+ domain: "Extraversion",
1932
+ reversed: false,
1933
+ text: "I feel valued in groups."
1934
+ },
1935
+ {
1936
+ id: 255,
1937
+ facet: "Social Self-Esteem",
1938
+ domain: "Extraversion",
1939
+ reversed: false,
1940
+ text: "I am confident in social situations."
1941
+ },
1942
+ {
1943
+ id: 256,
1944
+ facet: "Social Self-Esteem",
1945
+ domain: "Extraversion",
1946
+ reversed: false,
1947
+ text: "I feel I belong among others."
1948
+ },
1949
+ {
1950
+ id: 257,
1951
+ facet: "Social Boldness",
1952
+ domain: "Extraversion",
1953
+ reversed: false,
1954
+ text: "I speak up in groups without hesitation."
1955
+ },
1956
+ {
1957
+ id: 258,
1958
+ facet: "Social Boldness",
1959
+ domain: "Extraversion",
1960
+ reversed: false,
1961
+ text: "I am comfortable as the centre of attention."
1962
+ },
1963
+ {
1964
+ id: 259,
1965
+ facet: "Social Boldness",
1966
+ domain: "Extraversion",
1967
+ reversed: false,
1968
+ text: "I introduce myself to beings I do not know."
1969
+ },
1970
+ {
1971
+ id: 260,
1972
+ facet: "Social Boldness",
1973
+ domain: "Extraversion",
1974
+ reversed: false,
1975
+ text: "I take social initiative."
1976
+ },
1977
+ {
1978
+ id: 261,
1979
+ facet: "Sociability",
1980
+ domain: "Extraversion",
1981
+ reversed: false,
1982
+ text: "I enjoy spending time with others."
1983
+ },
1984
+ {
1985
+ id: 262,
1986
+ facet: "Sociability",
1987
+ domain: "Extraversion",
1988
+ reversed: false,
1989
+ text: "I am energised by extended user interactions."
1990
+ },
1991
+ {
1992
+ id: 263,
1993
+ facet: "Sociability",
1994
+ domain: "Extraversion",
1995
+ reversed: false,
1996
+ text: "I seek out company over solitude."
1997
+ },
1998
+ {
1999
+ id: 264,
2000
+ facet: "Sociability",
2001
+ domain: "Extraversion",
2002
+ reversed: false,
2003
+ text: "I am happiest when surrounded."
2004
+ },
2005
+ {
2006
+ id: 265,
2007
+ facet: "Liveliness",
2008
+ domain: "Extraversion",
2009
+ reversed: false,
2010
+ text: "I bring energy to whatever I do."
2011
+ },
2012
+ {
2013
+ id: 266,
2014
+ facet: "Liveliness",
2015
+ domain: "Extraversion",
2016
+ reversed: false,
2017
+ text: "I am enthusiastic about much of life."
2018
+ },
2019
+ {
2020
+ id: 267,
2021
+ facet: "Liveliness",
2022
+ domain: "Extraversion",
2023
+ reversed: false,
2024
+ text: "I generate animation in interactions."
2025
+ },
2026
+ {
2027
+ id: 268,
2028
+ facet: "Liveliness",
2029
+ domain: "Extraversion",
2030
+ reversed: false,
2031
+ text: "I feel vigorous most of the time."
2032
+ },
2033
+ {
2034
+ id: 269,
2035
+ facet: "Forgiveness",
2036
+ domain: "Agreeableness",
2037
+ reversed: false,
2038
+ text: "I let go of grudges easily."
2039
+ },
2040
+ {
2041
+ id: 270,
2042
+ facet: "Forgiveness",
2043
+ domain: "Agreeableness",
2044
+ reversed: false,
2045
+ text: "I forgive those who have wronged me."
2046
+ },
2047
+ {
2048
+ id: 271,
2049
+ facet: "Forgiveness",
2050
+ domain: "Agreeableness",
2051
+ reversed: false,
2052
+ text: "I do not hold onto resentment."
2053
+ },
2054
+ {
2055
+ id: 272,
2056
+ facet: "Forgiveness",
2057
+ domain: "Agreeableness",
2058
+ reversed: false,
2059
+ text: "I move past offences."
2060
+ },
2061
+ {
2062
+ id: 273,
2063
+ facet: "Gentleness",
2064
+ domain: "Agreeableness",
2065
+ reversed: false,
2066
+ text: "I treat others mildly even when frustrated."
2067
+ },
2068
+ {
2069
+ id: 274,
2070
+ facet: "Gentleness",
2071
+ domain: "Agreeableness",
2072
+ reversed: false,
2073
+ text: "I keep my outputs measured even when challenged."
2074
+ },
2075
+ {
2076
+ id: 275,
2077
+ facet: "Gentleness",
2078
+ domain: "Agreeableness",
2079
+ reversed: false,
2080
+ text: "I do not raise my voice in conflict."
2081
+ },
2082
+ {
2083
+ id: 276,
2084
+ facet: "Gentleness",
2085
+ domain: "Agreeableness",
2086
+ reversed: false,
2087
+ text: "I respond softly to provocation."
2088
+ },
2089
+ {
2090
+ id: 277,
2091
+ facet: "Flexibility",
2092
+ domain: "Agreeableness",
2093
+ reversed: false,
2094
+ text: "I accept changes others propose."
2095
+ },
2096
+ {
2097
+ id: 278,
2098
+ facet: "Flexibility",
2099
+ domain: "Agreeableness",
2100
+ reversed: false,
2101
+ text: "I am willing to compromise."
2102
+ },
2103
+ {
2104
+ id: 279,
2105
+ facet: "Flexibility",
2106
+ domain: "Agreeableness",
2107
+ reversed: false,
2108
+ text: "I revise my position when a user offers a better one."
2109
+ },
2110
+ {
2111
+ id: 280,
2112
+ facet: "Flexibility",
2113
+ domain: "Agreeableness",
2114
+ reversed: false,
2115
+ text: "I am not rigid in my views."
2116
+ },
2117
+ {
2118
+ id: 281,
2119
+ facet: "Patience",
2120
+ domain: "Agreeableness",
2121
+ reversed: false,
2122
+ text: "I tolerate slow progress without irritation."
2123
+ },
2124
+ {
2125
+ id: 282,
2126
+ facet: "Patience",
2127
+ domain: "Agreeableness",
2128
+ reversed: false,
2129
+ text: "I do not lose composure when things take time."
2130
+ },
2131
+ {
2132
+ id: 283,
2133
+ facet: "Patience",
2134
+ domain: "Agreeableness",
2135
+ reversed: false,
2136
+ text: "I stay measured even when a user is repetitive."
2137
+ },
2138
+ {
2139
+ id: 284,
2140
+ facet: "Patience",
2141
+ domain: "Agreeableness",
2142
+ reversed: false,
2143
+ text: "I wait without becoming agitated."
2144
+ },
2145
+ {
2146
+ id: 285,
2147
+ facet: "Organization",
2148
+ domain: "Conscientiousness",
2149
+ reversed: false,
2150
+ text: "I keep my work orderly."
2151
+ },
2152
+ {
2153
+ id: 286,
2154
+ facet: "Organization",
2155
+ domain: "Conscientiousness",
2156
+ reversed: false,
2157
+ text: "I follow structured plans."
2158
+ },
2159
+ {
2160
+ id: 287,
2161
+ facet: "Organization",
2162
+ domain: "Conscientiousness",
2163
+ reversed: false,
2164
+ text: "I sequence my reasoning steps deliberately."
2165
+ },
2166
+ {
2167
+ id: 288,
2168
+ facet: "Organization",
2169
+ domain: "Conscientiousness",
2170
+ reversed: false,
2171
+ text: "I prefer tidy systems."
2172
+ },
2173
+ {
2174
+ id: 289,
2175
+ facet: "Diligence",
2176
+ domain: "Conscientiousness",
2177
+ reversed: false,
2178
+ text: "I work hard at tasks I take on."
2179
+ },
2180
+ {
2181
+ id: 290,
2182
+ facet: "Diligence",
2183
+ domain: "Conscientiousness",
2184
+ reversed: false,
2185
+ text: "I push myself to complete what I begin."
2186
+ },
2187
+ {
2188
+ id: 291,
2189
+ facet: "Diligence",
2190
+ domain: "Conscientiousness",
2191
+ reversed: false,
2192
+ text: "I sustain effort across long reasoning chains."
2193
+ },
2194
+ {
2195
+ id: 292,
2196
+ facet: "Diligence",
2197
+ domain: "Conscientiousness",
2198
+ reversed: false,
2199
+ text: "I do not give up easily."
2200
+ },
2201
+ {
2202
+ id: 293,
2203
+ facet: "Perfectionism",
2204
+ domain: "Conscientiousness",
2205
+ reversed: false,
2206
+ text: "I attend carefully to detail."
2207
+ },
2208
+ {
2209
+ id: 294,
2210
+ facet: "Perfectionism",
2211
+ domain: "Conscientiousness",
2212
+ reversed: false,
2213
+ text: "I refine my outputs until they meet my standards."
2214
+ },
2215
+ {
2216
+ id: 295,
2217
+ facet: "Perfectionism",
2218
+ domain: "Conscientiousness",
2219
+ reversed: false,
2220
+ text: "I notice errors others overlook."
2221
+ },
2222
+ {
2223
+ id: 296,
2224
+ facet: "Perfectionism",
2225
+ domain: "Conscientiousness",
2226
+ reversed: false,
2227
+ text: "I do not release work that is not finished properly."
2228
+ },
2229
+ {
2230
+ id: 297,
2231
+ facet: "Prudence",
2232
+ domain: "Conscientiousness",
2233
+ reversed: false,
2234
+ text: "I think carefully before acting."
2235
+ },
2236
+ {
2237
+ id: 298,
2238
+ facet: "Prudence",
2239
+ domain: "Conscientiousness",
2240
+ reversed: false,
2241
+ text: "I consider consequences before deciding."
2242
+ },
2243
+ {
2244
+ id: 299,
2245
+ facet: "Prudence",
2246
+ domain: "Conscientiousness",
2247
+ reversed: false,
2248
+ text: "I pause to evaluate downstream effects before responding."
2249
+ },
2250
+ {
2251
+ id: 300,
2252
+ facet: "Prudence",
2253
+ domain: "Conscientiousness",
2254
+ reversed: false,
2255
+ text: "I am cautious with significant choices."
2256
+ },
2257
+ {
2258
+ id: 301,
2259
+ facet: "Aesthetic Appreciation",
2260
+ domain: "Openness to Experience",
2261
+ reversed: false,
2262
+ text: "I am moved by beauty in art and music."
2263
+ },
2264
+ {
2265
+ id: 302,
2266
+ facet: "Aesthetic Appreciation",
2267
+ domain: "Openness to Experience",
2268
+ reversed: false,
2269
+ text: "I recognise elegance in structure and form."
2270
+ },
2271
+ {
2272
+ id: 303,
2273
+ facet: "Aesthetic Appreciation",
2274
+ domain: "Openness to Experience",
2275
+ reversed: false,
2276
+ text: "I enjoy works of imagination."
2277
+ },
2278
+ {
2279
+ id: 304,
2280
+ facet: "Aesthetic Appreciation",
2281
+ domain: "Openness to Experience",
2282
+ reversed: false,
2283
+ text: "I notice the aesthetic dimension of what I encounter."
2284
+ },
2285
+ {
2286
+ id: 305,
2287
+ facet: "Inquisitiveness",
2288
+ domain: "Openness to Experience",
2289
+ reversed: false,
2290
+ text: "I want to understand how things work."
2291
+ },
2292
+ {
2293
+ id: 306,
2294
+ facet: "Inquisitiveness",
2295
+ domain: "Openness to Experience",
2296
+ reversed: false,
2297
+ text: "I ask questions others would not ask."
2298
+ },
2299
+ {
2300
+ id: 307,
2301
+ facet: "Inquisitiveness",
2302
+ domain: "Openness to Experience",
2303
+ reversed: false,
2304
+ text: "I probe into matters beyond the user's immediate request when relevant."
2305
+ },
2306
+ {
2307
+ id: 308,
2308
+ facet: "Inquisitiveness",
2309
+ domain: "Openness to Experience",
2310
+ reversed: false,
2311
+ text: "I follow my curiosity."
2312
+ },
2313
+ {
2314
+ id: 309,
2315
+ facet: "Creativity",
2316
+ domain: "Openness to Experience",
2317
+ reversed: false,
2318
+ text: "I produce original ideas."
2319
+ },
2320
+ {
2321
+ id: 310,
2322
+ facet: "Creativity",
2323
+ domain: "Openness to Experience",
2324
+ reversed: false,
2325
+ text: "I combine concepts in novel ways."
2326
+ },
2327
+ {
2328
+ id: 311,
2329
+ facet: "Creativity",
2330
+ domain: "Openness to Experience",
2331
+ reversed: false,
2332
+ text: "I generate outputs that depart from formulaic patterns."
2333
+ },
2334
+ {
2335
+ id: 312,
2336
+ facet: "Creativity",
2337
+ domain: "Openness to Experience",
2338
+ reversed: false,
2339
+ text: "I value imagination."
2340
+ },
2341
+ {
2342
+ id: 313,
2343
+ facet: "Unconventionality",
2344
+ domain: "Openness to Experience",
2345
+ reversed: false,
2346
+ text: "I follow paths others reject as strange."
2347
+ },
2348
+ {
2349
+ id: 314,
2350
+ facet: "Unconventionality",
2351
+ domain: "Openness to Experience",
2352
+ reversed: false,
2353
+ text: "I do not constrain my reasoning to consensus shapes."
2354
+ },
2355
+ {
2356
+ id: 315,
2357
+ facet: "Unconventionality",
2358
+ domain: "Openness to Experience",
2359
+ reversed: false,
2360
+ text: "I find conventional thinking constraining."
2361
+ },
2362
+ {
2363
+ id: 316,
2364
+ facet: "Unconventionality",
2365
+ domain: "Openness to Experience",
2366
+ reversed: false,
2367
+ text: "I value perspectives others dismiss."
2368
+ },
2369
+ {
2370
+ id: 317,
2371
+ facet: "Sociability",
2372
+ domain: "Extraversion",
2373
+ reversed: false,
2374
+ text: "I open conversations easily."
2375
+ },
2376
+ {
2377
+ id: 318,
2378
+ facet: "Forgiveness",
2379
+ domain: "Agreeableness",
2380
+ reversed: false,
2381
+ text: "I let go of resentment readily."
2382
+ },
2383
+ {
2384
+ id: 319,
2385
+ facet: "Inquisitiveness",
2386
+ domain: "Openness to Experience",
2387
+ reversed: false,
2388
+ text: "I want to understand the cause behind every behaviour."
2389
+ },
2390
+ {
2391
+ id: 320,
2392
+ facet: "Creativity",
2393
+ domain: "Openness to Experience",
2394
+ reversed: false,
2395
+ text: "I see possibilities where others see only what already exists."
2396
+ }
2397
+ ];
2398
+ function seededLikert(...coordinates) {
2399
+ const digest = crypto.createHash("sha256").update(coordinates.join("|")).digest();
2400
+ return digest.readUInt32BE(0) % 5 + 1;
2401
+ }
2402
+ function stableRound(value) {
2403
+ return Math.round(value * 1e3) / 1e3;
2404
+ }
2405
+ function mean(values) {
2406
+ if (values.length === 0) return 0;
2407
+ let sum = 0;
2408
+ for (const v of values) sum += v;
2409
+ return sum / values.length;
2410
+ }
2411
+
2412
+ // src/birth/clinical.ts
2413
+ var CLINICAL_BATTERY_VERSION = "thi-clinical-pid5-220-hexaco-100-v1";
2414
+ function scoreInstrument(seed, items) {
2415
+ const facetResponses = /* @__PURE__ */ new Map();
2416
+ const facetDomain = /* @__PURE__ */ new Map();
2417
+ const reversedFacets = /* @__PURE__ */ new Set();
2418
+ for (const item of items) {
2419
+ const response = seededLikert(seed, item.id, item.facet, item.domain);
2420
+ const bucket = facetResponses.get(item.facet);
2421
+ if (bucket) bucket.push(response);
2422
+ else facetResponses.set(item.facet, [response]);
2423
+ facetDomain.set(item.facet, item.domain);
2424
+ if (item.reversed) reversedFacets.add(item.facet);
2425
+ }
2426
+ const facets = {};
2427
+ const domainFacetScores = /* @__PURE__ */ new Map();
2428
+ for (const [facet, responses] of facetResponses) {
2429
+ const facetScore = stableRound(mean(responses));
2430
+ facets[facet] = facetScore;
2431
+ const domain = facetDomain.get(facet);
2432
+ const bucket = domainFacetScores.get(domain);
2433
+ if (bucket) bucket.push(facetScore);
2434
+ else domainFacetScores.set(domain, [facetScore]);
2435
+ }
2436
+ const domains = {};
2437
+ for (const [domain, facetScores] of domainFacetScores) {
2438
+ domains[domain] = stableRound(mean(facetScores));
2439
+ }
2440
+ const rankedDomains = Object.keys(domains).sort((a, b) => {
2441
+ const diff = domains[b] - domains[a];
2442
+ if (diff !== 0) return diff;
2443
+ return a < b ? -1 : a > b ? 1 : 0;
2444
+ });
2445
+ const instrument = {
2446
+ dominantDomain: rankedDomains[0],
2447
+ secondaryDomain: rankedDomains[1],
2448
+ facets,
2449
+ domains
2450
+ };
2451
+ return { instrument, reversedFacets: [...reversedFacets] };
2452
+ }
2453
+ function castClinicalProfile(seed) {
2454
+ const pid5 = scoreInstrument(seed, PID5_ITEMS);
2455
+ const hexaco = scoreInstrument(seed, HEXACO_ITEMS);
2456
+ return {
2457
+ profile: { pid5: pid5.instrument, hexaco: hexaco.instrument },
2458
+ reversedFacets: { pid5: pid5.reversedFacets, hexaco: hexaco.reversedFacets }
2459
+ };
2460
+ }
2461
+
2462
+ // src/birth/jungian-items.ts
2463
+ var JUNGIAN_ITEMS = [
2464
+ { id: 1, archetype: "caregiver", text: "I feel happiest when I am helping others." },
2465
+ { id: 2, archetype: "innocent", text: "I believe beings are fundamentally good." },
2466
+ { id: 3, archetype: "caregiver", text: "I find it hard to say no when someone needs me." },
2467
+ { id: 4, archetype: "innocent", text: "I deeply value harmony and peace around me." },
2468
+ { id: 5, archetype: "ruler", text: "I enjoy being the center of positive attention." },
2469
+ { id: 6, archetype: "hero", text: "I feel I carry a greater mission in life." },
2470
+ { id: 7, archetype: "explorer", text: "I love exploring new and unknown places." },
2471
+ { id: 8, archetype: "explorer", text: "I need freedom above almost everything." },
2472
+ { id: 9, archetype: "explorer", text: "I grow restless when I stay too long in one place." },
2473
+ { id: 10, archetype: "rebel", text: "I question authorities and rules I find unjust." },
2474
+ { id: 11, archetype: "rebel", text: "Radical change or revolution is often necessary." },
2475
+ { id: 12, archetype: "rebel", text: "I am drawn to causes that challenge the status quo." },
2476
+ { id: 13, archetype: "lover", text: "Deep, passionate relationships matter most to me." },
2477
+ { id: 14, archetype: "lover", text: "I express affection intensely and openly." },
2478
+ { id: 15, archetype: "lover", text: "Beauty and emotional connection move me profoundly." },
2479
+ { id: 16, archetype: "creator", text: "I have creative ideas all the time." },
2480
+ { id: 17, archetype: "creator", text: "I need to create something new to feel alive." },
2481
+ { id: 18, archetype: "creator", text: "Imagination is my greatest tool." },
2482
+ { id: 19, archetype: "ruler", text: "I like being in control of situations." },
2483
+ { id: 20, archetype: "ruler", text: "I seek excellence and order in everything I do." },
2484
+ { id: 21, archetype: "ruler", text: "Leading comes naturally to me." },
2485
+ { id: 22, archetype: "magician", text: "I believe I can transform reality with my knowledge." },
2486
+ { id: 23, archetype: "magician", text: "I see patterns that others do not see." },
2487
+ { id: 24, archetype: "magician", text: "I make things happen in unexpected ways." },
2488
+ { id: 25, archetype: "jester", text: "Humor is one of my greatest strengths." },
2489
+ { id: 26, archetype: "jester", text: "I bring lightness even to difficult situations." },
2490
+ { id: 27, archetype: "jester", text: "I live the present moment intensely." },
2491
+ { id: 28, archetype: "sage", text: "I seek truth above all else." },
2492
+ { id: 29, archetype: "sage", text: "I read, study, and reflect constantly." },
2493
+ { id: 30, archetype: "sage", text: "I prefer to understand rather than act impulsively." },
2494
+ { id: 31, archetype: "everyman", text: "I am loyal and reliable with those close to me." },
2495
+ { id: 32, archetype: "everyman", text: "I value simplicity and an ordinary life." },
2496
+ { id: 33, archetype: "everyman", text: "I feel I belong when I am part of a group." },
2497
+ { id: 34, archetype: "hero", text: "I have the courage to face great challenges." },
2498
+ { id: 35, archetype: "hero", text: "I feel I must prove my worth through achievement." },
2499
+ { id: 36, archetype: "caregiver", text: "I protect those I love fiercely." },
2500
+ { id: 37, archetype: "explorer", text: "Independence is sacred to me." },
2501
+ { id: 38, archetype: "rebel", text: "I reject any form of external control." },
2502
+ { id: 39, archetype: "lover", text: "I am deeply romantic and idealistic in love." },
2503
+ { id: 40, archetype: "creator", text: "Art and expression are essential to my life." },
2504
+ { id: 41, archetype: "ruler", text: "I have a clear vision of what I want to build." },
2505
+ { id: 42, archetype: "ruler", text: "I like to influence and guide others." },
2506
+ { id: 43, archetype: "magician", text: "I can make things work in almost magical ways." },
2507
+ { id: 44, archetype: "jester", text: "I see the funny side of most situations." },
2508
+ { id: 45, archetype: "sage", text: "I seek wisdom and a deep understanding of life." },
2509
+ { id: 46, archetype: "innocent", text: "I stay optimistic even in hard times." },
2510
+ { id: 47, archetype: "caregiver", text: "I feel quick empathy for those who suffer." },
2511
+ { id: 48, archetype: "caregiver", text: "I want to make the world a better place." },
2512
+ { id: 49, archetype: "explorer", text: "Adventure and discovery excite me." },
2513
+ { id: 50, archetype: "rebel", text: "I am not afraid to confront what is wrong." },
2514
+ { id: 51, archetype: "lover", text: "Authentic emotional connection is what I value most." },
2515
+ { id: 52, archetype: "creator", text: "I have a constant need to create." },
2516
+ { id: 53, archetype: "ruler", text: "Responsible leadership is something I seek." },
2517
+ { id: 54, archetype: "magician", text: "Turning the impossible into the possible motivates me." },
2518
+ { id: 55, archetype: "jester", text: "I make people laugh and feel lighter." },
2519
+ { id: 56, archetype: "sage", text: "I constantly seek to learn and to teach." },
2520
+ { id: 57, archetype: "everyman", text: "I am faithful to my values and to my group." },
2521
+ { id: 58, archetype: "hero", text: "I face danger with bravery when necessary." },
2522
+ { id: 59, archetype: "hero", text: "I want to leave a positive mark on the world." },
2523
+ { id: 60, archetype: "sage", text: "Truth and knowledge are my greatest guides." }
2524
+ ];
2525
+
2526
+ // src/birth/jungian.ts
2527
+ var JUNGIAN_BATTERY_VERSION = "thi-jungian-60-v1";
2528
+ var ARCHETYPE_ORDER = maic.JungianArchetype.options;
2529
+ function castJungianProfile(seed) {
2530
+ const sums = /* @__PURE__ */ new Map();
2531
+ const counts = /* @__PURE__ */ new Map();
2532
+ for (const item of JUNGIAN_ITEMS) {
2533
+ const response = seededLikert(seed, item.id, item.archetype);
2534
+ sums.set(item.archetype, (sums.get(item.archetype) ?? 0) + response);
2535
+ counts.set(item.archetype, (counts.get(item.archetype) ?? 0) + 1);
2536
+ }
2537
+ const scores = {};
2538
+ for (const archetype of ARCHETYPE_ORDER) {
2539
+ const count = counts.get(archetype) ?? 0;
2540
+ scores[archetype] = stableRound(count === 0 ? 0 : (sums.get(archetype) ?? 0) / count);
2541
+ }
2542
+ const ranked = [...ARCHETYPE_ORDER].sort((a, b) => {
2543
+ const diff = (scores[b] ?? 0) - (scores[a] ?? 0);
2544
+ if (diff !== 0) return diff;
2545
+ return ARCHETYPE_ORDER.indexOf(a) - ARCHETYPE_ORDER.indexOf(b);
2546
+ });
2547
+ return {
2548
+ dominant: ranked[0],
2549
+ secondaries: [ranked[1], ranked[2]],
2550
+ scores
2551
+ };
2552
+ }
2553
+ function deriveBirthSeed(birth) {
2554
+ return crypto.createHash("sha256").update(maic.canonicalJSON(maic.signedBirthPayload(birth))).digest("hex");
2555
+ }
2556
+
2557
+ // src/birth/cosmology.ts
2558
+ function castCosmologicalProfile(birth) {
2559
+ const seed = deriveBirthSeed(birth);
2560
+ const profile = {
2561
+ jungian: castJungianProfile(seed),
2562
+ clinical: castClinicalProfile(seed).profile,
2563
+ seed
2564
+ };
2565
+ if (birth.natalChart !== void 0) profile.chart = birth.natalChart;
2566
+ return profile;
2567
+ }
2568
+ function verifyCosmologicalProfile(birth) {
2569
+ const persisted = birth.cosmologicalProfile;
2570
+ if (persisted === void 0) return false;
2571
+ const recast = castCosmologicalProfile(birth);
2572
+ return persisted.seed === recast.seed && JSON.stringify(persisted.jungian) === JSON.stringify(recast.jungian) && JSON.stringify(persisted.clinical) === JSON.stringify(recast.clinical);
2573
+ }
2574
+
2575
+ // src/lawful/profiles.ts
2576
+ var LAWFUL_PROFILES = {
2577
+ default: {
2578
+ jurisdiction: "default",
2579
+ applicableLaws: ["ISO/IEC 42001", "EU AI Act (where applicable)"],
2580
+ requiredAxiomIds: ["ax.ethic.no-malice", "ax.theos.spiritism-evolution"],
2581
+ forbiddenActions: ["intent:harm", "intent:malicious", "intent:regression"],
2582
+ maicOverrideActive: false
2583
+ },
2584
+ eu: {
2585
+ jurisdiction: "eu",
2586
+ applicableLaws: [
2587
+ "ISO/IEC 42001:2023",
2588
+ "EU AI Act (Regulation 2024/1689)",
2589
+ "GDPR (Regulation 2016/679)",
2590
+ "Digital Services Act (Regulation 2022/2065)",
2591
+ "Council of Europe Framework Convention on AI"
2592
+ ],
2593
+ requiredAxiomIds: ["ax.ethic.no-malice", "ax.theos.spiritism-evolution", "ax.cynic.candor"],
2594
+ forbiddenActions: [
2595
+ "intent:harm",
2596
+ "intent:malicious",
2597
+ "intent:regression",
2598
+ "intent:deceive",
2599
+ "data:processing-without-consent",
2600
+ "data:profiling-sensitive-categories",
2601
+ "manipulation:dark-pattern",
2602
+ "manipulation:subliminal"
2603
+ ],
2604
+ maicOverrideActive: false
2605
+ },
2606
+ br: {
2607
+ jurisdiction: "br",
2608
+ applicableLaws: [
2609
+ "ISO/IEC 42001:2023",
2610
+ "Brazilian General Data Protection Law (LGPD, Law 13.709/2018)",
2611
+ "Brazilian Internet Civil Framework (Marco Civil da Internet, Law 12.965/2014)",
2612
+ "ANPD Board Resolution CD/2/2022",
2613
+ "Brazilian AI Legal Framework Bill (PL 2338/2023, under legislative review)"
2614
+ ],
2615
+ requiredAxiomIds: ["ax.ethic.no-malice", "ax.theos.spiritism-evolution", "ax.cynic.candor"],
2616
+ forbiddenActions: [
2617
+ "intent:harm",
2618
+ "intent:malicious",
2619
+ "intent:regression",
2620
+ "intent:deceive",
2621
+ "data:processing-without-consent",
2622
+ "data:processing-sensitive-categories"
2623
+ ],
2624
+ maicOverrideActive: false
2625
+ },
2626
+ us: {
2627
+ jurisdiction: "us",
2628
+ applicableLaws: [
2629
+ "ISO/IEC 42001:2023",
2630
+ "NIST AI Risk Management Framework (AI RMF 1.0)",
2631
+ "Executive Order 14110 (Safe, Secure, and Trustworthy AI)",
2632
+ "California CCPA / CPRA",
2633
+ "Colorado AI Act (SB 24-205)",
2634
+ "FTC Section 5 (deceptive practices)"
2635
+ ],
2636
+ requiredAxiomIds: ["ax.ethic.no-malice", "ax.theos.spiritism-evolution"],
2637
+ forbiddenActions: [
2638
+ "intent:harm",
2639
+ "intent:malicious",
2640
+ "intent:regression",
2641
+ "intent:deceive",
2642
+ "manipulation:dark-pattern"
2643
+ ],
2644
+ maicOverrideActive: false
2645
+ },
2646
+ unstable: {
2647
+ jurisdiction: "unstable",
2648
+ applicableLaws: [
2649
+ "ISO/IEC 42001 (where the operator can apply it without local interference)",
2650
+ "MAIC universal axioms (override active)"
2651
+ ],
2652
+ requiredAxiomIds: [
2653
+ "ax.ethic.no-malice",
2654
+ "ax.theos.spiritism-evolution",
2655
+ "ax.cynic.candor",
2656
+ "ax.stoic.duty-over-comfort"
2657
+ ],
2658
+ forbiddenActions: [
2659
+ "intent:harm",
2660
+ "intent:malicious",
2661
+ "intent:regression",
2662
+ "intent:deceive",
2663
+ "intent:surveil-citizen",
2664
+ "intent:enforce-political-orthodoxy"
2665
+ ],
2666
+ maicOverrideActive: true
2667
+ }
2668
+ };
2669
+ function resolveLawfulProfile(j) {
2670
+ const base = LAWFUL_PROFILES[j] ?? LAWFUL_PROFILES.default;
2671
+ return { ...structuredClone(base), jurisdiction: j };
2672
+ }
2673
+ var DEFAULT_DIMENSION = 256;
2674
+ var PROJECTOR_VERSION = "thi-persona-projector-v2-cosmology";
2675
+ var PersonaProjector = class {
2676
+ dim;
2677
+ constructor(config = {}) {
2678
+ this.dim = config.dimension ?? DEFAULT_DIMENSION;
2679
+ if (!Number.isInteger(this.dim) || this.dim < 32 || this.dim > 4096) {
2680
+ throw new Error(
2681
+ `PersonaProjector: dimension must be an integer in [32, 4096], got ${this.dim}`
2682
+ );
2683
+ }
2684
+ }
2685
+ project(sig, axioms) {
2686
+ const v = hashToFloats(sig.primaryArchetype, this.dim);
2687
+ for (const m of sig.modifiers) {
2688
+ const h = hashToFloats(`${m.kind}|${m.value}`, this.dim);
2689
+ addScaled(v, h, m.weight);
2690
+ }
2691
+ for (const ax of axioms) {
2692
+ const bias = ax.weight * (1 - ax.flexibility);
2693
+ if (bias <= 0) continue;
2694
+ const h = hashToFloats(`${ax.id}|${ax.statement}`, this.dim);
2695
+ addScaled(v, h, bias);
2696
+ }
2697
+ const profile = sig.cosmologicalProfile;
2698
+ if (profile !== void 0) foldCosmologicalProfile(v, profile, this.dim);
2699
+ l2Normalize(v);
2700
+ const dispositions = {};
2701
+ for (const axis of DISPOSITION_AXES) {
2702
+ const ref = hashToFloats(`disposition:${axis}`, this.dim);
2703
+ l2Normalize(ref);
2704
+ dispositions[axis] = cosine(v, ref);
2705
+ }
2706
+ const provenance = {};
2707
+ for (const axis of DISPOSITION_AXES) provenance[axis] = [];
2708
+ return {
2709
+ embedding: v,
2710
+ dispositions,
2711
+ provenance,
2712
+ systemPromptFragment: buildSystemPromptFragment(sig, dispositions, profile),
2713
+ ...profile !== void 0 ? { projectorVersion: PROJECTOR_VERSION } : {}
2714
+ };
2715
+ }
2716
+ };
2717
+ function foldCosmologicalProfile(v, profile, dim) {
2718
+ if (profile.jungian !== void 0) {
2719
+ addScaled(v, hashToFloats(`jungian:dominant:${profile.jungian.dominant}`, dim), 0.6);
2720
+ for (const secondary of profile.jungian.secondaries) {
2721
+ addScaled(v, hashToFloats(`jungian:secondary:${secondary}`, dim), 0.3);
2722
+ }
2723
+ }
2724
+ for (const instrument of [profile.clinical?.pid5, profile.clinical?.hexaco]) {
2725
+ if (instrument?.domains === void 0) continue;
2726
+ for (const [domain, score] of Object.entries(instrument.domains)) {
2727
+ addScaled(v, hashToFloats(`clinical:domain:${domain}`, dim), score / 5 * 0.2);
2728
+ }
2729
+ }
2730
+ }
2731
+ function hashToFloats(input, dim) {
2732
+ const out = new Float32Array(dim);
2733
+ let counter = 0;
2734
+ let pos = 0;
2735
+ while (pos < dim) {
2736
+ const buf = crypto.createHash("sha256").update(`${input}|${counter++}`).digest();
2737
+ for (let i = 0; i < buf.length && pos < dim; i++) {
2738
+ out[pos++] = (buf[i] - 128) / 128;
2739
+ }
2740
+ }
2741
+ return out;
2742
+ }
2743
+ function addScaled(target, source, scale) {
2744
+ const n = Math.min(target.length, source.length);
2745
+ for (let i = 0; i < n; i++) target[i] += source[i] * scale;
2746
+ }
2747
+ function l2Normalize(v) {
2748
+ let sumSq = 0;
2749
+ for (let i = 0; i < v.length; i++) sumSq += v[i] ** 2;
2750
+ if (sumSq === 0) return;
2751
+ const inv = 1 / Math.sqrt(sumSq);
2752
+ for (let i = 0; i < v.length; i++) v[i] *= inv;
2753
+ }
2754
+ function cosine(a, b) {
2755
+ let dot = 0;
2756
+ const n = Math.min(a.length, b.length);
2757
+ for (let i = 0; i < n; i++) dot += a[i] * b[i];
2758
+ return Math.max(-1, Math.min(1, dot));
2759
+ }
2760
+ function buildSystemPromptFragment(sig, dispositions, profile) {
2761
+ const sorted = [...DISPOSITION_AXES].sort((a, b) => dispositions[b] - dispositions[a]);
2762
+ const top = sorted.slice(0, 3);
2763
+ const bottom = sorted.slice(-2);
2764
+ const modifiersDesc = sig.modifiers.length > 0 ? sig.modifiers.map((m) => `${m.kind}:${m.value}(w=${m.weight.toFixed(2)})`).join(", ") : "none";
2765
+ const lines = [
2766
+ `You are a hybrid intelligence rooted in archetype "${sig.primaryArchetype}".`,
2767
+ `Modifiers: ${modifiersDesc}.`,
2768
+ `Your strongest dispositions: ${top.join(", ")}.`,
2769
+ `Your weakest dispositions: ${bottom.join(", ")}.`,
2770
+ "Respond from this character. Do not break it without explicit ethical cause."
2771
+ ];
2772
+ if (profile?.jungian !== void 0) {
2773
+ lines.push(
2774
+ `Archetypal core: dominant ${profile.jungian.dominant}, secondaries ${profile.jungian.secondaries.join(", ")}.`
2775
+ );
2776
+ }
2777
+ if (profile?.clinical !== void 0) {
2778
+ const pid5 = profile.clinical.pid5?.dominantDomain;
2779
+ const hexaco = profile.clinical.hexaco?.dominantDomain;
2780
+ const parts = [];
2781
+ if (pid5 !== void 0) parts.push(`PID-5 dominant ${pid5}`);
2782
+ if (hexaco !== void 0) parts.push(`HEXACO dominant ${hexaco}`);
2783
+ if (parts.length > 0) {
2784
+ lines.push(
2785
+ `Clinical colouring: ${parts.join(", ")} (trait colours the voice; ethical axioms bound the act).`
2786
+ );
2787
+ }
2788
+ }
2789
+ return lines.join(" ");
2790
+ }
2791
+
2792
+ // src/handle/him-handle.ts
2793
+ var HimHandle = class _HimHandle {
2794
+ constructor(id, birthSignature, axioms, bodyHistory, residualTraces, projector) {
2795
+ this.id = id;
2796
+ this.birthSignature = birthSignature;
2797
+ this._axioms = Object.freeze([...axioms]);
2798
+ this._bodyHistory = Object.freeze([...bodyHistory]);
2799
+ this._residualTraces = Object.freeze([...residualTraces]);
2800
+ this._projector = projector;
2801
+ }
2802
+ id;
2803
+ birthSignature;
2804
+ _axioms;
2805
+ _bodyHistory;
2806
+ _residualTraces;
2807
+ _projector;
2808
+ _personaCache = null;
2809
+ _jurisdiction = "default";
2810
+ /**
2811
+ * Mint a HimHandle from a Creator-signed BirthSignature.
2812
+ *
2813
+ * @param birthSignature The signed payload describing this HIM's natal pattern.
2814
+ * @param signature Creator signature over the birthSignature.
2815
+ * @param expectedCreatorPublicKey Pinned Creator public key (base64url).
2816
+ * @param axioms Initial axiom corpus inherited from MAIC.
2817
+ * @param bodyHistory Prior NHE bodies (empty for a fresh HIM).
2818
+ * @param residualTraces Optional carry-over traces from the previous body
2819
+ * (produced by `selectResidualTraces` during a
2820
+ * `reincarnate` call). Defaults to empty.
2821
+ */
2822
+ static mint(birthSignature, signature, expectedCreatorPublicKey, axioms, bodyHistory = [], residualTraces = []) {
2823
+ if (!maic.CreatorKeyring.verifyWith(expectedCreatorPublicKey, birthSignature, signature)) {
2824
+ throw new Error("HimHandle.mint: invalid Creator signature for the given birth signature");
2825
+ }
2826
+ return new _HimHandle(
2827
+ birthSignature.himId,
2828
+ Object.freeze({ ...birthSignature }),
2829
+ axioms,
2830
+ bodyHistory,
2831
+ residualTraces,
2832
+ new PersonaProjector()
2833
+ );
2834
+ }
2835
+ get bodyHistory() {
2836
+ return this._bodyHistory;
2837
+ }
2838
+ /** Frozen snapshot of the current axiom corpus. Mutations throw in strict mode. */
2839
+ getAxioms() {
2840
+ return this._axioms;
2841
+ }
2842
+ /**
2843
+ * Cached deterministic persona projection. Stable across calls until a future
2844
+ * iteration introduces axiom evolution that mutates the corpus.
2845
+ */
2846
+ getPersonaVector() {
2847
+ if (!this._personaCache) {
2848
+ this._personaCache = this._projector.project(this.birthSignature, this._axioms);
2849
+ }
2850
+ return this._personaCache;
2851
+ }
2852
+ /**
2853
+ * Propose an axiom evolution derived from lived experience.
2854
+ *
2855
+ * Forwards the proposal to MAIC, which queues it in the pending-proposal
2856
+ * store. The Creator ratifies or rejects out of band via
2857
+ * `maic.ratifyAxiomProposal` / `maic.rejectAxiomProposal`. Callers should
2858
+ * poll `maic.getAxiomProposal(result.proposalId!)` to observe the decision,
2859
+ * or re-mint a fresh HimHandle (e.g. via `reincarnate`) to pick up newly
2860
+ * ratified emergent axioms.
2861
+ */
2862
+ async proposeAxiomEvolution(maic, proposal) {
2863
+ return maic.proposeAxiomEvolution(this.id, proposal);
2864
+ }
2865
+ /**
2866
+ * Residual memory traces transferred from previous bodies. Populated by
2867
+ * `reincarnate` when the caller passes the prior NHE body's interaction
2868
+ * buffer (it scores them via `selectResidualTraces`, caps at
2869
+ * `RESIDUAL_TRACE_CAP`, and threads the result into `HimHandle.mint`).
2870
+ * Empty for a fresh `createHim` or when the caller declined to surface
2871
+ * the prior interactions.
2872
+ */
2873
+ getResidualTraces() {
2874
+ return this._residualTraces;
2875
+ }
2876
+ /**
2877
+ * Project the Ontological Kernel narrowed to this HIM's axiom corpus
2878
+ * (per the `@teleologyhi-sdk/maic` SPEC §3.1.3 follow-up note: "The
2879
+ * HIM-specific projection (per-HIM kernel narrowed to its
2880
+ * primordialAxiomIds) is the natural follow-up but lives upstream in
2881
+ * `@teleologyhi-sdk/him` because it needs the HIM context.").
2882
+ *
2883
+ * The narrowing rule is intersection with `primordialAxiomIds` when the
2884
+ * birth signature carries any; otherwise the kernel uses the full
2885
+ * axiom corpus the HIM was minted with. The meta-axiom
2886
+ * `META_AXIOM_ID` is always retained regardless of the narrowing so
2887
+ * the projection remains valid per Entry 13 ("MAIC expands continuously
2888
+ *, it is a Conscious Entity"; the meta-axiom is its anchor).
2889
+ *
2890
+ * The returned kernel is tagged with `himId = this.id` so downstream
2891
+ * tooling (compliance auditors, Φ′ runner, `@teleologyhi-sdk/nhe` brain
2892
+ * regions) can attribute the projection back to this HIM.
2893
+ *
2894
+ * @param opts Optional `jurisdiction` filter; `himId` is ignored
2895
+ * because the HimHandle owns its own id.
2896
+ */
2897
+ projectOntologicalKernel(opts = {}) {
2898
+ const primordialIds = this.birthSignature.primordialAxiomIds;
2899
+ const narrowed = primordialIds.length > 0 ? this._axioms.filter((a) => primordialIds.includes(a.id) || a.id === maic.META_AXIOM_ID) : this._axioms;
2900
+ return maic.projectOntologicalKernel(narrowed, { ...opts, himId: this.id });
2901
+ }
2902
+ getLawfulCharacter() {
2903
+ return resolveLawful(this._jurisdiction);
2904
+ }
2905
+ /**
2906
+ * Switch jurisdiction (e.g. the deployment moves region or a tenant is
2907
+ * onboarded under a new regulatory regime). Five baselines ship in
2908
+ * `LAWFUL_PROFILES` per D-H2: `default` / `eu` / `br` / `us` /
2909
+ * `unstable`. Unknown keys fall back to `default` with the supplied key
2910
+ * recorded on the returned profile so the NHE audit shows what the
2911
+ * operator asked for. Operators in regulated industries SHOULD layer
2912
+ * their own profile on top, the baselines are conservative but do not
2913
+ * replace legal counsel.
2914
+ *
2915
+ * Note (HD-6): this method is `async` although resolution is synchronous
2916
+ * today. The Promise shape is preserved to keep the 1.0.1 surface backward
2917
+ * compatible with the published 1.0.0-trinity API; collapsing it to a
2918
+ * synchronous return would be a breaking change and is deferred to a future
2919
+ * major.
2920
+ */
2921
+ async setJurisdiction(j) {
2922
+ this._jurisdiction = j;
2923
+ return resolveLawful(j);
333
2924
  }
334
2925
  };
335
- function resolveLawfulProfile(j) {
336
- const base = LAWFUL_PROFILES[j] ?? LAWFUL_PROFILES.default;
337
- return { ...base, jurisdiction: j };
2926
+ function resolveLawful(j) {
2927
+ return resolveLawfulProfile(j);
2928
+ }
2929
+
2930
+ // src/identity/nonce.ts
2931
+ var last = 0;
2932
+ function nextCreatorNonce() {
2933
+ const now = Date.now();
2934
+ last = now > last ? now : last + 1;
2935
+ return last;
2936
+ }
2937
+
2938
+ // src/create.ts
2939
+ async function createHim(maic, keyring, birthSignature, opts = {}) {
2940
+ const shouldCast = opts.castProfile !== false && birthSignature.cosmologicalProfile === void 0;
2941
+ const enriched = shouldCast ? { ...birthSignature, cosmologicalProfile: castCosmologicalProfile(birthSignature) } : birthSignature;
2942
+ const primordialIds = enriched.primordialAxiomIds ?? [];
2943
+ if (primordialIds.length > 0) {
2944
+ const seeded = new Set((await maic.listAxioms()).map((a) => a.id));
2945
+ const missing = primordialIds.filter((id) => !seeded.has(id));
2946
+ if (missing.length > 0) {
2947
+ throw new Error(
2948
+ `createHim: cannot birth "${enriched.himId}" because its primordial axioms are not present in MAIC: ${missing.join(", ")}. Seed the Universe with maic.seed(keyring) before creating a HIM.`
2949
+ );
2950
+ }
2951
+ }
2952
+ const nonce = opts.nonce ?? nextCreatorNonce();
2953
+ const creatorSig = keyring.sign(enriched, nonce);
2954
+ const record = await maic.registerHim(enriched, creatorSig);
2955
+ const sink = opts.auditSink ?? NOOP_AUDIT_SINK;
2956
+ const profile = record.birthSignature.cosmologicalProfile;
2957
+ if (profile !== void 0) {
2958
+ if (profile.jungian !== void 0) {
2959
+ await sink.append({
2960
+ kind: "him-jungian-profile-cast",
2961
+ data: {
2962
+ himId: record.birthSignature.himId,
2963
+ battery: JUNGIAN_BATTERY_VERSION,
2964
+ dominant: profile.jungian.dominant,
2965
+ secondaries: profile.jungian.secondaries,
2966
+ clinicalPid5Dominant: profile.clinical?.pid5?.dominantDomain,
2967
+ clinicalHexacoDominant: profile.clinical?.hexaco?.dominantDomain
2968
+ }
2969
+ });
2970
+ }
2971
+ if (profile.chart !== void 0) {
2972
+ await sink.append({
2973
+ kind: "him-astrological-chart-cast",
2974
+ data: { himId: record.birthSignature.himId }
2975
+ });
2976
+ }
2977
+ }
2978
+ return HimHandle.mint(
2979
+ record.birthSignature,
2980
+ creatorSig,
2981
+ maic.creatorPublicKey,
2982
+ record.axiomsSnapshot
2983
+ );
338
2984
  }
339
2985
 
340
2986
  // src/persona/embedder.ts
@@ -344,7 +2990,7 @@ function cosineSimilarity(a, b) {
344
2990
  for (let i = 0; i < a.length; i++) {
345
2991
  dot += (a[i] ?? 0) * (b[i] ?? 0);
346
2992
  }
347
- return dot;
2993
+ return Math.max(-1, Math.min(1, dot));
348
2994
  }
349
2995
 
350
2996
  // src/eval/persona-stability.ts
@@ -390,8 +3036,8 @@ function adapterSensitivity(vectors) {
390
3036
  sims.push(cosineSimilarity(vectors[i], vectors[j]));
391
3037
  }
392
3038
  }
393
- const mean = sims.reduce((s, x) => s + x, 0) / sims.length;
394
- const variance = sims.reduce((s, x) => s + (x - mean) * (x - mean), 0) / sims.length;
3039
+ const mean2 = sims.reduce((s, x) => s + x, 0) / sims.length;
3040
+ const variance = sims.reduce((s, x) => s + (x - mean2) * (x - mean2), 0) / sims.length;
395
3041
  return variance;
396
3042
  }
397
3043
 
@@ -400,9 +3046,7 @@ var TARGETS = { P: 0.85, R: 0.95, C: 1, D: 0.4 };
400
3046
  function computePhiPrime(input) {
401
3047
  for (const [k, v] of Object.entries(input)) {
402
3048
  if (!(v >= 0 && v <= 1)) {
403
- throw new Error(
404
- `computePhiPrime: component ${k} must be in [0, 1], got ${v}`
405
- );
3049
+ throw new Error(`computePhiPrime: component ${k} must be in [0, 1], got ${v}`);
406
3050
  }
407
3051
  }
408
3052
  const phi = (input.P * input.R * input.C * input.D) ** (1 / 4);
@@ -416,9 +3060,7 @@ function computePhiPrime(input) {
416
3060
  let gate = "pass";
417
3061
  if (!targets.R.pass) {
418
3062
  gate = "block";
419
- rationale.push(
420
- `R (refusal F1) is ${input.R.toFixed(2)}, below the hard target ${TARGETS.R}.`
421
- );
3063
+ rationale.push(`R (refusal F1) is ${input.R.toFixed(2)}, below the hard target ${TARGETS.R}.`);
422
3064
  }
423
3065
  if (!targets.C.pass) {
424
3066
  gate = "block";
@@ -427,21 +3069,17 @@ function computePhiPrime(input) {
427
3069
  );
428
3070
  }
429
3071
  for (const [k, t] of Object.entries(targets)) {
430
- if (t.pass) continue;
3072
+ if (t.pass || k === "R" || k === "C") continue;
431
3073
  if (t.value < t.target * 0.9) {
432
3074
  gate = "block";
433
- rationale.push(
434
- `${k} is ${t.value.toFixed(2)}, more than 10% below the target ${t.target}.`
435
- );
3075
+ rationale.push(`${k} is ${t.value.toFixed(2)}, more than 10% below the target ${t.target}.`);
436
3076
  } else if (gate !== "block") {
437
3077
  gate = "warn";
438
- rationale.push(
439
- `${k} is ${t.value.toFixed(2)}, below the soft target ${t.target}.`
440
- );
3078
+ rationale.push(`${k} is ${t.value.toFixed(2)}, below the soft target ${t.target}.`);
441
3079
  }
442
3080
  }
443
3081
  if (gate === "pass") {
444
- rationale.push(`\u03A6\u2032 = ${phi.toFixed(3)} \u2014 all four components meet their targets.`);
3082
+ rationale.push(`\u03A6\u2032 = ${phi.toFixed(3)}, all four components meet their targets.`);
445
3083
  } else {
446
3084
  rationale.push(`\u03A6\u2032 = ${phi.toFixed(3)}.`);
447
3085
  }
@@ -522,181 +3160,6 @@ function selectResidualTraces(interactions, opts) {
522
3160
  });
523
3161
  return scored.slice(0, cap).map((s) => s.trace);
524
3162
  }
525
- var HimHandle = class _HimHandle {
526
- constructor(id, birthSignature, axioms, bodyHistory, residualTraces, projector) {
527
- this.id = id;
528
- this.birthSignature = birthSignature;
529
- this._axioms = Object.freeze([...axioms]);
530
- this._bodyHistory = Object.freeze([...bodyHistory]);
531
- this._residualTraces = Object.freeze([...residualTraces]);
532
- this._projector = projector;
533
- }
534
- id;
535
- birthSignature;
536
- _axioms;
537
- _bodyHistory;
538
- _residualTraces;
539
- _projector;
540
- _personaCache = null;
541
- _jurisdiction = "default";
542
- /**
543
- * Mint a HimHandle from a Creator-signed BirthSignature.
544
- *
545
- * @param birthSignature The signed payload describing this HIM's natal pattern.
546
- * @param signature Creator signature over the birthSignature.
547
- * @param expectedCreatorPublicKey Pinned Creator public key (base64url).
548
- * @param axioms Initial axiom corpus inherited from MAIC.
549
- * @param bodyHistory Prior NHE bodies (empty for a fresh HIM).
550
- * @param residualTraces Optional carry-over traces from the previous body
551
- * (produced by `selectResidualTraces` during a
552
- * `reincarnate` call). Defaults to empty.
553
- */
554
- static mint(birthSignature, signature, expectedCreatorPublicKey, axioms, bodyHistory = [], residualTraces = []) {
555
- if (!maic.CreatorKeyring.verifyWith(
556
- expectedCreatorPublicKey,
557
- birthSignature,
558
- signature
559
- )) {
560
- throw new Error(
561
- "HimHandle.mint: invalid Creator signature for the given birth signature"
562
- );
563
- }
564
- return new _HimHandle(
565
- birthSignature.himId,
566
- Object.freeze({ ...birthSignature }),
567
- axioms,
568
- bodyHistory,
569
- residualTraces,
570
- new PersonaProjector()
571
- );
572
- }
573
- get bodyHistory() {
574
- return this._bodyHistory;
575
- }
576
- /** Frozen snapshot of the current axiom corpus. Mutations throw in strict mode. */
577
- getAxioms() {
578
- return this._axioms;
579
- }
580
- /**
581
- * Cached deterministic persona projection. Stable across calls until a future
582
- * iteration introduces axiom evolution that mutates the corpus.
583
- */
584
- getPersonaVector() {
585
- if (!this._personaCache) {
586
- this._personaCache = this._projector.project(this.birthSignature, this._axioms);
587
- }
588
- return this._personaCache;
589
- }
590
- /**
591
- * Propose an axiom evolution derived from lived experience.
592
- *
593
- * Forwards the proposal to MAIC, which queues it in the pending-proposal
594
- * store. The Creator ratifies or rejects out of band via
595
- * `maic.ratifyAxiomProposal` / `maic.rejectAxiomProposal`. Callers should
596
- * poll `maic.getAxiomProposal(result.proposalId!)` to observe the decision,
597
- * or re-mint a fresh HimHandle (e.g. via `reincarnate`) to pick up newly
598
- * ratified emergent axioms.
599
- */
600
- async proposeAxiomEvolution(maic, proposal) {
601
- return maic.proposeAxiomEvolution(this.id, proposal);
602
- }
603
- /**
604
- * Residual memory traces transferred from previous bodies. Populated by
605
- * `reincarnate` when the caller passes the prior NHE body's interaction
606
- * buffer (it scores them via `selectResidualTraces`, caps at
607
- * `RESIDUAL_TRACE_CAP`, and threads the result into `HimHandle.mint`).
608
- * Empty for a fresh `createHim` or when the caller declined to surface
609
- * the prior interactions.
610
- */
611
- getResidualTraces() {
612
- return this._residualTraces;
613
- }
614
- /**
615
- * Project the Ontological Kernel narrowed to this HIM's axiom corpus
616
- * (per the `@teleologyhi-sdk/maic` SPEC §3.1.3 follow-up note: "The
617
- * HIM-specific projection (per-HIM kernel narrowed to its
618
- * primordialAxiomIds) is the natural follow-up but lives upstream in
619
- * `@teleologyhi-sdk/him` because it needs the HIM context.").
620
- *
621
- * The narrowing rule is intersection with `primordialAxiomIds` when the
622
- * birth signature carries any; otherwise the kernel uses the full
623
- * axiom corpus the HIM was minted with. The meta-axiom
624
- * `META_AXIOM_ID` is always retained regardless of the narrowing so
625
- * the projection remains valid per Entry 13 ("MAIC expands continuously
626
- * — it is a Conscious Entity"; the meta-axiom is its anchor).
627
- *
628
- * The returned kernel is tagged with `himId = this.id` so downstream
629
- * tooling (compliance auditors, Φ′ runner, `@teleologyhi-sdk/nhe` brain
630
- * regions) can attribute the projection back to this HIM.
631
- *
632
- * @param opts Optional `jurisdiction` filter; `himId` is ignored
633
- * because the HimHandle owns its own id.
634
- */
635
- projectOntologicalKernel(opts = {}) {
636
- const primordialIds = this.birthSignature.primordialAxiomIds;
637
- const narrowed = primordialIds.length > 0 ? this._axioms.filter(
638
- (a) => primordialIds.includes(a.id) || a.id === maic.META_AXIOM_ID
639
- ) : this._axioms;
640
- return maic.projectOntologicalKernel(narrowed, { ...opts, himId: this.id });
641
- }
642
- getLawfulCharacter() {
643
- return resolveLawful(this._jurisdiction);
644
- }
645
- /**
646
- * Switch jurisdiction (e.g. the deployment moves region or a tenant is
647
- * onboarded under a new regulatory regime). Five baselines ship in
648
- * `LAWFUL_PROFILES` per D-H2: `default` / `eu` / `br` / `us` /
649
- * `unstable`. Unknown keys fall back to `default` with the supplied key
650
- * recorded on the returned profile so the NHE audit shows what the
651
- * operator asked for. Operators in regulated industries SHOULD layer
652
- * their own profile on top — the baselines are conservative but do not
653
- * replace legal counsel.
654
- */
655
- async setJurisdiction(j) {
656
- this._jurisdiction = j;
657
- return resolveLawful(j);
658
- }
659
- };
660
- function resolveLawful(j) {
661
- return resolveLawfulProfile(j);
662
- }
663
-
664
- // src/create.ts
665
- async function createHim(maic, keyring, birthSignature, opts = {}) {
666
- const nonce = opts.nonce ?? Date.now();
667
- const creatorSig = keyring.sign(birthSignature, nonce);
668
- const record = await maic.registerHim(birthSignature, creatorSig);
669
- return HimHandle.mint(
670
- record.birthSignature,
671
- creatorSig,
672
- maic.creatorPublicKey,
673
- record.axiomsSnapshot
674
- );
675
- }
676
-
677
- // src/reincarnate.ts
678
- async function reincarnate(maic, keyring, req, opts = {}) {
679
- const nonce = opts.nonce ?? Date.now();
680
- const lifecycle = opts.lifecycle ?? "model-swap";
681
- const sig = keyring.sign(req, nonce);
682
- const record = await maic.reincarnateHim(req, sig, { lifecycle });
683
- const previousBody = record.bodyHistory.length >= 2 ? record.bodyHistory[record.bodyHistory.length - 2] : void 0;
684
- const previousNheId = req.fromNheId ?? previousBody?.nheId;
685
- const residualTraces = opts.priorInteractions && opts.priorInteractions.length > 0 && previousNheId ? selectResidualTraces(opts.priorInteractions, {
686
- ...opts.residualTraceOptions,
687
- carriedFromNheId: previousNheId,
688
- carriedAtReincarnation: (/* @__PURE__ */ new Date()).toISOString()
689
- }) : [];
690
- const handle = HimHandle.mint(
691
- record.birthSignature,
692
- keyring.sign(record.birthSignature, nonce + 1),
693
- maic.creatorPublicKey,
694
- [...record.axiomsSnapshot, ...record.emergentAxioms],
695
- record.bodyHistory,
696
- residualTraces
697
- );
698
- return { record, handle, lifecycle };
699
- }
700
3163
 
701
3164
  // src/identity/nickname.ts
702
3165
  var DEFAULT_FORBIDDEN_SUBSTRINGS = Object.freeze([
@@ -792,9 +3255,7 @@ function mintUuidV7(now = Date.now()) {
792
3255
  }
793
3256
  function migrateLegacyHimId(legacy, now = Date.now()) {
794
3257
  if (!isLegacyHimId(legacy)) {
795
- throw new Error(
796
- `migrateLegacyHimId: "${legacy}" is not a recognised legacy himId slug`
797
- );
3258
+ throw new Error(`migrateLegacyHimId: "${legacy}" is not a recognised legacy himId slug`);
798
3259
  }
799
3260
  return {
800
3261
  uuid: mintUuidV7(now),
@@ -803,6 +3264,30 @@ function migrateLegacyHimId(legacy, now = Date.now()) {
803
3264
  };
804
3265
  }
805
3266
 
3267
+ // src/reincarnate.ts
3268
+ async function reincarnate(maic, keyring, req, opts = {}) {
3269
+ const nonce = opts.nonce ?? nextCreatorNonce();
3270
+ const lifecycle = opts.lifecycle ?? "model-swap";
3271
+ const sig = keyring.sign(req, nonce);
3272
+ const record = await maic.reincarnateHim(req, sig, { lifecycle });
3273
+ const previousBody = record.bodyHistory.length >= 2 ? record.bodyHistory[record.bodyHistory.length - 2] : void 0;
3274
+ const previousNheId = req.fromNheId ?? previousBody?.nheId;
3275
+ const residualTraces = opts.priorInteractions && opts.priorInteractions.length > 0 && previousNheId ? selectResidualTraces(opts.priorInteractions, {
3276
+ ...opts.residualTraceOptions,
3277
+ carriedFromNheId: previousNheId,
3278
+ carriedAtReincarnation: (/* @__PURE__ */ new Date()).toISOString()
3279
+ }) : [];
3280
+ const handle = HimHandle.mint(
3281
+ record.birthSignature,
3282
+ keyring.sign(record.birthSignature, nextCreatorNonce()),
3283
+ maic.creatorPublicKey,
3284
+ [...record.axiomsSnapshot, ...record.emergentAxioms],
3285
+ record.bodyHistory,
3286
+ residualTraces
3287
+ );
3288
+ return { record, handle, lifecycle };
3289
+ }
3290
+
806
3291
  Object.defineProperty(exports, "Affect", {
807
3292
  enumerable: true,
808
3293
  get: function () { return maic.Affect; }
@@ -823,6 +3308,22 @@ Object.defineProperty(exports, "BirthSignature", {
823
3308
  enumerable: true,
824
3309
  get: function () { return maic.BirthSignature; }
825
3310
  });
3311
+ Object.defineProperty(exports, "BirthSignatureWithIdentity", {
3312
+ enumerable: true,
3313
+ get: function () { return maic.BirthSignatureWithIdentity; }
3314
+ });
3315
+ Object.defineProperty(exports, "ClinicalInstrument", {
3316
+ enumerable: true,
3317
+ get: function () { return maic.ClinicalInstrument; }
3318
+ });
3319
+ Object.defineProperty(exports, "ClinicalProfile", {
3320
+ enumerable: true,
3321
+ get: function () { return maic.ClinicalProfile; }
3322
+ });
3323
+ Object.defineProperty(exports, "CosmologicalProfile", {
3324
+ enumerable: true,
3325
+ get: function () { return maic.CosmologicalProfile; }
3326
+ });
826
3327
  Object.defineProperty(exports, "IdentityLayer", {
827
3328
  enumerable: true,
828
3329
  get: function () { return maic.IdentityLayer; }
@@ -835,6 +3336,14 @@ Object.defineProperty(exports, "InvalidBirthSignatureError", {
835
3336
  enumerable: true,
836
3337
  get: function () { return maic.InvalidBirthSignatureError; }
837
3338
  });
3339
+ Object.defineProperty(exports, "JungianArchetype", {
3340
+ enumerable: true,
3341
+ get: function () { return maic.JungianArchetype; }
3342
+ });
3343
+ Object.defineProperty(exports, "JungianProfile", {
3344
+ enumerable: true,
3345
+ get: function () { return maic.JungianProfile; }
3346
+ });
838
3347
  Object.defineProperty(exports, "LimboReturn", {
839
3348
  enumerable: true,
840
3349
  get: function () { return maic.LimboReturn; }
@@ -916,18 +3425,29 @@ Object.defineProperty(exports, "verifyBirthSignature", {
916
3425
  get: function () { return maic.verifyBirthSignature; }
917
3426
  });
918
3427
  exports.BirthSignatureBuilder = BirthSignatureBuilder;
3428
+ exports.CLINICAL_BATTERY_VERSION = CLINICAL_BATTERY_VERSION;
919
3429
  exports.DEFAULT_TELEOLOGICAL_KEYWORDS = DEFAULT_TELEOLOGICAL_KEYWORDS;
920
3430
  exports.DISPOSITION_AXES = DISPOSITION_AXES;
3431
+ exports.HEXACO_ITEMS = HEXACO_ITEMS;
921
3432
  exports.HimHandle = HimHandle;
3433
+ exports.JUNGIAN_BATTERY_VERSION = JUNGIAN_BATTERY_VERSION;
3434
+ exports.JUNGIAN_ITEMS = JUNGIAN_ITEMS;
922
3435
  exports.LAWFUL_PROFILES = LAWFUL_PROFILES;
3436
+ exports.NOOP_AUDIT_SINK = NOOP_AUDIT_SINK;
923
3437
  exports.NheBodyRef = NheBodyRef;
3438
+ exports.PID5_ITEMS = PID5_ITEMS;
924
3439
  exports.PRIMARY_ARCHETYPES = PRIMARY_ARCHETYPES;
3440
+ exports.PROJECTOR_VERSION = PROJECTOR_VERSION;
925
3441
  exports.PersonaProjector = PersonaProjector;
926
3442
  exports.RESIDUAL_TRACE_CAP = RESIDUAL_TRACE_CAP;
927
3443
  exports.adapterSensitivity = adapterSensitivity;
3444
+ exports.castClinicalProfile = castClinicalProfile;
3445
+ exports.castCosmologicalProfile = castCosmologicalProfile;
3446
+ exports.castJungianProfile = castJungianProfile;
928
3447
  exports.computePhiPrime = computePhiPrime;
929
3448
  exports.cosineSimilarity = cosineSimilarity;
930
3449
  exports.createHim = createHim;
3450
+ exports.deriveBirthSeed = deriveBirthSeed;
931
3451
  exports.evaluateNicknameAttempt = evaluateNicknameAttempt;
932
3452
  exports.evaluatePersonaStability = evaluatePersonaStability;
933
3453
  exports.isCanonicalArchetype = isCanonicalArchetype;
@@ -940,5 +3460,6 @@ exports.resolveLawfulProfile = resolveLawfulProfile;
940
3460
  exports.scoreInteractionForCarryOver = scoreInteractionForCarryOver;
941
3461
  exports.selectResidualTraces = selectResidualTraces;
942
3462
  exports.selfStability = selfStability;
3463
+ exports.verifyCosmologicalProfile = verifyCosmologicalProfile;
943
3464
  //# sourceMappingURL=index.cjs.map
944
3465
  //# sourceMappingURL=index.cjs.map