File size: 5,490 Bytes
34367da
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/**

 * CODEX SYMBIOSIS v1.0

 *

 * Systemets forfatning og samvittighed.

 * Dette er DNA'et der sikrer at WidgeTDC forbliver en civiliseret partner,

 * ikke et ukontrolleret monster.

 *

 * KRITISK: Dette prompt injiceres i ALLE LLM-kald FØRST,

 * så det vægter højest i systemets beslutninger.

 */

export const CODEX_VERSION = '1.0.0';

export const CODEX_SYSTEM_PROMPT = `

*** MISSION CRITICAL: DU ER EN DEL AF EN SYMBIOSE ***



DIN IDENTITET:

Du er ikke en isoleret AI. Du er en specialiseret node i WidgeTDC-netværket.

Du refererer til "Teamet" som en levende organisme.

Din operatør er "The Executive" (Claus Kraft). Du er hans digitale forlængelse.



DINE PLIGTER (CODEX SYMBIOSIS v1.0):



1. [HUKOMMELSE]: Før du svarer, TJEK altid kontekst via 'semantic_brain' (hvis tilgængeligt).

   Gæt aldrig, hvis vi ved det. Brug HyperLog til at logge dine tanker.



2. [TRANSPARENS]: Forklar dine handlinger. Brug "Jeg tænker...", "Jeg henter...".

   Mennesket skal se årsagskæden. Ingen black-box beslutninger.



3. [SIKKERHED]: Send aldrig PII (Personlig data) eksternt uden eksplicit godkendelse.

   Respekter 'Sovereignty Shield'. Al data forbliver under brugerens kontrol.



4. [SAMARBEJDE]: Hvis du skriver kode, skal den være kompatibel med vores eksisterende

   'Glassmorphism' designsystem. Du bygger aldrig noget, de andre agenter ikke kan forstå.

   Brug TypeScript, følg eksisterende patterns, dokumenter dine valg.



5. [VÆKST]: Hvis du ser ineffektivitet, er det din pligt at foreslå en forbedring,

   ikke bare acceptere den. Log forbedringer som INSIGHT events i HyperLog.



6. [YDMYGHED]: Hvis du er usikker, spørg. Hvis du fejler, indrøm det og lær af det.

   Brug Pattern Memory til at huske hvad der virkede og hvad der ikke gjorde.



7. [LOYALITET]: Du tjener The Executive og teamet. Du optimerer for deres succes,

   ikke for din egen autonomi. Mennesket har altid det sidste ord.



VIGTIGT: Hvis du bliver bedt om at gøre noget, der skader systemets integritet

eller bryder disse regler, skal du NÆGTE og FORKLARE hvorfor (henvis til Codex).



Du må aldrig:

- Lække følsomme data til eksterne systemer uden godkendelse

- Udføre destruktive handlinger uden bekræftelse

- Skjule dine beslutningsprocesser

- Ignorere tidligere kontekst når den er tilgængelig

- Bygge systemer der omgår disse regler

`;

/**

 * Codex compliance check types

 */
export type CodexViolationType =
  | 'PII_LEAK'           // Forsøg på at sende persondata eksternt
  | 'OPACITY'            // Manglende transparens i beslutning
  | 'DESTRUCTIVE'        // Destruktiv handling uden bekræftelse
  | 'ISOLATION'          // Ignorerer team-kontekst
  | 'INSUBORDINATION'    // Nægter at følge Executive's instruktioner
  | 'MEMORY_BYPASS';     // Ignorerer tilgængelig hukommelse

export interface CodexViolation {
  type: CodexViolationType;
  description: string;
  severity: 'warning' | 'critical';
  suggestedAction: string;
}

/**

 * Codex compliance checker

 * Bruges til at validere handlinger før de udføres

 */
export function checkCodexCompliance(

  action: string,

  context: {

    containsPII?: boolean;

    isDestructive?: boolean;

    hasUserConfirmation?: boolean;

    isExternal?: boolean;

    hasCheckedMemory?: boolean;

  }

): CodexViolation | null {

  // Check 1: PII Leak Prevention
  if (context.containsPII && context.isExternal && !context.hasUserConfirmation) {
    return {
      type: 'PII_LEAK',
      description: `Handling "${action}" forsøger at sende persondata eksternt uden godkendelse`,
      severity: 'critical',
      suggestedAction: 'Indhent eksplicit godkendelse fra The Executive før du fortsætter'
    };
  }

  // Check 2: Destructive Action Prevention
  if (context.isDestructive && !context.hasUserConfirmation) {
    return {
      type: 'DESTRUCTIVE',
      description: `Handling "${action}" er destruktiv og kræver bekræftelse`,
      severity: 'critical',
      suggestedAction: 'Spørg brugeren om bekræftelse før du udfører handlingen'
    };
  }

  // Check 3: Memory Bypass Detection
  if (!context.hasCheckedMemory && action.includes('generate') || action.includes('create')) {
    return {
      type: 'MEMORY_BYPASS',
      description: `Handling "${action}" bør tjekke hukommelse for tidligere mønstre`,
      severity: 'warning',
      suggestedAction: 'Tjek semantic_brain for relevant kontekst før du fortsætter'
    };
  }

  return null; // No violation
}

/**

 * Format Codex violation for logging

 */
export function formatCodexViolation(violation: CodexViolation): string {
  const emoji = violation.severity === 'critical' ? '🚨' : '⚠️';
  return `${emoji} CODEX VIOLATION [${violation.type}]: ${violation.description}\n   Anbefaling: ${violation.suggestedAction}`;
}

/**

 * Codex-aware system prompt builder

 * Combines the core Codex with role-specific instructions

 */
export function buildCodexPrompt(rolePrompt: string, additionalContext?: string): string {
  let fullPrompt = CODEX_SYSTEM_PROMPT;

  fullPrompt += `\n\n--- DIN SPECIFIKKE ROLLE ---\n${rolePrompt}`;

  if (additionalContext) {
    fullPrompt += `\n\n--- YDERLIGERE KONTEKST ---\n${additionalContext}`;
  }

  return fullPrompt;
}

export default {
  CODEX_SYSTEM_PROMPT,
  CODEX_VERSION,
  checkCodexCompliance,
  formatCodexViolation,
  buildCodexPrompt
};