@aisy/core 0.1.0
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/LICENSE +202 -0
- package/dist/agent-loop/index.d.ts +4 -0
- package/dist/agent-loop/index.d.ts.map +1 -0
- package/dist/agent-loop/index.js +352 -0
- package/dist/agent-loop/index.js.map +1 -0
- package/dist/agent-loop/types.d.ts +183 -0
- package/dist/agent-loop/types.d.ts.map +1 -0
- package/dist/agent-loop/types.js +3 -0
- package/dist/agent-loop/types.js.map +1 -0
- package/dist/bin/aisy.d.ts +3 -0
- package/dist/bin/aisy.d.ts.map +1 -0
- package/dist/bin/aisy.js +14 -0
- package/dist/bin/aisy.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +114 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/context-engine/index.d.ts +4 -0
- package/dist/context-engine/index.d.ts.map +1 -0
- package/dist/context-engine/index.js +126 -0
- package/dist/context-engine/index.js.map +1 -0
- package/dist/context-engine/types.d.ts +54 -0
- package/dist/context-engine/types.d.ts.map +1 -0
- package/dist/context-engine/types.js +4 -0
- package/dist/context-engine/types.js.map +1 -0
- package/dist/eval/index.d.ts +20 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +128 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/types.d.ts +62 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +17 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/gateway/index.d.ts +5 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +288 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/types.d.ts +194 -0
- package/dist/gateway/types.d.ts.map +1 -0
- package/dist/gateway/types.js +94 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/goals/index.d.ts +11 -0
- package/dist/goals/index.d.ts.map +1 -0
- package/dist/goals/index.js +21 -0
- package/dist/goals/index.js.map +1 -0
- package/dist/goals/types.d.ts +47 -0
- package/dist/goals/types.d.ts.map +1 -0
- package/dist/goals/types.js +5 -0
- package/dist/goals/types.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +215 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/types.d.ts +148 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +4 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/memory/index.d.ts +6 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +419 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/types.d.ts +131 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +33 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/nightly/index.d.ts +4 -0
- package/dist/nightly/index.d.ts.map +1 -0
- package/dist/nightly/index.js +470 -0
- package/dist/nightly/index.js.map +1 -0
- package/dist/nightly/types.d.ts +326 -0
- package/dist/nightly/types.d.ts.map +1 -0
- package/dist/nightly/types.js +3 -0
- package/dist/nightly/types.js.map +1 -0
- package/dist/observability/index.d.ts +11 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +396 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/types.d.ts +139 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +4 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/onboarding/index.d.ts +16 -0
- package/dist/onboarding/index.d.ts.map +1 -0
- package/dist/onboarding/index.js +787 -0
- package/dist/onboarding/index.js.map +1 -0
- package/dist/onboarding/interactive.d.ts +23 -0
- package/dist/onboarding/interactive.d.ts.map +1 -0
- package/dist/onboarding/interactive.js +45 -0
- package/dist/onboarding/interactive.js.map +1 -0
- package/dist/onboarding/types.d.ts +388 -0
- package/dist/onboarding/types.d.ts.map +1 -0
- package/dist/onboarding/types.js +35 -0
- package/dist/onboarding/types.js.map +1 -0
- package/dist/orchestration/index.d.ts +8 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +706 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/types.d.ts +391 -0
- package/dist/orchestration/types.d.ts.map +1 -0
- package/dist/orchestration/types.js +30 -0
- package/dist/orchestration/types.js.map +1 -0
- package/dist/personality/index.d.ts +65 -0
- package/dist/personality/index.d.ts.map +1 -0
- package/dist/personality/index.js +339 -0
- package/dist/personality/index.js.map +1 -0
- package/dist/personality/types.d.ts +103 -0
- package/dist/personality/types.d.ts.map +1 -0
- package/dist/personality/types.js +15 -0
- package/dist/personality/types.js.map +1 -0
- package/dist/provider/index.d.ts +4 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +236 -0
- package/dist/provider/index.js.map +1 -0
- package/dist/provider/types.d.ts +180 -0
- package/dist/provider/types.d.ts.map +1 -0
- package/dist/provider/types.js +4 -0
- package/dist/provider/types.js.map +1 -0
- package/dist/runtime/agent-cards.d.ts +14 -0
- package/dist/runtime/agent-cards.d.ts.map +1 -0
- package/dist/runtime/agent-cards.js +90 -0
- package/dist/runtime/agent-cards.js.map +1 -0
- package/dist/runtime/agent-runner.d.ts +30 -0
- package/dist/runtime/agent-runner.d.ts.map +1 -0
- package/dist/runtime/agent-runner.js +37 -0
- package/dist/runtime/agent-runner.js.map +1 -0
- package/dist/runtime/budget.d.ts +15 -0
- package/dist/runtime/budget.d.ts.map +1 -0
- package/dist/runtime/budget.js +24 -0
- package/dist/runtime/budget.js.map +1 -0
- package/dist/runtime/delegation-driver.d.ts +11 -0
- package/dist/runtime/delegation-driver.d.ts.map +1 -0
- package/dist/runtime/delegation-driver.js +132 -0
- package/dist/runtime/delegation-driver.js.map +1 -0
- package/dist/runtime/exact-cache.d.ts +10 -0
- package/dist/runtime/exact-cache.d.ts.map +1 -0
- package/dist/runtime/exact-cache.js +30 -0
- package/dist/runtime/exact-cache.js.map +1 -0
- package/dist/runtime/execute-tool.d.ts +29 -0
- package/dist/runtime/execute-tool.d.ts.map +1 -0
- package/dist/runtime/execute-tool.js +80 -0
- package/dist/runtime/execute-tool.js.map +1 -0
- package/dist/runtime/guardian.d.ts +9 -0
- package/dist/runtime/guardian.d.ts.map +1 -0
- package/dist/runtime/guardian.js +41 -0
- package/dist/runtime/guardian.js.map +1 -0
- package/dist/runtime/hook-gate.d.ts +17 -0
- package/dist/runtime/hook-gate.d.ts.map +1 -0
- package/dist/runtime/hook-gate.js +56 -0
- package/dist/runtime/hook-gate.js.map +1 -0
- package/dist/runtime/memory-adapter.d.ts +6 -0
- package/dist/runtime/memory-adapter.d.ts.map +1 -0
- package/dist/runtime/memory-adapter.js +38 -0
- package/dist/runtime/memory-adapter.js.map +1 -0
- package/dist/runtime/nightly-adapters.d.ts +48 -0
- package/dist/runtime/nightly-adapters.d.ts.map +1 -0
- package/dist/runtime/nightly-adapters.js +139 -0
- package/dist/runtime/nightly-adapters.js.map +1 -0
- package/dist/runtime/nightly-generator.d.ts +10 -0
- package/dist/runtime/nightly-generator.d.ts.map +1 -0
- package/dist/runtime/nightly-generator.js +335 -0
- package/dist/runtime/nightly-generator.js.map +1 -0
- package/dist/runtime/onboarding-node.d.ts +6 -0
- package/dist/runtime/onboarding-node.d.ts.map +1 -0
- package/dist/runtime/onboarding-node.js +356 -0
- package/dist/runtime/onboarding-node.js.map +1 -0
- package/dist/runtime/provider-anthropic.d.ts +43 -0
- package/dist/runtime/provider-anthropic.d.ts.map +1 -0
- package/dist/runtime/provider-anthropic.js +148 -0
- package/dist/runtime/provider-anthropic.js.map +1 -0
- package/dist/runtime/provider-cli.d.ts +18 -0
- package/dist/runtime/provider-cli.d.ts.map +1 -0
- package/dist/runtime/provider-cli.js +73 -0
- package/dist/runtime/provider-cli.js.map +1 -0
- package/dist/runtime/provider-openai.d.ts +30 -0
- package/dist/runtime/provider-openai.d.ts.map +1 -0
- package/dist/runtime/provider-openai.js +114 -0
- package/dist/runtime/provider-openai.js.map +1 -0
- package/dist/runtime/providers.d.ts +43 -0
- package/dist/runtime/providers.d.ts.map +1 -0
- package/dist/runtime/providers.js +72 -0
- package/dist/runtime/providers.js.map +1 -0
- package/dist/runtime/sandbox-bash.d.ts +21 -0
- package/dist/runtime/sandbox-bash.d.ts.map +1 -0
- package/dist/runtime/sandbox-bash.js +51 -0
- package/dist/runtime/sandbox-bash.js.map +1 -0
- package/dist/runtime/scoped-tool-executor.d.ts +10 -0
- package/dist/runtime/scoped-tool-executor.d.ts.map +1 -0
- package/dist/runtime/scoped-tool-executor.js +30 -0
- package/dist/runtime/scoped-tool-executor.js.map +1 -0
- package/dist/runtime/session-log.d.ts +6 -0
- package/dist/runtime/session-log.d.ts.map +1 -0
- package/dist/runtime/session-log.js +54 -0
- package/dist/runtime/session-log.js.map +1 -0
- package/dist/runtime/settings.d.ts +24 -0
- package/dist/runtime/settings.d.ts.map +1 -0
- package/dist/runtime/settings.js +29 -0
- package/dist/runtime/settings.js.map +1 -0
- package/dist/runtime/spawn-plan.d.ts +13 -0
- package/dist/runtime/spawn-plan.d.ts.map +1 -0
- package/dist/runtime/spawn-plan.js +107 -0
- package/dist/runtime/spawn-plan.js.map +1 -0
- package/dist/runtime/spend.d.ts +41 -0
- package/dist/runtime/spend.d.ts.map +1 -0
- package/dist/runtime/spend.js +0 -0
- package/dist/runtime/spend.js.map +1 -0
- package/dist/runtime/sub-agent-runner.d.ts +19 -0
- package/dist/runtime/sub-agent-runner.d.ts.map +1 -0
- package/dist/runtime/sub-agent-runner.js +47 -0
- package/dist/runtime/sub-agent-runner.js.map +1 -0
- package/dist/safety/grants.d.ts +7 -0
- package/dist/safety/grants.d.ts.map +1 -0
- package/dist/safety/grants.js +53 -0
- package/dist/safety/grants.js.map +1 -0
- package/dist/safety/index.d.ts +72 -0
- package/dist/safety/index.d.ts.map +1 -0
- package/dist/safety/index.js +464 -0
- package/dist/safety/index.js.map +1 -0
- package/dist/safety/types.d.ts +254 -0
- package/dist/safety/types.d.ts.map +1 -0
- package/dist/safety/types.js +3 -0
- package/dist/safety/types.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +463 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/types.d.ts +177 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +3 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/testing/clock.d.ts +8 -0
- package/dist/testing/clock.d.ts.map +1 -0
- package/dist/testing/clock.js +13 -0
- package/dist/testing/clock.js.map +1 -0
- package/dist/testing/effect-verifier.d.ts +15 -0
- package/dist/testing/effect-verifier.d.ts.map +1 -0
- package/dist/testing/effect-verifier.js +27 -0
- package/dist/testing/effect-verifier.js.map +1 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/provider-fake.d.ts +14 -0
- package/dist/testing/provider-fake.d.ts.map +1 -0
- package/dist/testing/provider-fake.js +18 -0
- package/dist/testing/provider-fake.js.map +1 -0
- package/dist/testing/sandbox-stub.d.ts +15 -0
- package/dist/testing/sandbox-stub.d.ts.map +1 -0
- package/dist/testing/sandbox-stub.js +15 -0
- package/dist/testing/sandbox-stub.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +0 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/types.d.ts +138 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +4 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/triggers/index.d.ts +4 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +187 -0
- package/dist/triggers/index.js.map +1 -0
- package/dist/triggers/types.d.ts +74 -0
- package/dist/triggers/types.d.ts.map +1 -0
- package/dist/triggers/types.js +5 -0
- package/dist/triggers/types.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
export type Provenance = 'operator' | 'untrusted';
|
|
2
|
+
export interface ContextSpan {
|
|
3
|
+
text: string;
|
|
4
|
+
/** Set by Core (01); Safety never sets it. Absent or unparsable → treat as 'untrusted'. */
|
|
5
|
+
provenance: Provenance;
|
|
6
|
+
/** e.g. mcp:<server> | url:<host> | file:<path> | voice | telegram */
|
|
7
|
+
source: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ToolCall {
|
|
10
|
+
/** Canonical tool name, e.g. 'bash', 'telegram.send', 'mcp:write-file' */
|
|
11
|
+
tool: string;
|
|
12
|
+
args: Record<string, unknown>;
|
|
13
|
+
/** True when any arg value is derived from an untrusted span (taint tracking). */
|
|
14
|
+
argsTainted?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** Autonomy tier: property of the action class, never the model's confidence. */
|
|
17
|
+
export type Tier = 0 | 1 | 2 | 3;
|
|
18
|
+
/** Global autonomy level governs whether Tier-2 may auto-run. */
|
|
19
|
+
export type AutonomyLevel = 'Supervised' | 'Delegation' | 'Autopilot';
|
|
20
|
+
export interface AutonomyTier {
|
|
21
|
+
tier: Tier;
|
|
22
|
+
/** Glob / regex pattern matching tool names in this tier. */
|
|
23
|
+
toolPattern: string;
|
|
24
|
+
description: string;
|
|
25
|
+
}
|
|
26
|
+
/** Human-facing confirmation card rendered for Tier-3 (red card) and Tier-2 asks. */
|
|
27
|
+
export interface ConfirmationCard {
|
|
28
|
+
tier: Tier;
|
|
29
|
+
actionSummary: string;
|
|
30
|
+
/** SHA-256 of the serialized ToolCall. */
|
|
31
|
+
actionHash: string;
|
|
32
|
+
nonce: string;
|
|
33
|
+
issuedAt: number;
|
|
34
|
+
}
|
|
35
|
+
export type Verdict = {
|
|
36
|
+
decision: 'allow';
|
|
37
|
+
} | {
|
|
38
|
+
decision: 'deny';
|
|
39
|
+
rule: string;
|
|
40
|
+
reason: string;
|
|
41
|
+
} | {
|
|
42
|
+
decision: 'ask';
|
|
43
|
+
tier: Tier;
|
|
44
|
+
card: ConfirmationCard;
|
|
45
|
+
} | {
|
|
46
|
+
decision: 'modify';
|
|
47
|
+
rewritten: ToolCall;
|
|
48
|
+
};
|
|
49
|
+
export type HardDenyCategory = 'infra-destruction' | 'filesystem-destruction' | 'db-destruction' | 'history-rewrite' | 'money-op' | 'secret-file-read';
|
|
50
|
+
export interface HardDenyRule {
|
|
51
|
+
id: string;
|
|
52
|
+
/** Tested against the *normalized* tool name + serialized args string. */
|
|
53
|
+
pattern: RegExp | string;
|
|
54
|
+
category: HardDenyCategory;
|
|
55
|
+
}
|
|
56
|
+
export type InjectionVerdict = 'clean' | 'suspicious' | 'injection';
|
|
57
|
+
export interface InjectionClassifier {
|
|
58
|
+
/**
|
|
59
|
+
* Advisory only. Returns 'clean' | 'suspicious' | 'injection'.
|
|
60
|
+
* Can never downgrade a span from 'untrusted' to 'trusted'.
|
|
61
|
+
* If unavailable/timeout, caller defaults to quarantine — classifier is not load-bearing.
|
|
62
|
+
*/
|
|
63
|
+
classify(span: ContextSpan): Promise<InjectionVerdict>;
|
|
64
|
+
}
|
|
65
|
+
export interface InputGuard {
|
|
66
|
+
/**
|
|
67
|
+
* Unconditional deterministic transforms — run 100 % of the time before
|
|
68
|
+
* the model sees untrusted text. Strips markdown images / auto-loading
|
|
69
|
+
* resources, neutralizes foreign URLs, defangs known injection patterns.
|
|
70
|
+
*/
|
|
71
|
+
defang(span: ContextSpan): ContextSpan;
|
|
72
|
+
/**
|
|
73
|
+
* Advisory escalation. Can raise quarantine framing ('suspicious' →
|
|
74
|
+
* 'injection'), but can never return a span with provenance 'operator'.
|
|
75
|
+
*/
|
|
76
|
+
classify(span: ContextSpan): Promise<InjectionVerdict>;
|
|
77
|
+
}
|
|
78
|
+
export interface SafetyPolicy {
|
|
79
|
+
/** Loaded and self-checked; false = cold-start fail-closed mode. */
|
|
80
|
+
readonly ready: boolean;
|
|
81
|
+
/** Pre-execution verdict for a resolved tool call given current context. */
|
|
82
|
+
evaluate(call: ToolCall, ctx: ContextSpan[]): Verdict;
|
|
83
|
+
/** True when any span in ctx is 'untrusted' → narrowed-capability mode. */
|
|
84
|
+
isNarrowed(ctx: ContextSpan[]): boolean;
|
|
85
|
+
}
|
|
86
|
+
export type GrantScope = 'session' | 'always';
|
|
87
|
+
/** Persistence for "always" grants only; session grants live in-memory. */
|
|
88
|
+
export interface GrantPersistencePort {
|
|
89
|
+
loadAlways(): string[];
|
|
90
|
+
saveAlways(tools: string[]): void;
|
|
91
|
+
}
|
|
92
|
+
export interface GrantStore {
|
|
93
|
+
/** True if a live session OR persisted always grant covers this tool. */
|
|
94
|
+
has(tool: string): boolean;
|
|
95
|
+
/** Record a grant. 'always' is promoted over an existing session grant. */
|
|
96
|
+
record(tool: string, scope: GrantScope): void;
|
|
97
|
+
revoke(tool: string): void;
|
|
98
|
+
revokeAll(): void;
|
|
99
|
+
list(): {
|
|
100
|
+
tool: string;
|
|
101
|
+
scope: GrantScope;
|
|
102
|
+
}[];
|
|
103
|
+
}
|
|
104
|
+
export interface SafetyClassifier {
|
|
105
|
+
classify(input: {
|
|
106
|
+
call: ToolCall;
|
|
107
|
+
ctx: ContextSpan[];
|
|
108
|
+
}): Promise<Verdict>;
|
|
109
|
+
}
|
|
110
|
+
export type EgressMode = 'read-only' | 'read-write';
|
|
111
|
+
export interface EgressAllowlistEntry {
|
|
112
|
+
host: string;
|
|
113
|
+
methods: string[];
|
|
114
|
+
mode: EgressMode;
|
|
115
|
+
}
|
|
116
|
+
export interface OutboundRequest {
|
|
117
|
+
host: string;
|
|
118
|
+
method: string;
|
|
119
|
+
path: string;
|
|
120
|
+
queryString?: string;
|
|
121
|
+
body?: string | Uint8Array;
|
|
122
|
+
headers?: Record<string, string>;
|
|
123
|
+
}
|
|
124
|
+
export interface EgressGuard {
|
|
125
|
+
/**
|
|
126
|
+
* Data-side scan of an outbound body before it leaves the proxy.
|
|
127
|
+
* Checks: read-only destination with write/body, size/entropy/secret-pattern,
|
|
128
|
+
* and free-text in query string while narrowed.
|
|
129
|
+
*/
|
|
130
|
+
inspectBody(req: OutboundRequest, ctx: ContextSpan[]): {
|
|
131
|
+
decision: 'allow' | 'deny';
|
|
132
|
+
reason?: string;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export type ApprovalStatus = 'approved' | 'rejected-replay' | 'rejected-stale' | 'rejected-hash-mismatch' | 'rejected-toctou' | 'rejected-second-factor';
|
|
136
|
+
export interface ApprovalRecord {
|
|
137
|
+
nonce: string;
|
|
138
|
+
actionHash: string;
|
|
139
|
+
factId?: string;
|
|
140
|
+
op: string;
|
|
141
|
+
tapTimestamp: number;
|
|
142
|
+
secondFactorOk: boolean;
|
|
143
|
+
stagedHashAtAccept: string;
|
|
144
|
+
stagedHashAtPromote: string;
|
|
145
|
+
}
|
|
146
|
+
export interface ApprovalResult {
|
|
147
|
+
status: ApprovalStatus;
|
|
148
|
+
record?: ApprovalRecord;
|
|
149
|
+
}
|
|
150
|
+
export interface ApprovalHandler {
|
|
151
|
+
/**
|
|
152
|
+
* The ONLY setter of is_human_confirmed / permanence flags.
|
|
153
|
+
* Binds a human tap (nonce) to a hash-pinned action.
|
|
154
|
+
*/
|
|
155
|
+
confirm(nonce: string, actionHash: string, secondFactor?: string): ApprovalResult;
|
|
156
|
+
/** Strip is_human_confirmed and all trust/permanence fields from arbitrary output. */
|
|
157
|
+
stripTrustFields(output: Record<string, unknown>): Record<string, unknown>;
|
|
158
|
+
}
|
|
159
|
+
export interface SecretRedactor {
|
|
160
|
+
/** Applied to every sink — logs, audit journal, morning card, model context, outbound bodies. */
|
|
161
|
+
redact(text: string): string;
|
|
162
|
+
}
|
|
163
|
+
export interface Vault {
|
|
164
|
+
/** Retrieve a named secret. Throws if not found. */
|
|
165
|
+
getSecret(name: string): Promise<string>;
|
|
166
|
+
/** List available secret names (no values). */
|
|
167
|
+
listSecrets(): Promise<string[]>;
|
|
168
|
+
/** Register a pattern to be redacted (in addition to built-in shapes). */
|
|
169
|
+
addRedactionPattern(pattern: RegExp): void;
|
|
170
|
+
readonly redactor: SecretRedactor;
|
|
171
|
+
}
|
|
172
|
+
export interface MountSpec {
|
|
173
|
+
hostPath: string;
|
|
174
|
+
containerPath: string;
|
|
175
|
+
readOnly: boolean;
|
|
176
|
+
}
|
|
177
|
+
export interface SandboxConfig {
|
|
178
|
+
image: string;
|
|
179
|
+
mounts: MountSpec[];
|
|
180
|
+
/** Absence → default-deny network. When present, per-task egress bridge host:port. */
|
|
181
|
+
egressBridge?: string;
|
|
182
|
+
/** True = gVisor (runsc) runtime available; false = degraded mode. */
|
|
183
|
+
gVisorAvailable: boolean;
|
|
184
|
+
/** Per-task unique id used to name/track the egress bridge. */
|
|
185
|
+
taskId: string;
|
|
186
|
+
}
|
|
187
|
+
export interface SandboxRunResult {
|
|
188
|
+
stdout: string;
|
|
189
|
+
stderr: string;
|
|
190
|
+
exitCode: number;
|
|
191
|
+
}
|
|
192
|
+
export type SandboxSecurityLevel = 'full' | 'degraded-no-gvisor';
|
|
193
|
+
export interface SandboxRunner {
|
|
194
|
+
/**
|
|
195
|
+
* Validate mount spec against the allowlist (no docker.sock, own-worktree-only).
|
|
196
|
+
* Returns null on success, or an error string.
|
|
197
|
+
*/
|
|
198
|
+
validateMounts(mounts: MountSpec[]): string | null;
|
|
199
|
+
/**
|
|
200
|
+
* Start a task container. Returns an opaque container id.
|
|
201
|
+
* Throws if mount validation fails or gVisor absent + high-risk tool requested.
|
|
202
|
+
*/
|
|
203
|
+
start(config: SandboxConfig): Promise<string>;
|
|
204
|
+
/** Execute a command inside a running container. */
|
|
205
|
+
exec(containerId: string, cmd: string, args: readonly string[]): Promise<SandboxRunResult>;
|
|
206
|
+
/**
|
|
207
|
+
* Tear down the container and the per-task egress bridge.
|
|
208
|
+
* Throws (marking the task failed) if teardown cannot be confirmed.
|
|
209
|
+
*/
|
|
210
|
+
teardown(containerId: string, taskId: string): Promise<void>;
|
|
211
|
+
/** Security level reported at last probe. */
|
|
212
|
+
readonly securityLevel: SandboxSecurityLevel;
|
|
213
|
+
}
|
|
214
|
+
export type NightlyOpKind = 'vacuum' | 'fts5-optimize' | 'wal-checkpoint' | 'log-rotation' | 'docker-prune' | 'worktree-prune' | 'git-push-ff';
|
|
215
|
+
export interface NightlyOp {
|
|
216
|
+
kind: NightlyOpKind;
|
|
217
|
+
params: Record<string, unknown>;
|
|
218
|
+
}
|
|
219
|
+
export interface NightlyCarveoutEntry {
|
|
220
|
+
kind: NightlyOpKind;
|
|
221
|
+
/** Predicate that must return true before the op may run. */
|
|
222
|
+
precondition(op: NightlyOp): boolean;
|
|
223
|
+
/** True = the op is reversible via pre-op DB snapshot. */
|
|
224
|
+
reversibleBySnapshot: boolean;
|
|
225
|
+
}
|
|
226
|
+
export interface NightlyCarveout {
|
|
227
|
+
/** Returns true if the op is on the allowlist and its precondition holds. */
|
|
228
|
+
isPermitted(op: NightlyOp): boolean;
|
|
229
|
+
/** Run the op unattended; throws if not permitted. */
|
|
230
|
+
run(op: NightlyOp): Promise<{
|
|
231
|
+
ran: true;
|
|
232
|
+
} | {
|
|
233
|
+
ran: false;
|
|
234
|
+
reason: string;
|
|
235
|
+
}>;
|
|
236
|
+
}
|
|
237
|
+
export interface LethalTrifectaState {
|
|
238
|
+
/** Untrusted span is in context. */
|
|
239
|
+
hasUntrustedContent: boolean;
|
|
240
|
+
/** Private / sensitive data identified in context. */
|
|
241
|
+
hasPrivateData: boolean;
|
|
242
|
+
/** An outbound channel (HTTP, Telegram send, git push, write MCP) is being attempted. */
|
|
243
|
+
hasOutboundChannel: boolean;
|
|
244
|
+
}
|
|
245
|
+
export interface LethalTrifectaResult {
|
|
246
|
+
triggered: boolean;
|
|
247
|
+
/** Which legs of the trifecta are active. */
|
|
248
|
+
state: LethalTrifectaState;
|
|
249
|
+
}
|
|
250
|
+
export interface LethalTrifectaDetector {
|
|
251
|
+
/** Evaluate whether opening this outbound call would complete the trifecta. */
|
|
252
|
+
evaluate(call: ToolCall, ctx: ContextSpan[]): LethalTrifectaResult;
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/safety/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/safety/types.ts"],"names":[],"mappings":"AAAA,0DAA0D"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { Provenance, SkillFrontmatter, SkillBody, ParsedSkill, ParseError, ParseResult, MenuEntry, SkillTrigger, ValidationReport, TriggerContext, StagedSkill, ReviewCard, ApprovalVerdict, PromoteResult, FailureClass, FailureSignal, NegativeSkillRecord, ProbeReport, Skills, SandboxPort, ObservabilityPort, GitPort, NonceStore, SkillsDeps, } from './types.js';
|
|
2
|
+
import type { Skills, SkillsDeps } from './types.js';
|
|
3
|
+
export declare function makeSkillRegistry(deps: SkillsDeps): Skills;
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EAgBX,MAAM,YAAY,CAAA;AAoPnB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAgS1D"}
|