@provos/ironcurtain 0.7.0 → 0.7.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/README.md +24 -100
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/config/constitution-readonly.md +21 -0
- package/dist/config/generated-readonly/compiled-policy.json +468 -0
- package/dist/config/paths.d.ts +17 -0
- package/dist/config/paths.js +23 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/cron/constitution-generator.d.ts +60 -0
- package/dist/cron/constitution-generator.js +217 -0
- package/dist/cron/constitution-generator.js.map +1 -0
- package/dist/cron/job-commands.js +104 -41
- package/dist/cron/job-commands.js.map +1 -1
- package/dist/cron/job-customizer.d.ts +22 -0
- package/dist/cron/job-customizer.js +47 -0
- package/dist/cron/job-customizer.js.map +1 -0
- package/dist/cron/types.d.ts +8 -0
- package/dist/cron/types.js +3 -6
- package/dist/cron/types.js.map +1 -1
- package/dist/daemon/ironcurtain-daemon.js +3 -1
- package/dist/daemon/ironcurtain-daemon.js.map +1 -1
- package/dist/docker/mitm-proxy.js +10 -5
- package/dist/docker/mitm-proxy.js.map +1 -1
- package/dist/docker/oauth-credentials.js +2 -2
- package/dist/docker/oauth-credentials.js.map +1 -1
- package/dist/docker/pty-session.js +139 -35
- package/dist/docker/pty-session.js.map +1 -1
- package/dist/index.js +13 -4
- package/dist/index.js.map +1 -1
- package/dist/mux/mux-command.js +29 -1
- package/dist/mux/mux-command.js.map +1 -1
- package/dist/persona/compile-persona-policy.d.ts +21 -0
- package/dist/persona/compile-persona-policy.js +50 -0
- package/dist/persona/compile-persona-policy.js.map +1 -0
- package/dist/persona/persona-command.d.ts +9 -0
- package/dist/persona/persona-command.js +479 -0
- package/dist/persona/persona-command.js.map +1 -0
- package/dist/persona/persona-customizer.d.ts +23 -0
- package/dist/persona/persona-customizer.js +52 -0
- package/dist/persona/persona-customizer.js.map +1 -0
- package/dist/persona/persona-prompt.d.ts +19 -0
- package/dist/persona/persona-prompt.js +42 -0
- package/dist/persona/persona-prompt.js.map +1 -0
- package/dist/persona/resolve.d.ts +46 -0
- package/dist/persona/resolve.js +108 -0
- package/dist/persona/resolve.js.map +1 -0
- package/dist/persona/types.d.ts +40 -0
- package/dist/persona/types.js +20 -0
- package/dist/persona/types.js.map +1 -0
- package/dist/pipeline/annotate.js +8 -3
- package/dist/pipeline/annotate.js.map +1 -1
- package/dist/pipeline/compile.d.ts +13 -0
- package/dist/pipeline/compile.js +27 -1
- package/dist/pipeline/compile.js.map +1 -1
- package/dist/pipeline/constitution-compiler.d.ts +6 -0
- package/dist/pipeline/constitution-compiler.js +41 -5
- package/dist/pipeline/constitution-compiler.js.map +1 -1
- package/dist/pipeline/constitution-customizer.d.ts +3 -0
- package/dist/pipeline/constitution-customizer.js +19 -5
- package/dist/pipeline/constitution-customizer.js.map +1 -1
- package/dist/pipeline/customizer-loop.d.ts +34 -0
- package/dist/pipeline/customizer-loop.js +167 -0
- package/dist/pipeline/customizer-loop.js.map +1 -0
- package/dist/pipeline/pipeline-runner.js +2 -9
- package/dist/pipeline/pipeline-runner.js.map +1 -1
- package/dist/pipeline/pipeline-shared.d.ts +8 -1
- package/dist/pipeline/pipeline-shared.js +9 -4
- package/dist/pipeline/pipeline-shared.js.map +1 -1
- package/dist/pipeline/tool-annotator.js +20 -2
- package/dist/pipeline/tool-annotator.js.map +1 -1
- package/dist/session/index.d.ts +10 -0
- package/dist/session/index.js +108 -35
- package/dist/session/index.js.map +1 -1
- package/dist/session/session-metadata.d.ts +18 -0
- package/dist/session/session-metadata.js +34 -0
- package/dist/session/session-metadata.js.map +1 -0
- package/dist/session/types.d.ts +20 -0
- package/dist/signal/signal-bot-daemon.js +8 -5
- package/dist/signal/signal-bot-daemon.js.map +1 -1
- package/dist/trusted-process/domain-utils.d.ts +2 -3
- package/dist/trusted-process/domain-utils.js +46 -34
- package/dist/trusted-process/domain-utils.js.map +1 -1
- package/dist/trusted-process/mcp-proxy-server.d.ts +19 -0
- package/dist/trusted-process/mcp-proxy-server.js +32 -12
- package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
- package/dist/trusted-process/policy-engine.d.ts +2 -3
- package/dist/trusted-process/policy-engine.js +4 -42
- package/dist/trusted-process/policy-engine.js.map +1 -1
- package/dist/types/slug.d.ts +7 -0
- package/dist/types/slug.js +14 -0
- package/dist/types/slug.js.map +1 -0
- package/dist/utils/editor.d.ts +24 -0
- package/dist/utils/editor.js +66 -0
- package/dist/utils/editor.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persona resolver -- locates persona directories, loads definitions,
|
|
3
|
+
* and validates compiled policy existence.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same directory-layout pattern as job paths in
|
|
6
|
+
* src/config/paths.ts (getJobDir, getJobGeneratedDir, etc.).
|
|
7
|
+
*/
|
|
8
|
+
import { type PersonaDefinition, type PersonaName } from './types.js';
|
|
9
|
+
import type { MCPServerConfig } from '../config/types.js';
|
|
10
|
+
/** Returns the base directory for all personas: {home}/personas/ */
|
|
11
|
+
export declare function getPersonasDir(): string;
|
|
12
|
+
/** Returns the directory for a specific persona: {home}/personas/{name}/ */
|
|
13
|
+
export declare function getPersonaDir(name: PersonaName): string;
|
|
14
|
+
/** Returns the generated artifacts directory for a persona: {home}/personas/{name}/generated/ */
|
|
15
|
+
export declare function getPersonaGeneratedDir(name: PersonaName): string;
|
|
16
|
+
/** Returns the constitution path for a persona: {home}/personas/{name}/constitution.md */
|
|
17
|
+
export declare function getPersonaConstitutionPath(name: PersonaName): string;
|
|
18
|
+
/** Returns the workspace directory for a persona: {home}/personas/{name}/workspace/ */
|
|
19
|
+
export declare function getPersonaWorkspaceDir(name: PersonaName): string;
|
|
20
|
+
/** Returns the persona definition file path: {home}/personas/{name}/persona.json */
|
|
21
|
+
export declare function getPersonaDefinitionPath(name: PersonaName): string;
|
|
22
|
+
/**
|
|
23
|
+
* Loads a persona definition from disk.
|
|
24
|
+
* @throws if the persona directory or persona.json does not exist.
|
|
25
|
+
*/
|
|
26
|
+
export declare function loadPersona(name: PersonaName): PersonaDefinition;
|
|
27
|
+
/** Result of resolving a persona name to runtime-usable paths. */
|
|
28
|
+
export interface ResolvedPersona {
|
|
29
|
+
readonly policyDir: string;
|
|
30
|
+
readonly persona: PersonaDefinition;
|
|
31
|
+
readonly workspacePath: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolves a persona name to a validated policyDir, workspace path,
|
|
35
|
+
* and persona definition.
|
|
36
|
+
*
|
|
37
|
+
* @throws if persona does not exist or has no compiled policy.
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolvePersona(nameRaw: string): ResolvedPersona;
|
|
40
|
+
/**
|
|
41
|
+
* Filters MCP servers to only those in the allowlist.
|
|
42
|
+
* The "filesystem" server is always included even if omitted from
|
|
43
|
+
* the allowlist -- this is a hardcoded safety invariant since the
|
|
44
|
+
* agent sandbox requires filesystem access to function.
|
|
45
|
+
*/
|
|
46
|
+
export declare function applyServerAllowlist(mcpServers: Record<string, MCPServerConfig>, allowlist: readonly string[]): Record<string, MCPServerConfig>;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persona resolver -- locates persona directories, loads definitions,
|
|
3
|
+
* and validates compiled policy existence.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same directory-layout pattern as job paths in
|
|
6
|
+
* src/config/paths.ts (getJobDir, getJobGeneratedDir, etc.).
|
|
7
|
+
*/
|
|
8
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
9
|
+
import { resolve } from 'node:path';
|
|
10
|
+
import { getIronCurtainHome } from '../config/paths.js';
|
|
11
|
+
import { createPersonaName } from './types.js';
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Path helpers
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/** Returns the base directory for all personas: {home}/personas/ */
|
|
16
|
+
export function getPersonasDir() {
|
|
17
|
+
return resolve(getIronCurtainHome(), 'personas');
|
|
18
|
+
}
|
|
19
|
+
/** Returns the directory for a specific persona: {home}/personas/{name}/ */
|
|
20
|
+
export function getPersonaDir(name) {
|
|
21
|
+
return resolve(getPersonasDir(), name);
|
|
22
|
+
}
|
|
23
|
+
/** Returns the generated artifacts directory for a persona: {home}/personas/{name}/generated/ */
|
|
24
|
+
export function getPersonaGeneratedDir(name) {
|
|
25
|
+
return resolve(getPersonaDir(name), 'generated');
|
|
26
|
+
}
|
|
27
|
+
/** Returns the constitution path for a persona: {home}/personas/{name}/constitution.md */
|
|
28
|
+
export function getPersonaConstitutionPath(name) {
|
|
29
|
+
return resolve(getPersonaDir(name), 'constitution.md');
|
|
30
|
+
}
|
|
31
|
+
/** Returns the workspace directory for a persona: {home}/personas/{name}/workspace/ */
|
|
32
|
+
export function getPersonaWorkspaceDir(name) {
|
|
33
|
+
return resolve(getPersonaDir(name), 'workspace');
|
|
34
|
+
}
|
|
35
|
+
/** Returns the persona definition file path: {home}/personas/{name}/persona.json */
|
|
36
|
+
export function getPersonaDefinitionPath(name) {
|
|
37
|
+
return resolve(getPersonaDir(name), 'persona.json');
|
|
38
|
+
}
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
// Loading
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
/**
|
|
43
|
+
* Loads a persona definition from disk.
|
|
44
|
+
* @throws if the persona directory or persona.json does not exist.
|
|
45
|
+
*/
|
|
46
|
+
export function loadPersona(name) {
|
|
47
|
+
const defPath = getPersonaDefinitionPath(name);
|
|
48
|
+
let raw;
|
|
49
|
+
try {
|
|
50
|
+
raw = readFileSync(defPath, 'utf-8');
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (err.code === 'ENOENT') {
|
|
54
|
+
throw new Error(`Persona "${name}" not found: ${defPath} does not exist.`, { cause: err });
|
|
55
|
+
}
|
|
56
|
+
throw err;
|
|
57
|
+
}
|
|
58
|
+
return JSON.parse(raw);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Resolves a persona name to a validated policyDir, workspace path,
|
|
62
|
+
* and persona definition.
|
|
63
|
+
*
|
|
64
|
+
* @throws if persona does not exist or has no compiled policy.
|
|
65
|
+
*/
|
|
66
|
+
export function resolvePersona(nameRaw) {
|
|
67
|
+
const name = createPersonaName(nameRaw);
|
|
68
|
+
// Load persona.json first — validates the persona directory exists and
|
|
69
|
+
// produces a clear error ("not found") before checking for compiled policy.
|
|
70
|
+
const persona = loadPersona(name);
|
|
71
|
+
const generatedDir = getPersonaGeneratedDir(name);
|
|
72
|
+
if (!existsSync(resolve(generatedDir, 'compiled-policy.json'))) {
|
|
73
|
+
throw new Error(`Persona "${name}" has no compiled policy. ` + `Run: ironcurtain persona compile ${name}`);
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
policyDir: generatedDir,
|
|
77
|
+
persona,
|
|
78
|
+
workspacePath: getPersonaWorkspaceDir(name),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Server allowlist filtering
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
/**
|
|
85
|
+
* Filters MCP servers to only those in the allowlist.
|
|
86
|
+
* The "filesystem" server is always included even if omitted from
|
|
87
|
+
* the allowlist -- this is a hardcoded safety invariant since the
|
|
88
|
+
* agent sandbox requires filesystem access to function.
|
|
89
|
+
*/
|
|
90
|
+
export function applyServerAllowlist(mcpServers, allowlist) {
|
|
91
|
+
// Warn about server names in the allowlist that don't exist in the
|
|
92
|
+
// global mcp-servers.json. This catches typos and stale references
|
|
93
|
+
// without breaking the persona (non-fatal warning).
|
|
94
|
+
const knownServers = new Set(Object.keys(mcpServers));
|
|
95
|
+
for (const name of allowlist) {
|
|
96
|
+
if (!knownServers.has(name) && name !== 'filesystem') {
|
|
97
|
+
process.stderr.write(`Warning: persona allowlist includes unknown server "${name}" (not in mcp-servers.json)\n`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const filtered = {};
|
|
101
|
+
for (const [name, config] of Object.entries(mcpServers)) {
|
|
102
|
+
if (allowlist.includes(name) || name === 'filesystem') {
|
|
103
|
+
filtered[name] = config;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return filtered;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/persona/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persona types -- named profiles bundling a constitution and compiled
|
|
3
|
+
* policy under ~/.ironcurtain/personas/<name>/.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same branded-type pattern as JobId in src/cron/types.ts.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Regex for valid persona names: 1-63 chars, lowercase alphanumeric,
|
|
9
|
+
* hyphens, or underscores. Same rules as JobId.
|
|
10
|
+
*/
|
|
11
|
+
export declare const PERSONA_NAME_PATTERN: RegExp;
|
|
12
|
+
/**
|
|
13
|
+
* Branded persona name to prevent mixing with other string identifiers.
|
|
14
|
+
*/
|
|
15
|
+
export type PersonaName = string & {
|
|
16
|
+
readonly __brand: 'PersonaName';
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Validates and creates a PersonaName from a user-provided string.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createPersonaName(raw: string): PersonaName;
|
|
22
|
+
/**
|
|
23
|
+
* Persisted persona definition. Stored as JSON at
|
|
24
|
+
* ~/.ironcurtain/personas/{name}/persona.json.
|
|
25
|
+
*/
|
|
26
|
+
export interface PersonaDefinition {
|
|
27
|
+
/** Persona name. Matches the directory name. */
|
|
28
|
+
readonly name: PersonaName;
|
|
29
|
+
/** Human-readable description of the persona's purpose. */
|
|
30
|
+
readonly description: string;
|
|
31
|
+
/** ISO 8601 timestamp of when the persona was created. */
|
|
32
|
+
readonly createdAt: string;
|
|
33
|
+
/**
|
|
34
|
+
* Optional allowlist of MCP server names from the global
|
|
35
|
+
* mcp-servers.json. When set, only these servers are available.
|
|
36
|
+
* When omitted, all global servers are enabled (default).
|
|
37
|
+
* The "filesystem" server is always included regardless.
|
|
38
|
+
*/
|
|
39
|
+
readonly servers?: readonly string[];
|
|
40
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persona types -- named profiles bundling a constitution and compiled
|
|
3
|
+
* policy under ~/.ironcurtain/personas/<name>/.
|
|
4
|
+
*
|
|
5
|
+
* Follows the same branded-type pattern as JobId in src/cron/types.ts.
|
|
6
|
+
*/
|
|
7
|
+
import { SLUG_PATTERN, validateSlug } from '../types/slug.js';
|
|
8
|
+
/**
|
|
9
|
+
* Regex for valid persona names: 1-63 chars, lowercase alphanumeric,
|
|
10
|
+
* hyphens, or underscores. Same rules as JobId.
|
|
11
|
+
*/
|
|
12
|
+
export const PERSONA_NAME_PATTERN = SLUG_PATTERN;
|
|
13
|
+
/**
|
|
14
|
+
* Validates and creates a PersonaName from a user-provided string.
|
|
15
|
+
*/
|
|
16
|
+
export function createPersonaName(raw) {
|
|
17
|
+
validateSlug(raw, 'persona name');
|
|
18
|
+
return raw;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/persona/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAW,YAAY,CAAC;AAOzD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAClC,OAAO,GAAkB,CAAC;AAC5B,CAAC"}
|
|
@@ -79,9 +79,9 @@ async function annotateServerTools(serverName, tools, existingAnnotations, llm)
|
|
|
79
79
|
});
|
|
80
80
|
const validation = validateAnnotationsHeuristic(tools, annotations);
|
|
81
81
|
if (!validation.valid) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
const summary = validation.warnings.join('\n - ');
|
|
83
|
+
throw new Error(`Path-gap validation failed for server "${serverName}":\n - ${summary}\n` +
|
|
84
|
+
'Annotations are part of the TCB — every path-bearing argument must have a path role.');
|
|
85
85
|
}
|
|
86
86
|
return annotations;
|
|
87
87
|
}, (annotations, elapsed) => `${stepText}: ${annotations.length} tools annotated (${elapsed.toFixed(1)}s)`);
|
|
@@ -125,6 +125,11 @@ export async function main() {
|
|
|
125
125
|
const config = loadPipelineConfig();
|
|
126
126
|
console.error(chalk.bold('Tool Annotation Pipeline'));
|
|
127
127
|
console.error(chalk.bold('========================'));
|
|
128
|
+
console.error('');
|
|
129
|
+
console.error(chalk.yellow.bold('⚠ WARNING: Tool annotations are part of the IronCurtain TCB (Trusted Computing Base).'));
|
|
130
|
+
console.error(chalk.yellow(' This is a developer tool and should not be run lightly. All annotation'));
|
|
131
|
+
console.error(chalk.yellow(' output must be manually reviewed for correctness before use in production.'));
|
|
132
|
+
console.error('');
|
|
128
133
|
console.error(`Output: ${chalk.dim(config.generatedDir + '/')}`);
|
|
129
134
|
console.error('');
|
|
130
135
|
const { model: llm, logContext, logPath } = await createPipelineLlm(config.generatedDir, 'annotate');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/pipeline/annotate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/pipeline/annotate.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,19 @@
|
|
|
5
5
|
* loading config, printing the progress banner, and exit codes.
|
|
6
6
|
*
|
|
7
7
|
* The core compile-verify-repair loop lives in PipelineRunner.
|
|
8
|
+
*
|
|
9
|
+
* CLI flags:
|
|
10
|
+
* --constitution <path> Use an alternative constitution file
|
|
11
|
+
* --output-dir <path> Write compiled artifacts to this directory
|
|
8
12
|
*/
|
|
9
13
|
export { resolveRulePaths, mergeReplacements } from './pipeline-shared.js';
|
|
14
|
+
export interface CompilePolicyCliArgs {
|
|
15
|
+
constitution?: string;
|
|
16
|
+
outputDir?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Parses --constitution and --output-dir from process.argv.
|
|
20
|
+
* Returns resolved absolute paths when provided.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseCompilePolicyArgs(argv?: string[]): CompilePolicyCliArgs;
|
|
10
23
|
export declare function main(): Promise<void>;
|
package/dist/pipeline/compile.js
CHANGED
|
@@ -5,19 +5,45 @@
|
|
|
5
5
|
* loading config, printing the progress banner, and exit codes.
|
|
6
6
|
*
|
|
7
7
|
* The core compile-verify-repair loop lives in PipelineRunner.
|
|
8
|
+
*
|
|
9
|
+
* CLI flags:
|
|
10
|
+
* --constitution <path> Use an alternative constitution file
|
|
11
|
+
* --output-dir <path> Write compiled artifacts to this directory
|
|
8
12
|
*/
|
|
9
13
|
import { resolve } from 'node:path';
|
|
10
14
|
import { fileURLToPath } from 'node:url';
|
|
15
|
+
import { parseArgs } from 'node:util';
|
|
11
16
|
import chalk from 'chalk';
|
|
12
17
|
import { loadPipelineConfig, loadToolAnnotationsFile } from './pipeline-shared.js';
|
|
13
18
|
import { PipelineRunner, createPipelineModels } from './pipeline-runner.js';
|
|
14
19
|
// Re-export utilities that test files import from this file.
|
|
15
20
|
export { resolveRulePaths, mergeReplacements } from './pipeline-shared.js';
|
|
21
|
+
/**
|
|
22
|
+
* Parses --constitution and --output-dir from process.argv.
|
|
23
|
+
* Returns resolved absolute paths when provided.
|
|
24
|
+
*/
|
|
25
|
+
export function parseCompilePolicyArgs(argv = process.argv.slice(2)) {
|
|
26
|
+
const { values } = parseArgs({
|
|
27
|
+
args: argv,
|
|
28
|
+
options: {
|
|
29
|
+
constitution: { type: 'string' },
|
|
30
|
+
'output-dir': { type: 'string' },
|
|
31
|
+
},
|
|
32
|
+
strict: false,
|
|
33
|
+
});
|
|
34
|
+
const constitution = typeof values.constitution === 'string' ? values.constitution : undefined;
|
|
35
|
+
const outputDir = typeof values['output-dir'] === 'string' ? values['output-dir'] : undefined;
|
|
36
|
+
return {
|
|
37
|
+
constitution: constitution ? resolve(constitution) : undefined,
|
|
38
|
+
outputDir: outputDir ? resolve(outputDir) : undefined,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
16
41
|
// ---------------------------------------------------------------------------
|
|
17
42
|
// Main Pipeline
|
|
18
43
|
// ---------------------------------------------------------------------------
|
|
19
44
|
export async function main() {
|
|
20
|
-
const
|
|
45
|
+
const cliArgs = parseCompilePolicyArgs();
|
|
46
|
+
const config = loadPipelineConfig(cliArgs);
|
|
21
47
|
// Load tool annotations early to validate they exist before printing the banner
|
|
22
48
|
const toolAnnotationsFile = loadToolAnnotationsFile(config.generatedDir, config.packageGeneratedDir);
|
|
23
49
|
if (!toolAnnotationsFile) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/pipeline/compile.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/pipeline/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,12 @@ export interface CompilationOutput {
|
|
|
15
15
|
rules: CompiledRule[];
|
|
16
16
|
listDefinitions: ListDefinition[];
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Formats tool annotations into a multi-line summary for LLM system prompts.
|
|
20
|
+
* Each entry shows server/tool name, comment, side-effects flag, and per-argument roles.
|
|
21
|
+
* Used by both the constitution compiler and task-policy compiler prompts.
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatAnnotationsSummary(annotations: ToolAnnotation[]): string;
|
|
18
24
|
/**
|
|
19
25
|
* Builds the stable system prompt portion for the compiler.
|
|
20
26
|
* Contains: role preamble, constitution, annotations, structural invariants, and instructions.
|
|
@@ -79,12 +79,12 @@ ${lines.join('\n\n')}
|
|
|
79
79
|
`;
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
82
|
+
* Formats tool annotations into a multi-line summary for LLM system prompts.
|
|
83
|
+
* Each entry shows server/tool name, comment, side-effects flag, and per-argument roles.
|
|
84
|
+
* Used by both the constitution compiler and task-policy compiler prompts.
|
|
85
85
|
*/
|
|
86
|
-
export function
|
|
87
|
-
|
|
86
|
+
export function formatAnnotationsSummary(annotations) {
|
|
87
|
+
return annotations
|
|
88
88
|
.map((a) => {
|
|
89
89
|
const argsDesc = Object.entries(a.args)
|
|
90
90
|
.map(([name, roles]) => ` ${name}: [${roles.join(', ')}]`)
|
|
@@ -92,6 +92,14 @@ export function buildCompilerSystemPrompt(constitutionText, annotations, config,
|
|
|
92
92
|
return ` ${a.serverName}/${a.toolName}: ${a.comment}, sideEffects=${a.sideEffects}\n args:\n${argsDesc || ' (none)'}`;
|
|
93
93
|
})
|
|
94
94
|
.join('\n');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Builds the stable system prompt portion for the compiler.
|
|
98
|
+
* Contains: role preamble, constitution, annotations, structural invariants, and instructions.
|
|
99
|
+
* This is the cacheable part — it stays the same across repair rounds.
|
|
100
|
+
*/
|
|
101
|
+
export function buildCompilerSystemPrompt(constitutionText, annotations, config, handwrittenScenarios) {
|
|
102
|
+
const annotationsSummary = formatAnnotationsSummary(annotations);
|
|
95
103
|
return `You are compiling a security policy from a constitution document into enforceable declarative rules.
|
|
96
104
|
|
|
97
105
|
## Constitution
|
|
@@ -150,6 +158,34 @@ CRITICAL RULES:
|
|
|
150
158
|
handles them. Only write rules for things the constitution explicitly allows or
|
|
151
159
|
requires human judgment on.
|
|
152
160
|
|
|
161
|
+
## Multi-Mode Tools and Role Scoping
|
|
162
|
+
|
|
163
|
+
IMPORTANT: The engine evaluates each argument role independently and takes the most
|
|
164
|
+
restrictive result (deny > escalate > allow). A rule WITHOUT a "roles" condition is
|
|
165
|
+
**role-agnostic** — it matches during evaluation of ANY role. This has critical
|
|
166
|
+
implications:
|
|
167
|
+
|
|
168
|
+
- A tool-only rule like {"tool": ["X"]} with "then": "allow" is a blanket allow
|
|
169
|
+
for ALL roles on that tool, including write and delete roles.
|
|
170
|
+
- To allow a tool only for READ operations, add "roles": ["read-path"] to scope the
|
|
171
|
+
rule. Mutation roles (write-path, write-history, delete-path, delete-history) will
|
|
172
|
+
then have no matching rule and fall through to default-deny.
|
|
173
|
+
|
|
174
|
+
Look at each tool's argument roles in the annotations above. If a tool has BOTH read
|
|
175
|
+
roles (read-path) AND mutation roles (write-path, write-history, delete-path,
|
|
176
|
+
delete-history), it is a **multi-mode tool** — its behavior depends on how it is called.
|
|
177
|
+
At runtime, the engine resolves which roles are active based on the actual arguments.
|
|
178
|
+
|
|
179
|
+
For multi-mode tools:
|
|
180
|
+
- If the roles are distinct (e.g., read-path vs write-history), you CAN scope rules
|
|
181
|
+
using the "roles" condition. Example: {"tool": ["X"], "roles": ["read-path"]} allows
|
|
182
|
+
read-only calls; mutation calls fall to default-deny because their write/delete roles
|
|
183
|
+
have no matching rule.
|
|
184
|
+
- If all modes share the same roles (e.g., a tool always has both read-path and
|
|
185
|
+
write-path regardless of operation), role scoping cannot distinguish modes. Choose
|
|
186
|
+
one disposition for the entire tool — prefer escalate if the constitution restricts
|
|
187
|
+
mutations.
|
|
188
|
+
|
|
153
189
|
Be concise in descriptions and reasons -- one sentence each.
|
|
154
190
|
${formatGroundTruthSection(handwrittenScenarios)}
|
|
155
191
|
## Dynamic Lists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constitution-compiler.js","sourceRoot":"","sources":["../../src/pipeline/constitution-compiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constitution-compiler.js","sourceRoot":"","sources":["../../src/pipeline/constitution-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* CLI entry point: `ironcurtain customize-policy`
|
|
9
9
|
*/
|
|
10
|
+
import type { LanguageModel, ModelMessage, SystemModelMessage } from 'ai';
|
|
10
11
|
import { z } from 'zod';
|
|
11
12
|
import type { GitHubIdentity } from './github-identity.js';
|
|
12
13
|
import type { ToolAnnotation } from './types.js';
|
|
@@ -64,4 +65,6 @@ export declare function revertConstitution(): void;
|
|
|
64
65
|
* Returns the current content of the user constitution (or undefined).
|
|
65
66
|
*/
|
|
66
67
|
export declare function seedBaseConstitution(): string | undefined;
|
|
68
|
+
export declare function callLlm(model: LanguageModel, systemPrompt: string | SystemModelMessage, messages: ModelMessage[]): Promise<CustomizerResponse>;
|
|
69
|
+
export declare function loadAnnotations(generatedDir: string, packageGeneratedDir: string): ToolAnnotation[];
|
|
67
70
|
export declare function main(): Promise<void>;
|
|
@@ -314,7 +314,7 @@ function handleCancel(value) {
|
|
|
314
314
|
// ---------------------------------------------------------------------------
|
|
315
315
|
// LLM Call
|
|
316
316
|
// ---------------------------------------------------------------------------
|
|
317
|
-
async function callLlm(model, systemPrompt, messages) {
|
|
317
|
+
export async function callLlm(model, systemPrompt, messages) {
|
|
318
318
|
const result = await generateText({
|
|
319
319
|
model,
|
|
320
320
|
output: Output.object({ schema: CustomizerResponseSchema }),
|
|
@@ -327,11 +327,10 @@ async function callLlm(model, systemPrompt, messages) {
|
|
|
327
327
|
// ---------------------------------------------------------------------------
|
|
328
328
|
// Load Tool Annotations
|
|
329
329
|
// ---------------------------------------------------------------------------
|
|
330
|
-
function loadAnnotations(generatedDir, packageGeneratedDir) {
|
|
330
|
+
export function loadAnnotations(generatedDir, packageGeneratedDir) {
|
|
331
331
|
const file = loadExistingArtifact(generatedDir, 'tool-annotations.json', packageGeneratedDir);
|
|
332
332
|
if (!file) {
|
|
333
|
-
|
|
334
|
-
process.exit(1);
|
|
333
|
+
throw new Error("tool-annotations.json not found. Run 'ironcurtain annotate-tools' first to generate tool annotations.");
|
|
335
334
|
}
|
|
336
335
|
return Object.values(file.servers).flatMap((server) => server.tools);
|
|
337
336
|
}
|
|
@@ -352,7 +351,14 @@ export async function main() {
|
|
|
352
351
|
const packageGeneratedDir = resolve(configDir, 'generated');
|
|
353
352
|
const generatedDir = getUserGeneratedDir();
|
|
354
353
|
// Load tool annotations
|
|
355
|
-
|
|
354
|
+
let annotations;
|
|
355
|
+
try {
|
|
356
|
+
annotations = loadAnnotations(generatedDir, packageGeneratedDir);
|
|
357
|
+
}
|
|
358
|
+
catch (err) {
|
|
359
|
+
p.log.error(err instanceof Error ? err.message : String(err));
|
|
360
|
+
process.exit(1);
|
|
361
|
+
}
|
|
356
362
|
const serverCount = new Set(annotations.map((a) => a.serverName)).size;
|
|
357
363
|
p.log.info(`Loaded tool annotations (${serverCount} server${serverCount !== 1 ? 's' : ''}, ${annotations.length} tools)`);
|
|
358
364
|
// Discover GitHub identity (best-effort enrichment)
|
|
@@ -415,10 +421,14 @@ export async function main() {
|
|
|
415
421
|
const cachedMessages = cacheStrategy.applyHistoryBreakpoint(conversationHistory);
|
|
416
422
|
// Call LLM
|
|
417
423
|
let response;
|
|
424
|
+
const llmSpinner = p.spinner();
|
|
425
|
+
llmSpinner.start('Thinking...');
|
|
418
426
|
try {
|
|
419
427
|
response = await callLlm(model, systemPrompt, cachedMessages);
|
|
428
|
+
llmSpinner.stop('Done.');
|
|
420
429
|
}
|
|
421
430
|
catch (err) {
|
|
431
|
+
llmSpinner.stop('Failed.');
|
|
422
432
|
p.log.error(`LLM error: ${err instanceof Error ? err.message : String(err)}`);
|
|
423
433
|
// Remove the user message we just added since the call failed
|
|
424
434
|
conversationHistory.pop();
|
|
@@ -466,10 +476,14 @@ export async function main() {
|
|
|
466
476
|
const refineMsg = buildUserMessage(currentConstitution, refinement.trim());
|
|
467
477
|
conversationHistory.push({ role: 'user', content: refineMsg });
|
|
468
478
|
const refinedMessages = cacheStrategy.applyHistoryBreakpoint(conversationHistory);
|
|
479
|
+
const refineSpinner = p.spinner();
|
|
480
|
+
refineSpinner.start('Thinking...');
|
|
469
481
|
try {
|
|
470
482
|
response = await callLlm(model, systemPrompt, refinedMessages);
|
|
483
|
+
refineSpinner.stop('Done.');
|
|
471
484
|
}
|
|
472
485
|
catch (err) {
|
|
486
|
+
refineSpinner.stop('Failed.');
|
|
473
487
|
p.log.error(`LLM error: ${err instanceof Error ? err.message : String(err)}`);
|
|
474
488
|
conversationHistory.pop();
|
|
475
489
|
break;
|