@open-agent-toolkit/cli 0.2.72 → 0.2.73
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/assets/agents/oat-reviewer.md +4 -3
- package/assets/agents/recon-worker.md +42 -8
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/workflows/skills/recon.md +114 -23
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-review-receive/SKILL.md +14 -1
- package/assets/skills/recon/SKILL.md +103 -40
- package/assets/skills/recon/references/packet-contract.md +150 -67
- package/assets/skills/recon/references/profiles.md +38 -16
- package/assets/skills/recon/references/worker-contract.md +39 -8
- package/assets/skills/recon/scripts/lib/contracts.mjs +703 -55
- package/assets/skills/recon/scripts/lib/routing.mjs +588 -0
- package/assets/skills/recon/scripts/lib/validated-run.mjs +2 -0
- package/assets/skills/recon/scripts/prepare-routing.mjs +88 -0
- package/assets/skills/recon/scripts/render-packet.mjs +69 -1
- package/assets/skills/recon/scripts/validate-packet.mjs +473 -56
- package/assets/skills/subagent-orchestration/SKILL.md +18 -9
- package/assets/skills/subagent-orchestration/references/model-selection-principles.md +17 -8
- package/package.json +2 -2
|
@@ -48,8 +48,75 @@ function bulletLines(values, empty = 'None.') {
|
|
|
48
48
|
: [`- ${empty}`];
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
const targetAxisLabels = [
|
|
52
|
+
['provider', 'provider'],
|
|
53
|
+
['route', 'route'],
|
|
54
|
+
['role', 'role'],
|
|
55
|
+
['model', 'model'],
|
|
56
|
+
['effort', 'effort'],
|
|
57
|
+
['reasoningMode', 'reasoning mode'],
|
|
58
|
+
['serviceTier', 'service tier'],
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
function formatIntendedTarget(target) {
|
|
62
|
+
return targetAxisLabels
|
|
63
|
+
.map(([field, label]) => {
|
|
64
|
+
const value =
|
|
65
|
+
target[field] === null
|
|
66
|
+
? 'unsupported / not independently requested'
|
|
67
|
+
: target[field];
|
|
68
|
+
return `${label}=${escapeInline(value)}`;
|
|
69
|
+
})
|
|
70
|
+
.join('; ');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function intendedRoutingLines(routing) {
|
|
74
|
+
return routing.waves.map((wave) => {
|
|
75
|
+
return `- **${escapeInline(wave.waveId)}** — mode=${escapeInline(wave.mode)}; class/floor=${escapeInline(wave.taskClass)}/${escapeInline(wave.classFloor)}; lanes=${wave.lanes.length}; conditional=${wave.conditional ? 'yes' : 'no'}; ${formatIntendedTarget(wave.target)}; rationale=${escapeInline(wave.selectionReason)}`;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function conditionalOutcomeLines(manifest, routing) {
|
|
80
|
+
const outcomesById = new Map(
|
|
81
|
+
(manifest.conditionOutcomes ?? []).map((outcome) => [
|
|
82
|
+
outcome.conditionId,
|
|
83
|
+
outcome,
|
|
84
|
+
]),
|
|
85
|
+
);
|
|
86
|
+
return routing.conditions.map((condition) => {
|
|
87
|
+
const outcome = outcomesById.get(condition.conditionId);
|
|
88
|
+
const evidence = outcome.evidence
|
|
89
|
+
.map((reference) => escapeInline(reference.path))
|
|
90
|
+
.join(', ');
|
|
91
|
+
return `- **${escapeInline(condition.conditionId)}** — ${escapeInline(condition.predicate)} → ${escapeInline(condition.destinationWaveId)}: **${escapeInline(outcome.disposition)}** — ${escapeInline(outcome.reason)}; predecessor evidence: ${evidence || 'none'}`;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function intendedRoutingSection(manifest, routing) {
|
|
96
|
+
return [
|
|
97
|
+
'',
|
|
98
|
+
'## Intended Routing',
|
|
99
|
+
'',
|
|
100
|
+
`- **Manifest routing version:** ${routing.sourceSchemaVersion}`,
|
|
101
|
+
`- **Approved authority:** ${escapeInline(routing.authority)}`,
|
|
102
|
+
`- **Approved limits:** ${routing.waves.length} waves; ${routing.waves.reduce((count, wave) => count + wave.lanes.length, 0)} lanes; concurrency ${routing.maxConcurrency}; deadline ${routing.deadlineSeconds}s; retries ${routing.retryLimit}`,
|
|
103
|
+
'- **Evidence boundary:** These are normalized approved intended targets and root-recorded condition dispositions. They are not launcher receipts or observations of native runtime identity, usage, cost, or conclusion correctness.',
|
|
104
|
+
'',
|
|
105
|
+
'### Waves',
|
|
106
|
+
'',
|
|
107
|
+
...intendedRoutingLines(routing),
|
|
108
|
+
'',
|
|
109
|
+
'### Conditional Outcomes',
|
|
110
|
+
'',
|
|
111
|
+
...bulletLines(
|
|
112
|
+
conditionalOutcomeLines(manifest, routing),
|
|
113
|
+
'None declared.',
|
|
114
|
+
),
|
|
115
|
+
];
|
|
116
|
+
}
|
|
117
|
+
|
|
51
118
|
export function renderPacketDocument(validatedRun) {
|
|
52
|
-
const { manifest, ledger } = assertValidatedRun(validatedRun);
|
|
119
|
+
const { manifest, ledger, routing } = assertValidatedRun(validatedRun);
|
|
53
120
|
const evidenceById = new Map(
|
|
54
121
|
ledger.evidence.map((evidence) => [evidence.id, evidence]),
|
|
55
122
|
);
|
|
@@ -143,6 +210,7 @@ export function renderPacketDocument(validatedRun) {
|
|
|
143
210
|
(gap) => `**${escapeInline(gap.code)}:** ${escapeInline(gap.message)}`,
|
|
144
211
|
),
|
|
145
212
|
),
|
|
213
|
+
...intendedRoutingSection(manifest, routing),
|
|
146
214
|
'',
|
|
147
215
|
'## Provenance',
|
|
148
216
|
'',
|