pluribus-context 0.3.27 → 0.3.29
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/docs/context-budget-receipts.md +47 -2
- package/examples/agent-skills/context-receipts/README.md +6 -2
- package/examples/agent-skills/context-receipts/SKILL.md +36 -0
- package/examples/context-input-evidence/convert-subagent-toolsearch-propagation-log.mjs +171 -0
- package/examples/context-input-evidence/sample-subagent-toolsearch-propagation-log.jsonl +5 -0
- package/examples/context-input-evidence/subagent-toolsearch-propagation-otel-trace.json +522 -0
- package/examples/context-input-evidence/subagent-toolsearch-propagation-receipt.ndjson +4 -0
- package/package.json +1 -1
- package/src/utils/version.js +1 -1
|
@@ -63,6 +63,50 @@ Public trace:
|
|
|
63
63
|
|
|
64
64
|
- `examples/context-input-evidence/subagent-context-budget-otel-trace.json`
|
|
65
65
|
|
|
66
|
+
## Per-agent MCP injection
|
|
67
|
+
|
|
68
|
+
Role-specific subagents may need different MCP surfaces: a testing agent might need `testing` and `github`, while deployment, analytics, email, or browser servers should stay outside that boot context. The receipt should prove the policy boundary before the first task:
|
|
69
|
+
|
|
70
|
+
- role/session id for the subagent without raw instructions;
|
|
71
|
+
- available server count/hash for the role;
|
|
72
|
+
- excluded server count/hash before boot;
|
|
73
|
+
- loaded vs deferred tool-definition counts;
|
|
74
|
+
- startup token bucket after the policy was applied; and
|
|
75
|
+
- an explicit audit gap that this proves injection scope, not semantic tool quality.
|
|
76
|
+
|
|
77
|
+
Minimal events:
|
|
78
|
+
|
|
79
|
+
- `subagent.mcp_policy.applied`
|
|
80
|
+
- `subagent.context_boot.evaluated`
|
|
81
|
+
|
|
82
|
+
## ToolSearch propagation into subagents
|
|
83
|
+
|
|
84
|
+
When MCP tools are deferred behind `ToolSearch`, subagent bugs can hide in three different layers:
|
|
85
|
+
|
|
86
|
+
- the parent/orchestrator policy intended to expose or exclude MCP/ToolSearch;
|
|
87
|
+
- the subagent `tools:` declaration made `ToolSearch` available, stripped it, or froze an older registry; and
|
|
88
|
+
- the runtime filter actually exposed the deferred-tools channel after spawn.
|
|
89
|
+
|
|
90
|
+
The receipt should make those layers distinguishable without raw tool schemas, prompts, agent files, or private paths. It should include:
|
|
91
|
+
|
|
92
|
+
- spawn path and whether skill context was active;
|
|
93
|
+
- coarse bucket for parent intermediate tool calls before spawn;
|
|
94
|
+
- `tools:` declaration shape such as wildcard, explicit include, or exclusion style;
|
|
95
|
+
- whether `ToolSearch` was declared and actually exposed to the subagent;
|
|
96
|
+
- parent vs subagent MCP server count buckets;
|
|
97
|
+
- loaded vs deferred tool-definition buckets; and
|
|
98
|
+
- a `filtered_by` or `filter_reason` category.
|
|
99
|
+
|
|
100
|
+
Runnable fixture:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
node examples/context-input-evidence/convert-subagent-toolsearch-propagation-log.mjs
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Public trace:
|
|
107
|
+
|
|
108
|
+
- `examples/context-input-evidence/subagent-toolsearch-propagation-otel-trace.json`
|
|
109
|
+
|
|
66
110
|
## Delegation boundary
|
|
67
111
|
|
|
68
112
|
A subagent can save parent context at boot and still lose the benefit if raw child output is pasted back into the parent. The receipt should prove:
|
|
@@ -146,7 +190,8 @@ Instead of “why is my subagent bad?”, ask for a receipt or debug JSON that c
|
|
|
146
190
|
2. How many were loaded into the parent?
|
|
147
191
|
3. How many were loaded into the subagent?
|
|
148
192
|
4. How many were suppressed/deferred?
|
|
149
|
-
5.
|
|
150
|
-
6.
|
|
193
|
+
5. For a subagent, which MCP servers were allowed and which were excluded before boot?
|
|
194
|
+
6. What token bucket remained before the first tool call?
|
|
195
|
+
7. Did raw child output return to the parent, or only a bounded summary?
|
|
151
196
|
|
|
152
197
|
That is the narrow wedge for Pluribus: context-budget evidence across agent boundaries, not another memory store or tool router.
|
|
@@ -13,10 +13,14 @@ It is intentionally markdown-only so it can be copied into a local skills direct
|
|
|
13
13
|
Ask an agent or harness using the skill to emit a receipt for one workflow and verify these constraints:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
grep -E 'mcp\.tool_index\.loaded|context\.skill\.registry\.index\.loaded|subagent\.delegation\.requested' receipt.jsonl
|
|
16
|
+
grep -E 'mcp\.tool_index\.loaded|context\.skill\.registry\.index\.loaded|subagent\.mcp_policy\.applied|subagent\.toolsearch\.propagation\.evaluated|subagent\.delegation\.requested' receipt.jsonl
|
|
17
17
|
grep -E 'raw_(schema|query|args|result|output)_copied":false|raw.*CopiedToReceipt":false' receipt.jsonl
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
Then manually check that the receipt contains counts, hashes, ids, buckets, and `audit_gap`, but does **not** contain private prompts, raw schemas, tool args/results, skill bodies, memory bodies, customer names, secrets, or transcript text.
|
|
21
21
|
|
|
22
|
-
For executable fixture examples, see [`../../context-input-evidence/`](../../context-input-evidence/)
|
|
22
|
+
For executable fixture examples, see [`../../context-input-evidence/`](../../context-input-evidence/), including the ToolSearch propagation smoke:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
node ../../context-input-evidence/convert-subagent-toolsearch-propagation-log.mjs
|
|
26
|
+
```
|
|
@@ -59,6 +59,42 @@ Minimal event names:
|
|
|
59
59
|
- `context.input.loaded`
|
|
60
60
|
- `context.input.candidate_suppressed`
|
|
61
61
|
|
|
62
|
+
## Per-agent MCP injection smoke
|
|
63
|
+
|
|
64
|
+
For role-specific subagents or per-agent MCP configs, prove the policy boundary before debugging model quality:
|
|
65
|
+
|
|
66
|
+
- which subagent role/session requested tools;
|
|
67
|
+
- which MCP servers were available to that role;
|
|
68
|
+
- which servers were explicitly excluded before boot;
|
|
69
|
+
- whether startup loaded full schemas or only a compact index;
|
|
70
|
+
- how many tool definitions stayed deferred/suppressed; and
|
|
71
|
+
- the startup token bucket after policy was applied.
|
|
72
|
+
|
|
73
|
+
Minimal JSONL event names:
|
|
74
|
+
|
|
75
|
+
```jsonl
|
|
76
|
+
{"event":"subagent.mcp_policy.applied","subagent_role":"testing","available_server_count":2,"available_servers_hash":"sha256:...","excluded_server_count":5,"excluded_servers_hash":"sha256:...","policy_source":"role_config","raw_server_names_copied":false}
|
|
77
|
+
{"event":"subagent.context_boot.evaluated","subagent_role":"testing","loaded_tool_definition_count":0,"deferred_tool_definition_count":48,"startup_token_bucket":"50k_75k","raw_schema_copied":false,"audit_gap":"proves injection boundary, not tool relevance"}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## ToolSearch propagation smoke
|
|
81
|
+
|
|
82
|
+
For subagents that should inherit MCP through `ToolSearch`, distinguish policy, declaration, and runtime filtering:
|
|
83
|
+
|
|
84
|
+
- did the parent/orchestrator intend to expose MCP or exclude it for this subagent?
|
|
85
|
+
- was the subagent spawned immediately or after parent tool calls/orchestration work?
|
|
86
|
+
- was the `tools:` declaration wildcard, explicit include, or exclusion style?
|
|
87
|
+
- was `ToolSearch` declared and was it actually exposed in the subagent tool surface?
|
|
88
|
+
- did MCP servers/tool definitions stay deferred, or did the channel collapse to zero?
|
|
89
|
+
- was the agent registry loaded at session boot, making newly added agent files invisible until restart?
|
|
90
|
+
|
|
91
|
+
Minimal JSONL event names:
|
|
92
|
+
|
|
93
|
+
```jsonl
|
|
94
|
+
{"event":"subagent.toolsearch.propagation.evaluated","spawn_path":"Task","tools_declaration_shape":"enumerated_include","toolsearch_declared":false,"toolsearch_exposed":false,"mcp_servers_available_bucket":"0","deferred_tool_definitions_bucket":"0","filtered_by":"frontmatter_tools_policy_or_runtime_filter","raw_tool_schemas_copied":false}
|
|
95
|
+
{"event":"subagent.toolsearch.matrix.completed","tested_axis":"tools_frontmatter_shape","audit_gap":"proves ToolSearch exposure, not semantic tool relevance or runtime call success"}
|
|
96
|
+
```
|
|
97
|
+
|
|
62
98
|
## Subagent / manager boundary smoke
|
|
63
99
|
|
|
64
100
|
For subagents, manager agents, or child workers, answer:
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { readFileSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { dirname, join, resolve } from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
|
|
7
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
const inputPath = process.argv[2] ? resolve(process.argv[2]) : join(here, 'sample-subagent-toolsearch-propagation-log.jsonl');
|
|
9
|
+
const receiptPath = process.argv[3] ? resolve(process.argv[3]) : join(here, 'subagent-toolsearch-propagation-receipt.ndjson');
|
|
10
|
+
const tracePath = process.argv[4] ? resolve(process.argv[4]) : join(here, 'subagent-toolsearch-propagation-otel-trace.json');
|
|
11
|
+
|
|
12
|
+
function sha256(value) {
|
|
13
|
+
return `sha256:${createHash('sha256').update(value ?? '').digest('hex')}`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function hashRef(value) {
|
|
17
|
+
return sha256(value ?? '').slice(0, 19);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function readJsonl(path) {
|
|
21
|
+
return readFileSync(path, 'utf8')
|
|
22
|
+
.trim()
|
|
23
|
+
.split('\n')
|
|
24
|
+
.filter(Boolean)
|
|
25
|
+
.map((line, index) => {
|
|
26
|
+
try {
|
|
27
|
+
return JSON.parse(line);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
throw new Error(`Invalid JSONL at ${path}:${index + 1}: ${error.message}`);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function unixNano(isoTimestamp) {
|
|
35
|
+
return `${BigInt(Date.parse(isoTimestamp)) * 1_000_000n}`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function otelValue(value) {
|
|
39
|
+
if (typeof value === 'boolean') return { boolValue: value };
|
|
40
|
+
if (typeof value === 'number' && Number.isInteger(value)) return { intValue: String(value) };
|
|
41
|
+
if (typeof value === 'number') return { doubleValue: value };
|
|
42
|
+
if (value == null) return { stringValue: '' };
|
|
43
|
+
return { stringValue: String(value) };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function attributesToOtel(attributes) {
|
|
47
|
+
return Object.entries(attributes).map(([key, value]) => ({ key, value: otelValue(value) }));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function countBucket(value) {
|
|
51
|
+
if (value === 0) return 'zero';
|
|
52
|
+
if (value <= 5) return 'under_5';
|
|
53
|
+
if (value <= 25) return 'under_25';
|
|
54
|
+
if (value <= 100) return 'under_100';
|
|
55
|
+
if (value <= 500) return 'under_500';
|
|
56
|
+
return 'over_500';
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const records = readJsonl(inputPath);
|
|
60
|
+
const session = records.find((record) => record.type === 'session.start');
|
|
61
|
+
const probes = records.filter((record) => record.type === 'subagent.spawn.probe');
|
|
62
|
+
const completed = records.find((record) => record.type === 'subagent.toolsearch.matrix.completed');
|
|
63
|
+
|
|
64
|
+
if (!session || probes.length === 0 || !completed) {
|
|
65
|
+
throw new Error(`Expected session.start, subagent.spawn.probe records, and subagent.toolsearch.matrix.completed in ${inputPath}`);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const traceSeed = `${session.session_id}:${session.conversation_id}:subagent-toolsearch-propagation`;
|
|
69
|
+
const traceId = sha256(traceSeed).replace('sha256:', '').slice(0, 32);
|
|
70
|
+
const spanId = sha256(`${traceSeed}:span`).replace('sha256:', '').slice(0, 16);
|
|
71
|
+
|
|
72
|
+
const events = [
|
|
73
|
+
...probes.map((record) => ({
|
|
74
|
+
trace_id: traceId,
|
|
75
|
+
span_id: spanId,
|
|
76
|
+
name: 'subagent.toolsearch.propagation.evaluated',
|
|
77
|
+
time: record.time,
|
|
78
|
+
attributes: {
|
|
79
|
+
'session.id': session.session_id,
|
|
80
|
+
'gen_ai.conversation.id': session.conversation_id,
|
|
81
|
+
'agent.name': session.agent,
|
|
82
|
+
'subagent.type_hash': hashRef(record.subagent_type),
|
|
83
|
+
'subagent.spawn.path': record.spawn_path,
|
|
84
|
+
'subagent.skill_context_active': record.skill_context_active,
|
|
85
|
+
'subagent.parent_intermediate_tool_call_count_bucket': countBucket(record.parent_intermediate_tool_call_count),
|
|
86
|
+
'subagent.tools.declaration_shape': record.tools_declaration_shape,
|
|
87
|
+
'subagent.tools.toolsearch_declared': record.toolsearch_declared,
|
|
88
|
+
'subagent.tools.toolsearch_exposed': record.toolsearch_exposed,
|
|
89
|
+
'subagent.mcp.parent_server_count_bucket': countBucket(record.mcp_server_count_parent),
|
|
90
|
+
'subagent.mcp.available_server_count_bucket': countBucket(record.mcp_server_count_subagent),
|
|
91
|
+
'subagent.mcp.loaded_tool_definition_count_bucket': countBucket(record.loaded_tool_definition_count),
|
|
92
|
+
'subagent.mcp.deferred_tool_definition_count_bucket': countBucket(record.deferred_tool_definition_count),
|
|
93
|
+
'subagent.tools.filter_reason': record.filter_reason,
|
|
94
|
+
'subagent.tools.declaration_hash': sha256(record.raw_tools_declaration),
|
|
95
|
+
'privacy.raw_tools_declaration_recorded': false,
|
|
96
|
+
'privacy.raw_tool_schemas_recorded': false,
|
|
97
|
+
'privacy.raw_prompts_recorded': false,
|
|
98
|
+
'privacy.raw_paths_recorded': false
|
|
99
|
+
}
|
|
100
|
+
})),
|
|
101
|
+
{
|
|
102
|
+
trace_id: traceId,
|
|
103
|
+
span_id: spanId,
|
|
104
|
+
name: 'subagent.toolsearch.matrix.completed',
|
|
105
|
+
time: completed.time,
|
|
106
|
+
attributes: {
|
|
107
|
+
'session.id': session.session_id,
|
|
108
|
+
'gen_ai.conversation.id': session.conversation_id,
|
|
109
|
+
'subagent.toolsearch.tested_axis': completed.tested_axis,
|
|
110
|
+
'subagent.toolsearch.probe_count_bucket': countBucket(completed.probe_count),
|
|
111
|
+
'subagent.toolsearch.passing_probe_count_bucket': countBucket(completed.passing_probe_count),
|
|
112
|
+
'subagent.toolsearch.failing_probe_count_bucket': countBucket(completed.failing_probe_count),
|
|
113
|
+
'subagent.toolsearch.recommended_next_probe_hash': hashRef(completed.recommended_next_probe),
|
|
114
|
+
'subagent.toolsearch.audit_gap': completed.audit_gap
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
];
|
|
118
|
+
|
|
119
|
+
writeFileSync(receiptPath, `${events.map((event) => JSON.stringify(event)).join('\n')}\n`);
|
|
120
|
+
|
|
121
|
+
const trace = {
|
|
122
|
+
resourceSpans: [
|
|
123
|
+
{
|
|
124
|
+
resource: {
|
|
125
|
+
attributes: attributesToOtel({
|
|
126
|
+
'service.name': 'pluribus-subagent-toolsearch-propagation-receipt-demo',
|
|
127
|
+
'service.version': '0.0.0-fixture',
|
|
128
|
+
'deployment.environment.name': 'local-fixture'
|
|
129
|
+
})
|
|
130
|
+
},
|
|
131
|
+
scopeSpans: [
|
|
132
|
+
{
|
|
133
|
+
scope: {
|
|
134
|
+
name: 'pluribus.context_input_evidence.subagent_toolsearch_propagation_demo',
|
|
135
|
+
version: '0.0.0-fixture'
|
|
136
|
+
},
|
|
137
|
+
spans: [
|
|
138
|
+
{
|
|
139
|
+
traceId,
|
|
140
|
+
spanId,
|
|
141
|
+
parentSpanId: '',
|
|
142
|
+
name: 'agent.subagent.toolsearch.propagation',
|
|
143
|
+
kind: 1,
|
|
144
|
+
startTimeUnixNano: unixNano(probes[0].time),
|
|
145
|
+
endTimeUnixNano: unixNano(completed.time),
|
|
146
|
+
attributes: attributesToOtel({
|
|
147
|
+
'session.id': session.session_id,
|
|
148
|
+
'gen_ai.conversation.id': session.conversation_id,
|
|
149
|
+
'agent.name': session.agent,
|
|
150
|
+
'workspace.name_hash': hashRef(session.workspace),
|
|
151
|
+
'gen_ai.request.model': session.model,
|
|
152
|
+
'subagent.context.receipt.scope': 'toolsearch_propagation_matrix'
|
|
153
|
+
}),
|
|
154
|
+
events: events.map((event) => ({
|
|
155
|
+
name: event.name,
|
|
156
|
+
timeUnixNano: unixNano(event.time),
|
|
157
|
+
attributes: attributesToOtel(event.attributes)
|
|
158
|
+
})),
|
|
159
|
+
status: { code: 1 }
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
writeFileSync(tracePath, `${JSON.stringify(trace, null, 2)}\n`);
|
|
169
|
+
|
|
170
|
+
console.log(`Wrote ${receiptPath}`);
|
|
171
|
+
console.log(`Wrote ${tracePath}`);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{"type":"session.start","time":"2026-05-25T20:00:00.000Z","session_id":"sess_toolsearch_propagation_demo","conversation_id":"conv_toolsearch_propagation_demo","agent":"claude-code","workspace":"private-repo-redacted","model":"claude-opus-4.7"}
|
|
2
|
+
{"type":"subagent.spawn.probe","time":"2026-05-25T20:00:01.000Z","subagent_type":"architect","spawn_path":"Task","skill_context_active":false,"parent_intermediate_tool_call_count":0,"tools_declaration_shape":"enumerated_include","toolsearch_declared":false,"toolsearch_exposed":false,"mcp_server_count_parent":6,"mcp_server_count_subagent":0,"deferred_tool_definition_count":0,"loaded_tool_definition_count":0,"filter_reason":"frontmatter_tools_policy_or_runtime_filter","raw_tools_declaration":"Read, Write, Edit, Glob, Grep, Bash, Task, WebSearch"}
|
|
3
|
+
{"type":"subagent.spawn.probe","time":"2026-05-25T20:00:02.000Z","subagent_type":"general-purpose","spawn_path":"Task","skill_context_active":false,"parent_intermediate_tool_call_count":0,"tools_declaration_shape":"wildcard","toolsearch_declared":true,"toolsearch_exposed":true,"mcp_server_count_parent":6,"mcp_server_count_subagent":6,"deferred_tool_definition_count":49,"loaded_tool_definition_count":0,"filter_reason":"wildcard_allows_deferred_tool_channel","raw_tools_declaration":"*"}
|
|
4
|
+
{"type":"subagent.spawn.probe","time":"2026-05-25T20:00:03.000Z","subagent_type":"explore","spawn_path":"Task","skill_context_active":false,"parent_intermediate_tool_call_count":0,"tools_declaration_shape":"exclusion_style","toolsearch_declared":false,"toolsearch_exposed":false,"mcp_server_count_parent":6,"mcp_server_count_subagent":0,"deferred_tool_definition_count":0,"loaded_tool_definition_count":0,"filter_reason":"exclusion_style_did_not_preserve_deferred_tool_channel","raw_tools_declaration":"All tools except Agent, ExitPlanMode, Edit, Write, NotebookEdit"}
|
|
5
|
+
{"type":"subagent.toolsearch.matrix.completed","time":"2026-05-25T20:00:04.000Z","tested_axis":"tools_frontmatter_shape","probe_count":3,"passing_probe_count":1,"failing_probe_count":2,"recommended_next_probe":"fresh_session_explicit_toolsearch_in_tools_list","audit_gap":"proves ToolSearch exposure and MCP count buckets, not semantic tool relevance or runtime tool-call success"}
|
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
{
|
|
2
|
+
"resourceSpans": [
|
|
3
|
+
{
|
|
4
|
+
"resource": {
|
|
5
|
+
"attributes": [
|
|
6
|
+
{
|
|
7
|
+
"key": "service.name",
|
|
8
|
+
"value": {
|
|
9
|
+
"stringValue": "pluribus-subagent-toolsearch-propagation-receipt-demo"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"key": "service.version",
|
|
14
|
+
"value": {
|
|
15
|
+
"stringValue": "0.0.0-fixture"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"key": "deployment.environment.name",
|
|
20
|
+
"value": {
|
|
21
|
+
"stringValue": "local-fixture"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"scopeSpans": [
|
|
27
|
+
{
|
|
28
|
+
"scope": {
|
|
29
|
+
"name": "pluribus.context_input_evidence.subagent_toolsearch_propagation_demo",
|
|
30
|
+
"version": "0.0.0-fixture"
|
|
31
|
+
},
|
|
32
|
+
"spans": [
|
|
33
|
+
{
|
|
34
|
+
"traceId": "503722a46b27d38ce02b9ba8c7b445f6",
|
|
35
|
+
"spanId": "b338ade0fe167184",
|
|
36
|
+
"parentSpanId": "",
|
|
37
|
+
"name": "agent.subagent.toolsearch.propagation",
|
|
38
|
+
"kind": 1,
|
|
39
|
+
"startTimeUnixNano": "1779739201000000000",
|
|
40
|
+
"endTimeUnixNano": "1779739204000000000",
|
|
41
|
+
"attributes": [
|
|
42
|
+
{
|
|
43
|
+
"key": "session.id",
|
|
44
|
+
"value": {
|
|
45
|
+
"stringValue": "sess_toolsearch_propagation_demo"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"key": "gen_ai.conversation.id",
|
|
50
|
+
"value": {
|
|
51
|
+
"stringValue": "conv_toolsearch_propagation_demo"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"key": "agent.name",
|
|
56
|
+
"value": {
|
|
57
|
+
"stringValue": "claude-code"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"key": "workspace.name_hash",
|
|
62
|
+
"value": {
|
|
63
|
+
"stringValue": "sha256:6d00f89e3ce3"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"key": "gen_ai.request.model",
|
|
68
|
+
"value": {
|
|
69
|
+
"stringValue": "claude-opus-4.7"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"key": "subagent.context.receipt.scope",
|
|
74
|
+
"value": {
|
|
75
|
+
"stringValue": "toolsearch_propagation_matrix"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"events": [
|
|
80
|
+
{
|
|
81
|
+
"name": "subagent.toolsearch.propagation.evaluated",
|
|
82
|
+
"timeUnixNano": "1779739201000000000",
|
|
83
|
+
"attributes": [
|
|
84
|
+
{
|
|
85
|
+
"key": "session.id",
|
|
86
|
+
"value": {
|
|
87
|
+
"stringValue": "sess_toolsearch_propagation_demo"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"key": "gen_ai.conversation.id",
|
|
92
|
+
"value": {
|
|
93
|
+
"stringValue": "conv_toolsearch_propagation_demo"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"key": "agent.name",
|
|
98
|
+
"value": {
|
|
99
|
+
"stringValue": "claude-code"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"key": "subagent.type_hash",
|
|
104
|
+
"value": {
|
|
105
|
+
"stringValue": "sha256:f2e40fc1edb7"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"key": "subagent.spawn.path",
|
|
110
|
+
"value": {
|
|
111
|
+
"stringValue": "Task"
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"key": "subagent.skill_context_active",
|
|
116
|
+
"value": {
|
|
117
|
+
"boolValue": false
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"key": "subagent.parent_intermediate_tool_call_count_bucket",
|
|
122
|
+
"value": {
|
|
123
|
+
"stringValue": "zero"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"key": "subagent.tools.declaration_shape",
|
|
128
|
+
"value": {
|
|
129
|
+
"stringValue": "enumerated_include"
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"key": "subagent.tools.toolsearch_declared",
|
|
134
|
+
"value": {
|
|
135
|
+
"boolValue": false
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"key": "subagent.tools.toolsearch_exposed",
|
|
140
|
+
"value": {
|
|
141
|
+
"boolValue": false
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"key": "subagent.mcp.parent_server_count_bucket",
|
|
146
|
+
"value": {
|
|
147
|
+
"stringValue": "under_25"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"key": "subagent.mcp.available_server_count_bucket",
|
|
152
|
+
"value": {
|
|
153
|
+
"stringValue": "zero"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"key": "subagent.mcp.loaded_tool_definition_count_bucket",
|
|
158
|
+
"value": {
|
|
159
|
+
"stringValue": "zero"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"key": "subagent.mcp.deferred_tool_definition_count_bucket",
|
|
164
|
+
"value": {
|
|
165
|
+
"stringValue": "zero"
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"key": "subagent.tools.filter_reason",
|
|
170
|
+
"value": {
|
|
171
|
+
"stringValue": "frontmatter_tools_policy_or_runtime_filter"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"key": "subagent.tools.declaration_hash",
|
|
176
|
+
"value": {
|
|
177
|
+
"stringValue": "sha256:318352b16ca17e43ab5aef62a29dc33fdfd01285efba75a7ba97b4be735d9ef1"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"key": "privacy.raw_tools_declaration_recorded",
|
|
182
|
+
"value": {
|
|
183
|
+
"boolValue": false
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"key": "privacy.raw_tool_schemas_recorded",
|
|
188
|
+
"value": {
|
|
189
|
+
"boolValue": false
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"key": "privacy.raw_prompts_recorded",
|
|
194
|
+
"value": {
|
|
195
|
+
"boolValue": false
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"key": "privacy.raw_paths_recorded",
|
|
200
|
+
"value": {
|
|
201
|
+
"boolValue": false
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "subagent.toolsearch.propagation.evaluated",
|
|
208
|
+
"timeUnixNano": "1779739202000000000",
|
|
209
|
+
"attributes": [
|
|
210
|
+
{
|
|
211
|
+
"key": "session.id",
|
|
212
|
+
"value": {
|
|
213
|
+
"stringValue": "sess_toolsearch_propagation_demo"
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"key": "gen_ai.conversation.id",
|
|
218
|
+
"value": {
|
|
219
|
+
"stringValue": "conv_toolsearch_propagation_demo"
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"key": "agent.name",
|
|
224
|
+
"value": {
|
|
225
|
+
"stringValue": "claude-code"
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"key": "subagent.type_hash",
|
|
230
|
+
"value": {
|
|
231
|
+
"stringValue": "sha256:db45ca5bb406"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"key": "subagent.spawn.path",
|
|
236
|
+
"value": {
|
|
237
|
+
"stringValue": "Task"
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"key": "subagent.skill_context_active",
|
|
242
|
+
"value": {
|
|
243
|
+
"boolValue": false
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"key": "subagent.parent_intermediate_tool_call_count_bucket",
|
|
248
|
+
"value": {
|
|
249
|
+
"stringValue": "zero"
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"key": "subagent.tools.declaration_shape",
|
|
254
|
+
"value": {
|
|
255
|
+
"stringValue": "wildcard"
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"key": "subagent.tools.toolsearch_declared",
|
|
260
|
+
"value": {
|
|
261
|
+
"boolValue": true
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"key": "subagent.tools.toolsearch_exposed",
|
|
266
|
+
"value": {
|
|
267
|
+
"boolValue": true
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"key": "subagent.mcp.parent_server_count_bucket",
|
|
272
|
+
"value": {
|
|
273
|
+
"stringValue": "under_25"
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"key": "subagent.mcp.available_server_count_bucket",
|
|
278
|
+
"value": {
|
|
279
|
+
"stringValue": "under_25"
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"key": "subagent.mcp.loaded_tool_definition_count_bucket",
|
|
284
|
+
"value": {
|
|
285
|
+
"stringValue": "zero"
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"key": "subagent.mcp.deferred_tool_definition_count_bucket",
|
|
290
|
+
"value": {
|
|
291
|
+
"stringValue": "under_100"
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"key": "subagent.tools.filter_reason",
|
|
296
|
+
"value": {
|
|
297
|
+
"stringValue": "wildcard_allows_deferred_tool_channel"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"key": "subagent.tools.declaration_hash",
|
|
302
|
+
"value": {
|
|
303
|
+
"stringValue": "sha256:684888c0ebb17f374298b65ee2807526c066094c701bcc7ebbe1c1095f494fc1"
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"key": "privacy.raw_tools_declaration_recorded",
|
|
308
|
+
"value": {
|
|
309
|
+
"boolValue": false
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"key": "privacy.raw_tool_schemas_recorded",
|
|
314
|
+
"value": {
|
|
315
|
+
"boolValue": false
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"key": "privacy.raw_prompts_recorded",
|
|
320
|
+
"value": {
|
|
321
|
+
"boolValue": false
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"key": "privacy.raw_paths_recorded",
|
|
326
|
+
"value": {
|
|
327
|
+
"boolValue": false
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
]
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"name": "subagent.toolsearch.propagation.evaluated",
|
|
334
|
+
"timeUnixNano": "1779739203000000000",
|
|
335
|
+
"attributes": [
|
|
336
|
+
{
|
|
337
|
+
"key": "session.id",
|
|
338
|
+
"value": {
|
|
339
|
+
"stringValue": "sess_toolsearch_propagation_demo"
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"key": "gen_ai.conversation.id",
|
|
344
|
+
"value": {
|
|
345
|
+
"stringValue": "conv_toolsearch_propagation_demo"
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"key": "agent.name",
|
|
350
|
+
"value": {
|
|
351
|
+
"stringValue": "claude-code"
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"key": "subagent.type_hash",
|
|
356
|
+
"value": {
|
|
357
|
+
"stringValue": "sha256:6f281157ab24"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"key": "subagent.spawn.path",
|
|
362
|
+
"value": {
|
|
363
|
+
"stringValue": "Task"
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"key": "subagent.skill_context_active",
|
|
368
|
+
"value": {
|
|
369
|
+
"boolValue": false
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"key": "subagent.parent_intermediate_tool_call_count_bucket",
|
|
374
|
+
"value": {
|
|
375
|
+
"stringValue": "zero"
|
|
376
|
+
}
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"key": "subagent.tools.declaration_shape",
|
|
380
|
+
"value": {
|
|
381
|
+
"stringValue": "exclusion_style"
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"key": "subagent.tools.toolsearch_declared",
|
|
386
|
+
"value": {
|
|
387
|
+
"boolValue": false
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"key": "subagent.tools.toolsearch_exposed",
|
|
392
|
+
"value": {
|
|
393
|
+
"boolValue": false
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
"key": "subagent.mcp.parent_server_count_bucket",
|
|
398
|
+
"value": {
|
|
399
|
+
"stringValue": "under_25"
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"key": "subagent.mcp.available_server_count_bucket",
|
|
404
|
+
"value": {
|
|
405
|
+
"stringValue": "zero"
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"key": "subagent.mcp.loaded_tool_definition_count_bucket",
|
|
410
|
+
"value": {
|
|
411
|
+
"stringValue": "zero"
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"key": "subagent.mcp.deferred_tool_definition_count_bucket",
|
|
416
|
+
"value": {
|
|
417
|
+
"stringValue": "zero"
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"key": "subagent.tools.filter_reason",
|
|
422
|
+
"value": {
|
|
423
|
+
"stringValue": "exclusion_style_did_not_preserve_deferred_tool_channel"
|
|
424
|
+
}
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"key": "subagent.tools.declaration_hash",
|
|
428
|
+
"value": {
|
|
429
|
+
"stringValue": "sha256:7bceda7b67b76245654ccbe33f1ba47f7ee3608823be750c83112219b205aab3"
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"key": "privacy.raw_tools_declaration_recorded",
|
|
434
|
+
"value": {
|
|
435
|
+
"boolValue": false
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"key": "privacy.raw_tool_schemas_recorded",
|
|
440
|
+
"value": {
|
|
441
|
+
"boolValue": false
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"key": "privacy.raw_prompts_recorded",
|
|
446
|
+
"value": {
|
|
447
|
+
"boolValue": false
|
|
448
|
+
}
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"key": "privacy.raw_paths_recorded",
|
|
452
|
+
"value": {
|
|
453
|
+
"boolValue": false
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
]
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"name": "subagent.toolsearch.matrix.completed",
|
|
460
|
+
"timeUnixNano": "1779739204000000000",
|
|
461
|
+
"attributes": [
|
|
462
|
+
{
|
|
463
|
+
"key": "session.id",
|
|
464
|
+
"value": {
|
|
465
|
+
"stringValue": "sess_toolsearch_propagation_demo"
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"key": "gen_ai.conversation.id",
|
|
470
|
+
"value": {
|
|
471
|
+
"stringValue": "conv_toolsearch_propagation_demo"
|
|
472
|
+
}
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"key": "subagent.toolsearch.tested_axis",
|
|
476
|
+
"value": {
|
|
477
|
+
"stringValue": "tools_frontmatter_shape"
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"key": "subagent.toolsearch.probe_count_bucket",
|
|
482
|
+
"value": {
|
|
483
|
+
"stringValue": "under_5"
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
"key": "subagent.toolsearch.passing_probe_count_bucket",
|
|
488
|
+
"value": {
|
|
489
|
+
"stringValue": "under_5"
|
|
490
|
+
}
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"key": "subagent.toolsearch.failing_probe_count_bucket",
|
|
494
|
+
"value": {
|
|
495
|
+
"stringValue": "under_5"
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"key": "subagent.toolsearch.recommended_next_probe_hash",
|
|
500
|
+
"value": {
|
|
501
|
+
"stringValue": "sha256:4a49fb4516c4"
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"key": "subagent.toolsearch.audit_gap",
|
|
506
|
+
"value": {
|
|
507
|
+
"stringValue": "proves ToolSearch exposure and MCP count buckets, not semantic tool relevance or runtime tool-call success"
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
]
|
|
511
|
+
}
|
|
512
|
+
],
|
|
513
|
+
"status": {
|
|
514
|
+
"code": 1
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
]
|
|
518
|
+
}
|
|
519
|
+
]
|
|
520
|
+
}
|
|
521
|
+
]
|
|
522
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{"trace_id":"503722a46b27d38ce02b9ba8c7b445f6","span_id":"b338ade0fe167184","name":"subagent.toolsearch.propagation.evaluated","time":"2026-05-25T20:00:01.000Z","attributes":{"session.id":"sess_toolsearch_propagation_demo","gen_ai.conversation.id":"conv_toolsearch_propagation_demo","agent.name":"claude-code","subagent.type_hash":"sha256:f2e40fc1edb7","subagent.spawn.path":"Task","subagent.skill_context_active":false,"subagent.parent_intermediate_tool_call_count_bucket":"zero","subagent.tools.declaration_shape":"enumerated_include","subagent.tools.toolsearch_declared":false,"subagent.tools.toolsearch_exposed":false,"subagent.mcp.parent_server_count_bucket":"under_25","subagent.mcp.available_server_count_bucket":"zero","subagent.mcp.loaded_tool_definition_count_bucket":"zero","subagent.mcp.deferred_tool_definition_count_bucket":"zero","subagent.tools.filter_reason":"frontmatter_tools_policy_or_runtime_filter","subagent.tools.declaration_hash":"sha256:318352b16ca17e43ab5aef62a29dc33fdfd01285efba75a7ba97b4be735d9ef1","privacy.raw_tools_declaration_recorded":false,"privacy.raw_tool_schemas_recorded":false,"privacy.raw_prompts_recorded":false,"privacy.raw_paths_recorded":false}}
|
|
2
|
+
{"trace_id":"503722a46b27d38ce02b9ba8c7b445f6","span_id":"b338ade0fe167184","name":"subagent.toolsearch.propagation.evaluated","time":"2026-05-25T20:00:02.000Z","attributes":{"session.id":"sess_toolsearch_propagation_demo","gen_ai.conversation.id":"conv_toolsearch_propagation_demo","agent.name":"claude-code","subagent.type_hash":"sha256:db45ca5bb406","subagent.spawn.path":"Task","subagent.skill_context_active":false,"subagent.parent_intermediate_tool_call_count_bucket":"zero","subagent.tools.declaration_shape":"wildcard","subagent.tools.toolsearch_declared":true,"subagent.tools.toolsearch_exposed":true,"subagent.mcp.parent_server_count_bucket":"under_25","subagent.mcp.available_server_count_bucket":"under_25","subagent.mcp.loaded_tool_definition_count_bucket":"zero","subagent.mcp.deferred_tool_definition_count_bucket":"under_100","subagent.tools.filter_reason":"wildcard_allows_deferred_tool_channel","subagent.tools.declaration_hash":"sha256:684888c0ebb17f374298b65ee2807526c066094c701bcc7ebbe1c1095f494fc1","privacy.raw_tools_declaration_recorded":false,"privacy.raw_tool_schemas_recorded":false,"privacy.raw_prompts_recorded":false,"privacy.raw_paths_recorded":false}}
|
|
3
|
+
{"trace_id":"503722a46b27d38ce02b9ba8c7b445f6","span_id":"b338ade0fe167184","name":"subagent.toolsearch.propagation.evaluated","time":"2026-05-25T20:00:03.000Z","attributes":{"session.id":"sess_toolsearch_propagation_demo","gen_ai.conversation.id":"conv_toolsearch_propagation_demo","agent.name":"claude-code","subagent.type_hash":"sha256:6f281157ab24","subagent.spawn.path":"Task","subagent.skill_context_active":false,"subagent.parent_intermediate_tool_call_count_bucket":"zero","subagent.tools.declaration_shape":"exclusion_style","subagent.tools.toolsearch_declared":false,"subagent.tools.toolsearch_exposed":false,"subagent.mcp.parent_server_count_bucket":"under_25","subagent.mcp.available_server_count_bucket":"zero","subagent.mcp.loaded_tool_definition_count_bucket":"zero","subagent.mcp.deferred_tool_definition_count_bucket":"zero","subagent.tools.filter_reason":"exclusion_style_did_not_preserve_deferred_tool_channel","subagent.tools.declaration_hash":"sha256:7bceda7b67b76245654ccbe33f1ba47f7ee3608823be750c83112219b205aab3","privacy.raw_tools_declaration_recorded":false,"privacy.raw_tool_schemas_recorded":false,"privacy.raw_prompts_recorded":false,"privacy.raw_paths_recorded":false}}
|
|
4
|
+
{"trace_id":"503722a46b27d38ce02b9ba8c7b445f6","span_id":"b338ade0fe167184","name":"subagent.toolsearch.matrix.completed","time":"2026-05-25T20:00:04.000Z","attributes":{"session.id":"sess_toolsearch_propagation_demo","gen_ai.conversation.id":"conv_toolsearch_propagation_demo","subagent.toolsearch.tested_axis":"tools_frontmatter_shape","subagent.toolsearch.probe_count_bucket":"under_5","subagent.toolsearch.passing_probe_count_bucket":"under_5","subagent.toolsearch.failing_probe_count_bucket":"under_5","subagent.toolsearch.recommended_next_probe_hash":"sha256:4a49fb4516c4","subagent.toolsearch.audit_gap":"proves ToolSearch exposure and MCP count buckets, not semantic tool relevance or runtime tool-call success"}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pluribus-context",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.29",
|
|
4
4
|
"description": "AI context and rules sync CLI for Claude.md, Claude Code, Cursor, and Copilot instructions, with privacy-safe context receipts that prove what memory, tools, skills, compactions, and security findings crossed agent boundaries without logging raw content.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/caioribeiroclw-pixel/pluribus#readme",
|
package/src/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.3.
|
|
1
|
+
export const VERSION = '0.3.29'
|