Claude 24f816b6a3
Consolidate 22 sibling repos into layered organism structure
Place useful parts of the surrounding repos into sica-fondt by layer, per the
body model (Ada = membrane; brain/endocrine/capabilities/knowledge non-Ada):

- brain/        LLM reasoning + providers (dapr, hermes, MoMoA)
- capabilities/ REPRAG sidecars: hermes tools/skills, dapr tools, parallel
                dispatch, A51 channels, and the OSINT cluster
- knowledge/    LORAG corpus: 754 cyber-skills, agency personas, secure-coding,
                MITRE ATT&CK data
- reference/    defensive threat-reference (C3, shhbruh doc) + AdaYaml parser

License handling: AGPL sources (worldosint, advanced_evolution, mercury,
Reticulum) and GPL DeTTECT are SPEC-only clean-room/port descriptions — no
copyleft code copied. MIT/Apache/data parts copied as working trees.

Safety: shhbruh escape/persistence material and C3 covert-C2 kept as reference
only, not wired into the running organism. See CONSOLIDATION.md.

https://claude.ai/code/session_01UehUqEXXJJCsHoA4voCU5c
2026-06-10 06:53:01 +00:00

110 lines
2.7 KiB
TypeScript

/**
* Copyright 2026 Reto Meier
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Defines the structure for incoming messages.
*/
export type IncomingAction = {
status:
| "INITIAL_REQUEST_PARAMS"
| "FILE_CHUNK"
| "START_TASK"
| "HITL_RESPONSE"
| "ABORT"
| (string & {});
data?: any; // Use 'any' for data to accommodate different payload structures
messageId?: string;
answer?: any;
};
export enum ServerMode {
ORCHESTRATOR = 'orchestrator',
};
/**
* Defines the structure for the data in an 'INITIAL_REQUEST_PARAMS' message,
* matching the Python client's payload but without files.
*/
export interface InitialRequestData {
prompt: string;
image?: string; // Optional Base64 encoded image data
imageMimeType?: string; // Optional MIME type of the attached image
llmName: string;
githubUrl?: string;
maxTurns?: number;
assumptions?: string;
files?: { name: string; content: string }[]; // This will be populated by chunks
saveFiles?: boolean;
secrets: UserSecrets;
mode?: ServerMode;
projectId?: string;
projectSpecification?: string;
environmentInstructions?: string;
notWorkingBuild?: boolean;
weaveId?: string;
maxDurationMs?: number;
gracePeriodMs?: number;
}
export interface UserSecrets {
geminiApiKey: string;
julesApiKey: string;
githubToken: string;
stitchApiKey: string;
e2BApiKey: string;
githubScratchPadRepo: string;
}
/**
* Defines the structure for the data in a 'FILE_CHUNK' message.
*/
export interface FileChunkData {
files: { name: string; content: string }[];
}
export interface ProjectMetadata {
title: string;
description: string;
ownerId: string;
repoPath?: string;
githubUrl?: string;
}
export interface OutgoingMessage {
status:
| "USER_MESSAGE"
| "WORK_LOG"
| "ERROR"
| "PROGRESS_UPDATES"
| 'HITL_QUESTION'
| "COMPLETE_RESULT"
| (string & {});
message?: string;
completed_status_message?: string;
current_status_message?: string;
data?: {
feedback?: string;
files?: string;
result?: string;
retrospective?: string;
};
}
export interface HistoryItem extends OutgoingMessage {
timestamp: number;
runnerInstanceId: string;
}