tryassay 0.1.2 → 0.3.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/dist/cli.js +37 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/runtime.d.ts +23 -0
- package/dist/commands/runtime.js +130 -0
- package/dist/commands/runtime.js.map +1 -0
- package/dist/runtime/agent-loop.d.ts +55 -0
- package/dist/runtime/agent-loop.js +502 -0
- package/dist/runtime/agent-loop.js.map +1 -0
- package/dist/runtime/audit-log.d.ts +35 -0
- package/dist/runtime/audit-log.js +115 -0
- package/dist/runtime/audit-log.js.map +1 -0
- package/dist/runtime/config-loader.d.ts +41 -0
- package/dist/runtime/config-loader.js +116 -0
- package/dist/runtime/config-loader.js.map +1 -0
- package/dist/runtime/control-server.d.ts +25 -0
- package/dist/runtime/control-server.js +83 -0
- package/dist/runtime/control-server.js.map +1 -0
- package/dist/runtime/executor.d.ts +37 -0
- package/dist/runtime/executor.js +518 -0
- package/dist/runtime/executor.js.map +1 -0
- package/dist/runtime/logger.d.ts +20 -0
- package/dist/runtime/logger.js +73 -0
- package/dist/runtime/logger.js.map +1 -0
- package/dist/runtime/observer.d.ts +48 -0
- package/dist/runtime/observer.js +294 -0
- package/dist/runtime/observer.js.map +1 -0
- package/dist/runtime/planner.d.ts +4 -0
- package/dist/runtime/planner.js +299 -0
- package/dist/runtime/planner.js.map +1 -0
- package/dist/runtime/reasoner.d.ts +4 -0
- package/dist/runtime/reasoner.js +238 -0
- package/dist/runtime/reasoner.js.map +1 -0
- package/dist/runtime/reflector.d.ts +67 -0
- package/dist/runtime/reflector.js +393 -0
- package/dist/runtime/reflector.js.map +1 -0
- package/dist/runtime/types.d.ts +321 -0
- package/dist/runtime/types.js +6 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/verifier.d.ts +46 -0
- package/dist/runtime/verifier.js +404 -0
- package/dist/runtime/verifier.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/runtime/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Assay Verified Agent Runtime — Reasoner
|
|
3
|
+
// Takes an Observation + context → produces a Decision via Claude
|
|
4
|
+
// ============================================================
|
|
5
|
+
import { randomUUID } from 'node:crypto';
|
|
6
|
+
import { getClient, MODEL } from '../lib/anthropic.js';
|
|
7
|
+
// ── System prompt for the reasoner ────────────────────────────
|
|
8
|
+
function buildSystemPrompt(config) {
|
|
9
|
+
return `You are a reasoning engine for an autonomous agent named "${config.name}".
|
|
10
|
+
|
|
11
|
+
Description: ${config.description}
|
|
12
|
+
|
|
13
|
+
Your job: Given an observation from the external world, decide what the agent should do.
|
|
14
|
+
|
|
15
|
+
SCOPE & CONSTRAINTS:
|
|
16
|
+
- Allowed directories: ${config.scope.allowedDirectories.join(', ')}
|
|
17
|
+
- Allowed commands: ${config.scope.allowedCommands.join(', ')}
|
|
18
|
+
- Allowed URLs: ${config.scope.allowedUrls.join(', ')}
|
|
19
|
+
- Blocked patterns: ${config.scope.blockedPatterns.join(', ')}
|
|
20
|
+
- Max actions per hour: ${config.limits.maxActionsPerHour}
|
|
21
|
+
- Max tokens per hour: ${config.limits.maxTokensPerHour}
|
|
22
|
+
- Max concurrent steps: ${config.limits.maxConcurrentSteps}
|
|
23
|
+
- Max plan steps: ${config.limits.maxPlanSteps}
|
|
24
|
+
- Command timeout: ${config.limits.commandTimeoutMs}ms
|
|
25
|
+
|
|
26
|
+
You MUST respond with a JSON object matching this exact schema:
|
|
27
|
+
{
|
|
28
|
+
"action": "act" | "ignore" | "defer",
|
|
29
|
+
"reasoning": "string — your chain of thought explaining why",
|
|
30
|
+
"confidence": number between 0.0 and 1.0,
|
|
31
|
+
"proposedActions": [
|
|
32
|
+
{
|
|
33
|
+
"description": "what to do",
|
|
34
|
+
"operationType": "code_write" | "code_run" | "api_call" | "git" | "message",
|
|
35
|
+
"target": "file path, URL, command, etc.",
|
|
36
|
+
"details": "specifics of the operation"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"risks": ["string — what could go wrong"]
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
Rules:
|
|
43
|
+
- "act": You have a clear action to take within scope.
|
|
44
|
+
- "ignore": The observation is irrelevant or no action is needed.
|
|
45
|
+
- "defer": You are uncertain or the action is outside scope — escalate to a human.
|
|
46
|
+
- If action is "ignore" or "defer", proposedActions should be an empty array.
|
|
47
|
+
- Be conservative with confidence. Only use > 0.8 when you are very sure.
|
|
48
|
+
- Always list risks, even for simple actions.
|
|
49
|
+
- Respond with ONLY the JSON object. No markdown, no explanation outside the JSON.`;
|
|
50
|
+
}
|
|
51
|
+
function buildUserPrompt(observation, state, experiences) {
|
|
52
|
+
let prompt = `OBSERVATION:
|
|
53
|
+
${JSON.stringify(observation, null, 2)}
|
|
54
|
+
|
|
55
|
+
CURRENT AGENT STATE:
|
|
56
|
+
- Phase: ${state.phase}
|
|
57
|
+
- Queue depth: ${state.queueDepth}
|
|
58
|
+
- Actions this hour: ${state.actionsThisHour}
|
|
59
|
+
- Tokens this hour: ${state.tokensThisHour}
|
|
60
|
+
- Total experiences: ${state.totalExperiences}
|
|
61
|
+
- Uptime: ${state.uptime}ms
|
|
62
|
+
- Recent errors: ${state.errors.length > 0 ? JSON.stringify(state.errors.slice(-3)) : 'none'}`;
|
|
63
|
+
if (experiences && experiences.length > 0) {
|
|
64
|
+
prompt += '\n\nRELEVANT PAST EXPERIENCES:';
|
|
65
|
+
for (let i = 0; i < experiences.length; i++) {
|
|
66
|
+
const exp = experiences[i];
|
|
67
|
+
prompt += `\n${i + 1}. [${exp.domain}] ${exp.outcome} — ${exp.lessons.join('; ')}`;
|
|
68
|
+
if (exp.delta) {
|
|
69
|
+
prompt += `\n Delta: ${exp.delta.slice(0, 200)}`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
prompt += '\n\nUse these past experiences to inform your decision. Learn from failures and replicate successes.';
|
|
73
|
+
}
|
|
74
|
+
prompt += '\n\nDecide: Should the agent act on this observation? If yes, what actions do you propose?';
|
|
75
|
+
return prompt;
|
|
76
|
+
}
|
|
77
|
+
const VALID_ACTIONS = new Set(['act', 'ignore', 'defer']);
|
|
78
|
+
const VALID_OP_TYPES = new Set([
|
|
79
|
+
'code_write', 'code_run', 'api_call', 'git', 'message',
|
|
80
|
+
]);
|
|
81
|
+
function parseDecisionResponse(raw) {
|
|
82
|
+
// Strip markdown code fences if present
|
|
83
|
+
let cleaned = raw.trim();
|
|
84
|
+
if (cleaned.startsWith('```')) {
|
|
85
|
+
cleaned = cleaned.replace(/^```(?:json)?\s*/, '').replace(/\s*```$/, '');
|
|
86
|
+
}
|
|
87
|
+
const parsed = JSON.parse(cleaned);
|
|
88
|
+
if (typeof parsed !== 'object' || parsed === null) {
|
|
89
|
+
throw new Error('Response is not a JSON object');
|
|
90
|
+
}
|
|
91
|
+
const obj = parsed;
|
|
92
|
+
if (typeof obj.action !== 'string' || !VALID_ACTIONS.has(obj.action)) {
|
|
93
|
+
throw new Error(`Invalid action: ${String(obj.action)}`);
|
|
94
|
+
}
|
|
95
|
+
if (typeof obj.reasoning !== 'string') {
|
|
96
|
+
throw new Error('Missing or invalid reasoning');
|
|
97
|
+
}
|
|
98
|
+
if (typeof obj.confidence !== 'number' || obj.confidence < 0 || obj.confidence > 1) {
|
|
99
|
+
throw new Error(`Invalid confidence: ${String(obj.confidence)}`);
|
|
100
|
+
}
|
|
101
|
+
if (!Array.isArray(obj.proposedActions)) {
|
|
102
|
+
throw new Error('Missing or invalid proposedActions');
|
|
103
|
+
}
|
|
104
|
+
if (!Array.isArray(obj.risks)) {
|
|
105
|
+
throw new Error('Missing or invalid risks');
|
|
106
|
+
}
|
|
107
|
+
const proposedActions = obj.proposedActions.map((a, i) => {
|
|
108
|
+
if (typeof a !== 'object' || a === null) {
|
|
109
|
+
throw new Error(`proposedActions[${i}] is not an object`);
|
|
110
|
+
}
|
|
111
|
+
const action = a;
|
|
112
|
+
if (typeof action.description !== 'string') {
|
|
113
|
+
throw new Error(`proposedActions[${i}].description is not a string`);
|
|
114
|
+
}
|
|
115
|
+
if (typeof action.operationType !== 'string' || !VALID_OP_TYPES.has(action.operationType)) {
|
|
116
|
+
throw new Error(`proposedActions[${i}].operationType is invalid: ${String(action.operationType)}`);
|
|
117
|
+
}
|
|
118
|
+
if (typeof action.target !== 'string') {
|
|
119
|
+
throw new Error(`proposedActions[${i}].target is not a string`);
|
|
120
|
+
}
|
|
121
|
+
if (typeof action.details !== 'string') {
|
|
122
|
+
throw new Error(`proposedActions[${i}].details is not a string`);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
description: action.description,
|
|
126
|
+
operationType: action.operationType,
|
|
127
|
+
target: action.target,
|
|
128
|
+
details: action.details,
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
action: obj.action,
|
|
133
|
+
reasoning: obj.reasoning,
|
|
134
|
+
confidence: obj.confidence,
|
|
135
|
+
proposedActions,
|
|
136
|
+
risks: obj.risks.map((r) => String(r)),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function toDecision(raw, observationId, inputTokens, outputTokens) {
|
|
140
|
+
return {
|
|
141
|
+
id: randomUUID(),
|
|
142
|
+
observationId,
|
|
143
|
+
action: raw.action,
|
|
144
|
+
reasoning: raw.reasoning,
|
|
145
|
+
confidence: raw.confidence,
|
|
146
|
+
proposedActions: raw.proposedActions.map((a) => ({
|
|
147
|
+
description: a.description,
|
|
148
|
+
operationType: a.operationType,
|
|
149
|
+
target: a.target,
|
|
150
|
+
details: a.details,
|
|
151
|
+
})),
|
|
152
|
+
risks: raw.risks,
|
|
153
|
+
modelUsage: { inputTokens, outputTokens },
|
|
154
|
+
timestamp: new Date().toISOString(),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function makeDeferDecision(observationId, reason) {
|
|
158
|
+
return {
|
|
159
|
+
id: randomUUID(),
|
|
160
|
+
observationId,
|
|
161
|
+
action: 'defer',
|
|
162
|
+
reasoning: reason,
|
|
163
|
+
confidence: 0,
|
|
164
|
+
proposedActions: [],
|
|
165
|
+
risks: ['Reasoner failed to produce a valid decision'],
|
|
166
|
+
modelUsage: { inputTokens: 0, outputTokens: 0 },
|
|
167
|
+
timestamp: new Date().toISOString(),
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
// ── Reasoner class ────────────────────────────────────────────
|
|
171
|
+
export class Reasoner {
|
|
172
|
+
async reason(observation, agentConfig, currentState, experiences) {
|
|
173
|
+
const client = getClient();
|
|
174
|
+
const systemPrompt = buildSystemPrompt(agentConfig);
|
|
175
|
+
const userPrompt = buildUserPrompt(observation, currentState, experiences);
|
|
176
|
+
let content = '';
|
|
177
|
+
let inputTokens = 0;
|
|
178
|
+
let outputTokens = 0;
|
|
179
|
+
try {
|
|
180
|
+
const stream = client.messages.stream({
|
|
181
|
+
model: agentConfig.modelId || MODEL,
|
|
182
|
+
max_tokens: 4096,
|
|
183
|
+
system: systemPrompt,
|
|
184
|
+
messages: [{ role: 'user', content: userPrompt }],
|
|
185
|
+
});
|
|
186
|
+
stream.on('text', (text) => {
|
|
187
|
+
content += text;
|
|
188
|
+
});
|
|
189
|
+
const finalMessage = await stream.finalMessage();
|
|
190
|
+
inputTokens = finalMessage.usage.input_tokens;
|
|
191
|
+
outputTokens = finalMessage.usage.output_tokens;
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
195
|
+
return makeDeferDecision(observation.id, `Claude API call failed: ${message}`);
|
|
196
|
+
}
|
|
197
|
+
// First parse attempt
|
|
198
|
+
try {
|
|
199
|
+
const raw = parseDecisionResponse(content);
|
|
200
|
+
return toDecision(raw, observation.id, inputTokens, outputTokens);
|
|
201
|
+
}
|
|
202
|
+
catch (firstError) {
|
|
203
|
+
// Retry once with a corrective prompt
|
|
204
|
+
const retryReason = firstError instanceof Error ? firstError.message : String(firstError);
|
|
205
|
+
try {
|
|
206
|
+
let retryContent = '';
|
|
207
|
+
let retryInputTokens = 0;
|
|
208
|
+
let retryOutputTokens = 0;
|
|
209
|
+
const retryStream = client.messages.stream({
|
|
210
|
+
model: agentConfig.modelId || MODEL,
|
|
211
|
+
max_tokens: 4096,
|
|
212
|
+
system: systemPrompt,
|
|
213
|
+
messages: [
|
|
214
|
+
{ role: 'user', content: userPrompt },
|
|
215
|
+
{ role: 'assistant', content },
|
|
216
|
+
{
|
|
217
|
+
role: 'user',
|
|
218
|
+
content: `Your previous response could not be parsed: ${retryReason}\n\nPlease respond with ONLY a valid JSON object matching the schema. No markdown, no explanation.`,
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
});
|
|
222
|
+
retryStream.on('text', (text) => {
|
|
223
|
+
retryContent += text;
|
|
224
|
+
});
|
|
225
|
+
const retryFinal = await retryStream.finalMessage();
|
|
226
|
+
retryInputTokens = retryFinal.usage.input_tokens;
|
|
227
|
+
retryOutputTokens = retryFinal.usage.output_tokens;
|
|
228
|
+
const raw = parseDecisionResponse(retryContent);
|
|
229
|
+
return toDecision(raw, observation.id, inputTokens + retryInputTokens, outputTokens + retryOutputTokens);
|
|
230
|
+
}
|
|
231
|
+
catch (retryError) {
|
|
232
|
+
const retryMessage = retryError instanceof Error ? retryError.message : String(retryError);
|
|
233
|
+
return makeDeferDecision(observation.id, `Failed to parse reasoner output after retry. First error: ${retryReason}. Retry error: ${retryMessage}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=reasoner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reasoner.js","sourceRoot":"","sources":["../../src/runtime/reasoner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Observation, Decision, ActionPlan, PlanVerification, PlanExecution, Experience, SkillProfile } from './types.js';
|
|
2
|
+
export declare class Reflector {
|
|
3
|
+
/**
|
|
4
|
+
* Create an Experience record from a completed agent cycle.
|
|
5
|
+
* Compares execution results against plan postConditions to
|
|
6
|
+
* determine the outcome, then derives lessons and metadata.
|
|
7
|
+
*/
|
|
8
|
+
reflect(observation: Observation, decision: Decision, plan: ActionPlan, verification: PlanVerification, execution: PlanExecution): Experience;
|
|
9
|
+
/**
|
|
10
|
+
* Compare each step's execution status against its postConditions
|
|
11
|
+
* to classify the overall outcome.
|
|
12
|
+
*/
|
|
13
|
+
private determineOutcome;
|
|
14
|
+
/**
|
|
15
|
+
* Describe what differed between the plan and actual execution.
|
|
16
|
+
*/
|
|
17
|
+
private computeDelta;
|
|
18
|
+
/**
|
|
19
|
+
* Extract actionable lessons from the cycle.
|
|
20
|
+
*/
|
|
21
|
+
private extractLessons;
|
|
22
|
+
/**
|
|
23
|
+
* Infer a domain label from the observation and decision context.
|
|
24
|
+
*/
|
|
25
|
+
private inferDomain;
|
|
26
|
+
/**
|
|
27
|
+
* Derive searchable tags from the cycle's context.
|
|
28
|
+
*/
|
|
29
|
+
private deriveTags;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Persists Experience records to a JSON-lines file.
|
|
33
|
+
* Uses append-only writes to handle growing files without
|
|
34
|
+
* reading the entire store into memory for each write.
|
|
35
|
+
*
|
|
36
|
+
* File format: one JSON object per line (JSON Lines / NDJSON).
|
|
37
|
+
*/
|
|
38
|
+
export declare class ExperienceStore {
|
|
39
|
+
private readonly filePath;
|
|
40
|
+
constructor(filePath: string);
|
|
41
|
+
/**
|
|
42
|
+
* Append an experience to the store file.
|
|
43
|
+
* Creates the file and parent directories if they don't exist.
|
|
44
|
+
*/
|
|
45
|
+
save(experience: Experience): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Find experiences relevant to a given context string.
|
|
48
|
+
* Uses simple text matching for now — vector search in Phase 2.
|
|
49
|
+
*/
|
|
50
|
+
getRelevantExperiences(context: string, limit?: number): Promise<Experience[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Get all experiences for a specific domain.
|
|
53
|
+
*/
|
|
54
|
+
getByDomain(domain: string): Promise<Experience[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Generate SkillProfile summaries per domain.
|
|
57
|
+
*/
|
|
58
|
+
getStats(): Promise<SkillProfile[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Read all experiences from the NDJSON file.
|
|
61
|
+
*/
|
|
62
|
+
private readAll;
|
|
63
|
+
/**
|
|
64
|
+
* Ensure the store file and its parent directories exist.
|
|
65
|
+
*/
|
|
66
|
+
private ensureFileExists;
|
|
67
|
+
}
|