@ouro.bot/cli 0.1.0-alpha.780 → 0.1.0-alpha.782
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/changelog.json
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
|
|
3
3
|
"versions": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.1.0-alpha.782",
|
|
6
|
+
"changes": [
|
|
7
|
+
"Clarify external-event timed-wake tool guidance and verify single-disposition schema validation."
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"version": "0.1.0-alpha.781",
|
|
12
|
+
"changes": [
|
|
13
|
+
"Allow reused advertised tool subschemas without mistaking them for cycles, so Sanctuary external-event disposition validation can accept batch schemas."
|
|
14
|
+
]
|
|
15
|
+
},
|
|
4
16
|
{
|
|
5
17
|
"version": "0.1.0-alpha.780",
|
|
6
18
|
"changes": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<?xml version="1.0"?>
|
|
2
2
|
<Container version="2">
|
|
3
3
|
<Name>Mendelow Cloud Butler</Name>
|
|
4
|
-
<Repository>ghcr.io/ourostack/ouroboros-butler:0.1.0-alpha.
|
|
4
|
+
<Repository>ghcr.io/ourostack/ouroboros-butler:0.1.0-alpha.782</Repository>
|
|
5
5
|
<Registry>https://github.com/ourostack/ouroboros/pkgs/container/ouroboros-butler</Registry>
|
|
6
6
|
<Network>host</Network>
|
|
7
7
|
<Shell>sh</Shell>
|
|
@@ -24,23 +24,28 @@ function unsupportedSchemaFeature(value, seen = new WeakSet()) {
|
|
|
24
24
|
if (seen.has(value))
|
|
25
25
|
return "cyclic schemas are unsupported";
|
|
26
26
|
seen.add(value);
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
try {
|
|
28
|
+
if (Array.isArray(value)) {
|
|
29
|
+
for (const entry of value) {
|
|
30
|
+
const reason = unsupportedSchemaFeature(entry, seen);
|
|
31
|
+
if (reason)
|
|
32
|
+
return reason;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
37
|
+
if (key === "patternProperties")
|
|
38
|
+
return "patternProperties is unsupported";
|
|
39
|
+
if (key === "type" && (entry === "null" || (Array.isArray(entry) && entry.includes("null")))) {
|
|
40
|
+
return "null schema types are unsupported";
|
|
41
|
+
}
|
|
29
42
|
const reason = unsupportedSchemaFeature(entry, seen);
|
|
30
43
|
if (reason)
|
|
31
44
|
return reason;
|
|
32
45
|
}
|
|
33
|
-
return undefined;
|
|
34
46
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return "patternProperties is unsupported";
|
|
38
|
-
if (key === "type" && (entry === "null" || (Array.isArray(entry) && entry.includes("null")))) {
|
|
39
|
-
return "null schema types are unsupported";
|
|
40
|
-
}
|
|
41
|
-
const reason = unsupportedSchemaFeature(entry, seen);
|
|
42
|
-
if (reason)
|
|
43
|
-
return reason;
|
|
47
|
+
finally {
|
|
48
|
+
seen.delete(value);
|
|
44
49
|
}
|
|
45
50
|
return undefined;
|
|
46
51
|
}
|
|
@@ -55,14 +55,21 @@ const externalEventDispositionProperties = {
|
|
|
55
55
|
stewardPolicyVersion: { type: "number", description: "Exact current policy version used for this decision" },
|
|
56
56
|
decision: { type: "string", enum: ["silent", "act", "ask", "report"] },
|
|
57
57
|
reason: { type: "string", description: "Short plain-language reason for the decision" },
|
|
58
|
-
nextWake: { type: "string", enum: ["on_change", "on_escalation", "on_recovery", "at"] },
|
|
59
|
-
wakeAt: { type: "string", description: "ISO time required when nextWake=at" },
|
|
60
|
-
awaitId: { type: "string", description: "Existing
|
|
58
|
+
nextWake: { type: "string", enum: ["on_change", "on_escalation", "on_recovery", "at"], description: "Use on_change unless you already called await_condition for this exact event and are supplying its awaitId" },
|
|
59
|
+
wakeAt: { type: "string", description: "ISO time required only when nextWake=at" },
|
|
60
|
+
awaitId: { type: "string", description: "Existing await_condition receipt required when nextWake=at; never invent one" },
|
|
61
61
|
careId: { type: "string", description: "Existing Care adopted for this incident, if any" },
|
|
62
62
|
actionRefs: { type: "array", items: { type: "string" } },
|
|
63
63
|
verificationRefs: { type: "array", items: { type: "string" } },
|
|
64
64
|
};
|
|
65
65
|
const externalEventDispositionRequired = ["recordPath", "expectedGeneration", "classifiedRevision", "classification", "stewardPolicyKind", "decision", "reason", "nextWake"];
|
|
66
|
+
const externalEventDispositionBatchSchema = {
|
|
67
|
+
type: "array",
|
|
68
|
+
minItems: 1,
|
|
69
|
+
maxItems: 32,
|
|
70
|
+
description: "All exact leases from one coalesced external-event turn",
|
|
71
|
+
items: { type: "object", properties: externalEventDispositionProperties, required: externalEventDispositionRequired, additionalProperties: false },
|
|
72
|
+
};
|
|
66
73
|
function prepareExternalEventDisposition(a, ctx) {
|
|
67
74
|
const agentName = (0, identity_1.getAgentName)();
|
|
68
75
|
const agentEventRoot = path.resolve((0, router_1.getExternalEventRoot)(), agentName);
|
|
@@ -211,17 +218,11 @@ exports.continuityToolDefinitions = [
|
|
|
211
218
|
type: "object",
|
|
212
219
|
properties: {
|
|
213
220
|
...externalEventDispositionProperties,
|
|
214
|
-
batch:
|
|
215
|
-
type: "array",
|
|
216
|
-
minItems: 1,
|
|
217
|
-
maxItems: 32,
|
|
218
|
-
description: "All exact leases from one coalesced external-event turn",
|
|
219
|
-
items: { type: "object", properties: externalEventDispositionProperties, required: externalEventDispositionRequired, additionalProperties: false },
|
|
220
|
-
},
|
|
221
|
+
batch: externalEventDispositionBatchSchema,
|
|
221
222
|
},
|
|
222
223
|
oneOf: [
|
|
223
|
-
{ required: externalEventDispositionRequired },
|
|
224
|
-
{ required: ["batch"] },
|
|
224
|
+
{ type: "object", properties: externalEventDispositionProperties, required: externalEventDispositionRequired },
|
|
225
|
+
{ type: "object", properties: { batch: externalEventDispositionBatchSchema }, required: ["batch"] },
|
|
225
226
|
],
|
|
226
227
|
additionalProperties: false,
|
|
227
228
|
},
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ouro.bot/cli",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.782",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@ouro.bot/cli",
|
|
9
|
-
"version": "0.1.0-alpha.
|
|
9
|
+
"version": "0.1.0-alpha.782",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.78.0",
|
|
12
12
|
"@azure/identity": "^4.13.0",
|