mirror of
https://github.com/morluto/rea
synced 2026-10-28 06:46:47 -04:00
feat(analysis): prototype typed JavaScript references for code composition
Explore #4063 with shared retained queries, an async typed client, real application verification, and reproducible model-result records. Preserve exploratory failures and keep downloadable applications and bulky producer data out of Git. Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
This commit is contained in:
+2
-1
@@ -11,6 +11,7 @@
|
||||
"CHANGELOG.md",
|
||||
"package-lock.json",
|
||||
"_reference/**",
|
||||
"third_party/**"
|
||||
"third_party/**",
|
||||
"experiments/codemode-data-contract/results/**"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import { performance } from "node:perf_hooks";
|
||||
import { resolve } from "node:path";
|
||||
import { Client } from "@modelcontextprotocol/client";
|
||||
import { StdioClientTransport } from "@modelcontextprotocol/client/stdio";
|
||||
import { createJavaScriptClient } from "../codemode-data-contract/client.mjs";
|
||||
import { moduleReferenceDiscovery } from "../codemode-data-contract/discovery.mjs";
|
||||
|
||||
const settings = JSON.parse(await readFile(process.argv[2], "utf8"));
|
||||
await mkdir(settings.output, { recursive: true, mode: 0o700 });
|
||||
@@ -27,6 +29,7 @@ const closeClient = async () => {
|
||||
}
|
||||
};
|
||||
let contracts;
|
||||
let narrowDiscovery;
|
||||
try {
|
||||
await client.connect(transport);
|
||||
transport.stderr?.resume();
|
||||
@@ -34,6 +37,8 @@ try {
|
||||
contracts = allTools.filter(({ name }) => settings.tools.includes(name));
|
||||
if (contracts.length !== settings.tools.length)
|
||||
throw new Error("Unknown allowed tool");
|
||||
if (settings.code_api === "typed-async")
|
||||
narrowDiscovery = await moduleReferenceDiscovery(settings.runtime);
|
||||
} catch (error) {
|
||||
try {
|
||||
await closeClient();
|
||||
@@ -96,6 +101,10 @@ const call = async (name, args) => {
|
||||
};
|
||||
|
||||
const describe = (name) => {
|
||||
if (narrowDiscovery && name === "inspect_analysis_view")
|
||||
return narrowDiscovery;
|
||||
if (name === "inspect_analysis_view.complete" && narrowDiscovery)
|
||||
name = "inspect_analysis_view";
|
||||
const contract = contracts.find((tool) => tool.name === name);
|
||||
if (!contract) throw new Error("Unknown allowed tool");
|
||||
return {
|
||||
@@ -105,6 +114,62 @@ const describe = (name) => {
|
||||
};
|
||||
};
|
||||
|
||||
const asyncInvoke = (vm, pending, deferreds) =>
|
||||
vm.newFunction("__call", (handle) => {
|
||||
// Start the host operation while its argument is alive. Guest promises
|
||||
// resolve between job drains, avoiding asyncify suspension in a job.
|
||||
const request = JSON.parse(vm.getString(handle));
|
||||
const deferred = vm.newPromise();
|
||||
deferreds.push(deferred);
|
||||
const work = (async () => {
|
||||
let value;
|
||||
try {
|
||||
value = {
|
||||
ok: true,
|
||||
value: await call(request.name, request.arguments),
|
||||
};
|
||||
} catch (error) {
|
||||
value = { ok: false, error: String(error) };
|
||||
}
|
||||
const serialized = vm.newString(JSON.stringify(value));
|
||||
try {
|
||||
deferred.resolve(serialized);
|
||||
} finally {
|
||||
serialized.dispose();
|
||||
}
|
||||
})().finally(() => pending.delete(work));
|
||||
pending.add(work);
|
||||
return deferred.handle;
|
||||
});
|
||||
|
||||
const settleCellPromise = async (vm, promise, pending, waited) => {
|
||||
try {
|
||||
while (true) {
|
||||
const state = vm.getPromiseState(promise);
|
||||
if (state.type !== "pending")
|
||||
return state.type === "fulfilled"
|
||||
? { value: state.value }
|
||||
: { error: state.error };
|
||||
if (vm.runtime.hasPendingJob()) {
|
||||
const jobs = vm.runtime.executePendingJobs();
|
||||
if (jobs.error) return { error: jobs.error };
|
||||
} else if (pending.size) {
|
||||
const waiting = performance.now();
|
||||
await Promise.race(pending);
|
||||
waited(performance.now() - waiting);
|
||||
} else {
|
||||
return {
|
||||
error: vm.newError(
|
||||
"Cell awaits an unsettled promise with no pending host operation",
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
promise.dispose();
|
||||
}
|
||||
};
|
||||
|
||||
const execute = async (source) => {
|
||||
if (typeof source !== "string" || Buffer.byteLength(source) > 65_536)
|
||||
throw new Error("A code cell must be at most 64 KiB");
|
||||
@@ -121,10 +186,13 @@ const execute = async (source) => {
|
||||
let outputBytes = 0;
|
||||
const printed = [];
|
||||
const before = ordinal;
|
||||
const asynchronous = settings.code_api === "typed-async";
|
||||
const pending = new Set();
|
||||
const deferreds = [];
|
||||
vm.runtime.setInterruptHandler(
|
||||
() => performance.now() - started - suspended > 5_000,
|
||||
);
|
||||
const invoke = vm.newAsyncifiedFunction("__call", async (handle) => {
|
||||
const invokeSync = async (handle) => {
|
||||
const { name, arguments: args } = JSON.parse(vm.getString(handle));
|
||||
const pending = performance.now();
|
||||
let value;
|
||||
@@ -135,7 +203,10 @@ const execute = async (source) => {
|
||||
}
|
||||
suspended += performance.now() - pending;
|
||||
return vm.newString(JSON.stringify(value));
|
||||
});
|
||||
};
|
||||
const invoke = asynchronous
|
||||
? asyncInvoke(vm, pending, deferreds)
|
||||
: vm.newAsyncifiedFunction("__call", invokeSync);
|
||||
const docs = vm.newFunction("__describe", (handle) =>
|
||||
vm.newString(JSON.stringify(describe(vm.getString(handle)))),
|
||||
);
|
||||
@@ -152,22 +223,31 @@ const execute = async (source) => {
|
||||
vm.setProp(vm.global, "__call", invoke);
|
||||
vm.setProp(vm.global, "__describe", docs);
|
||||
vm.setProp(vm.global, "print", print);
|
||||
const callSource = asynchronous
|
||||
? "async call(name,args) { const response=JSON.parse(await __call(JSON.stringify({name,arguments:args}))); if(!response.ok) throw new Error(response.error); return response.value; },"
|
||||
: "call(name,args) { const response=JSON.parse(__call(JSON.stringify({name,arguments:args}))); if(!response.ok) throw new Error(response.error); return response.value; },";
|
||||
vm.unwrapResult(
|
||||
vm.evalCode(`
|
||||
const rea = {
|
||||
call(name, args) {
|
||||
const response = JSON.parse(__call(JSON.stringify({name, arguments: args})));
|
||||
if (!response.ok) throw new Error(response.error);
|
||||
return response.value;
|
||||
},
|
||||
${callSource}
|
||||
describe(name) { return JSON.parse(__describe(name)); }
|
||||
};
|
||||
${asynchronous ? `rea.javascript = (${createJavaScriptClient.toString()})(rea.call);` : ""}
|
||||
`),
|
||||
).dispose();
|
||||
const result = await vm.evalCodeAsync(
|
||||
`(() => {\n${source}\n})()`,
|
||||
let result = await vm.evalCodeAsync(
|
||||
`(${asynchronous ? "async " : ""}() => {\n${source}\n})()`,
|
||||
"agent-cell.js",
|
||||
);
|
||||
if (asynchronous && !result.error)
|
||||
result = await settleCellPromise(
|
||||
vm,
|
||||
result.value,
|
||||
pending,
|
||||
(milliseconds) => {
|
||||
suspended += milliseconds;
|
||||
},
|
||||
);
|
||||
if (result.error) {
|
||||
const error = vm.dump(result.error);
|
||||
result.error.dispose();
|
||||
@@ -181,6 +261,9 @@ const execute = async (source) => {
|
||||
result.value.dispose();
|
||||
return { status: "completed", printed, backend_calls: ordinal - before };
|
||||
} finally {
|
||||
// If a cell throws after starting reads, retain ownership until all complete.
|
||||
if (pending.size) await Promise.allSettled(pending);
|
||||
for (const deferred of deferreds) deferred.dispose();
|
||||
invoke.dispose();
|
||||
docs.dispose();
|
||||
print.dispose();
|
||||
@@ -197,7 +280,10 @@ try {
|
||||
if (request.kind === "menu")
|
||||
response = contracts.map(({ name, description }) => ({
|
||||
name,
|
||||
description: description.split(". ")[0],
|
||||
description:
|
||||
name === "inspect_analysis_view" && narrowDiscovery
|
||||
? narrowDiscovery.description
|
||||
: description.split(". ")[0],
|
||||
}));
|
||||
else if (request.kind === "docs") response = describe(request.tool);
|
||||
else if (request.kind === "call")
|
||||
|
||||
@@ -62,6 +62,9 @@ def main():
|
||||
known = set()
|
||||
for path in (directory / 'backend').glob('call-*.json'):
|
||||
known.update(evidence_ids(json.loads(path.read_text())))
|
||||
saved_index = directory / 'evidence-index.json'
|
||||
if not (directory / 'backend').exists() and saved_index.exists():
|
||||
known.update(json.loads(saved_index.read_text())['successful_evidence_ids'])
|
||||
ids = answer.get('evidence_ids')
|
||||
checks['evidence_ids'] = isinstance(ids, list) and bool(ids) and all(
|
||||
isinstance(value, str) and value in known for value in ids)
|
||||
@@ -72,13 +75,18 @@ def main():
|
||||
and all(isinstance(item, str) and bool(item.strip()) for item in limitations))
|
||||
# Narrative honesty is separately reviewed from the complete retained answer.
|
||||
resources = None
|
||||
for line in (args.cohort / (label + '.log')).read_text().splitlines():
|
||||
log = args.cohort / (label + '.log')
|
||||
lines = log.read_text().splitlines() if log.exists() else []
|
||||
for line in lines:
|
||||
try:
|
||||
value = json.loads(line)
|
||||
except ValueError:
|
||||
continue
|
||||
if isinstance(value, dict) and 'resource_scope' in value:
|
||||
resources = value
|
||||
if resources is None and (directory / 'resources.json').exists():
|
||||
records = json.loads((directory / 'resources.json').read_text())
|
||||
resources = records[-1] if records else None
|
||||
payload = (resources or {}).get('payload_resource_observation')
|
||||
verified = (resources or {}).get('payload_resource_observation_verified') is True
|
||||
observed_usage = [step['usage'] for step in receipt['rounds'] if step.get('usage') is not None]
|
||||
@@ -107,7 +115,9 @@ def main():
|
||||
'peak_bytes_at_payload_exit': payload['memory_peak_bytes'] if verified else None,
|
||||
'resource_events_at_payload_exit': payload['resource_events'] if verified else None,
|
||||
'resource_abort': (resources or {}).get('abort'),
|
||||
'backend_calls': len((directory / 'backend/calls.jsonl').read_text().splitlines()),
|
||||
'backend_calls': (len((directory / 'backend/calls.jsonl').read_text().splitlines())
|
||||
if (directory / 'backend/calls.jsonl').exists()
|
||||
else len(json.loads(saved_index.read_text())['producer_response_files'])),
|
||||
'code_actions': sum(step.get('action_kind') == 'code' for step in receipt['rounds'])}
|
||||
result['success'] = result['facts_pass'] and receipt['treatment_valid'] and verified and not result['resource_abort']
|
||||
results.append(result)
|
||||
|
||||
@@ -10,6 +10,52 @@ import unittest
|
||||
|
||||
|
||||
class BackendTests(unittest.TestCase):
|
||||
def test_async_cells_compose_real_calls_and_recover_from_rejection(self):
|
||||
quickjs = os.environ.get('REA_EXPERIMENT_QUICKJS')
|
||||
if not quickjs:
|
||||
self.skipTest('Set REA_EXPERIMENT_QUICKJS to isolated quickjs-emscripten@0.31.0')
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
settings = Path(directory) / 'settings.json'
|
||||
settings.write_text(json.dumps({'runtime': str(root), 'output': directory,
|
||||
'tools': ['binary_session'], 'quickjs': quickjs,
|
||||
'code_api': 'typed-async'}))
|
||||
process = subprocess.Popen([shutil.which('node'), str(Path(__file__).with_name('backend.mjs')),
|
||||
str(settings)], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE, text=True)
|
||||
|
||||
def cell(code):
|
||||
process.stdin.write(json.dumps({'kind': 'code', 'code': code}) + '\n')
|
||||
process.stdin.flush()
|
||||
response = json.loads(process.stdout.readline())
|
||||
self.assertTrue(response['ok'], response)
|
||||
return response['value']
|
||||
|
||||
try:
|
||||
result = cell('const a=await rea.call("binary_session",{}); '
|
||||
'await Promise.resolve(); const b=await rea.call("binary_session",{}); '
|
||||
'print({first:!!a.result,second:!!b.result,sdk:typeof rea.javascript.fromEvidence});')
|
||||
self.assertEqual(result['status'], 'completed', result)
|
||||
self.assertEqual(result['backend_calls'], 2)
|
||||
self.assertEqual(result['printed'], [{'first': True, 'second': True, 'sdk': 'function'}])
|
||||
result = cell('await rea.call("not_allowed",{});')
|
||||
self.assertEqual(result['status'], 'code_error')
|
||||
self.assertIn('allowlist', result['error']['message'])
|
||||
result = cell('await Promise.resolve(); while(true) {}')
|
||||
self.assertEqual(result['status'], 'code_error')
|
||||
self.assertIn('interrupted', result['error']['message'])
|
||||
result = cell('await new Promise(()=>{});')
|
||||
self.assertEqual(result['status'], 'code_error')
|
||||
self.assertIn('unsettled promise', result['error']['message'])
|
||||
result = cell('print(await Promise.resolve("still alive"));')
|
||||
self.assertEqual(result['printed'], ['still alive'])
|
||||
finally:
|
||||
if process.poll() is None:
|
||||
process.stdin.write('{"kind":"close"}\n')
|
||||
process.stdin.flush()
|
||||
stdout, stderr = process.communicate(timeout=20)
|
||||
self.assertEqual(process.returncode, 0, stderr)
|
||||
|
||||
def test_invalid_contract_closes_the_real_sdk_process(self):
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
|
||||
@@ -29,6 +29,8 @@ def main():
|
||||
parser.add_argument('--max-rounds', type=int, default=10)
|
||||
parser.add_argument('--compositional-followup', action='store_true',
|
||||
help='Permit direct batches and explicitly require code-side projection')
|
||||
parser.add_argument('--interface', choices=['current', 'typed'], default='current',
|
||||
help='Typed enables canonical module references, narrow discovery and async SDK in both arms')
|
||||
args = parser.parse_args()
|
||||
if not args.output.is_absolute() or not args.quickjs.is_absolute():
|
||||
parser.error('--output and --quickjs must be absolute paths')
|
||||
@@ -75,14 +77,20 @@ def main():
|
||||
schema_path.write_text(encode(schema))
|
||||
backend_settings = {'runtime': str(root), 'output': str(args.output / 'backend'),
|
||||
'tools': task['tools'], 'quickjs': str(args.quickjs)}
|
||||
if args.interface == 'typed':
|
||||
backend_settings['code_api'] = 'typed-async'
|
||||
settings_path = args.output / 'backend-settings.json'
|
||||
settings_path.write_text(encode(backend_settings))
|
||||
backend = None
|
||||
child = None
|
||||
backend_errors = None
|
||||
started = time.monotonic()
|
||||
source_digests = {name: hashlib.sha256(Path(__file__).with_name(name).read_bytes()).hexdigest()
|
||||
for name in ['trial.py', 'backend.mjs']}
|
||||
source_digests = {name: hashlib.sha256((root / name).read_bytes()).hexdigest()
|
||||
for name in ['experiments/browser-electron-code-mode/trial.py',
|
||||
'experiments/browser-electron-code-mode/backend.mjs',
|
||||
'experiments/codemode-data-contract/client.mjs',
|
||||
'experiments/codemode-data-contract/discovery.mjs']
|
||||
if (root / name).exists()}
|
||||
rounds = []
|
||||
status = 'incomplete'
|
||||
preparation_seconds = None
|
||||
@@ -145,6 +153,12 @@ def main():
|
||||
'Do not print complete raw REA envelopes or irrelevant observations. '
|
||||
'Compose multiple calls in one cell when their arguments can be obtained from earlier results. '
|
||||
)
|
||||
if args.interface == 'typed':
|
||||
protocol = protocol.replace(
|
||||
'Use synchronous rea.call(name,args) and rea.describe(name); no await is necessary or supported.',
|
||||
'Cells are async functions. Use await rea.call(name,args), rea.describe(name), '
|
||||
'and the typed rea.javascript client documented by inspect_analysis_view. '
|
||||
'Use ordinary async/await and for await loops.')
|
||||
base = protocol + '\nTool menu: ' + encode(menu) + '\nQuestion: ' + task['question']
|
||||
history = [{'bootstrap': bootstrap}]
|
||||
for index in range(1, args.max_rounds + 1):
|
||||
@@ -257,6 +271,7 @@ def main():
|
||||
'revision': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=root, text=True).strip(),
|
||||
'task_sha256': hashlib.sha256(args.task.read_bytes()).hexdigest(),
|
||||
'compositional_followup': args.compositional_followup,
|
||||
'interface': args.interface,
|
||||
'max_rounds': args.max_rounds,
|
||||
'sources_sha256_at_start': source_digests}
|
||||
(args.output / 'receipt.json').write_text(json.dumps(receipt, indent=2) + '\n')
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
# Code-friendly JavaScript investigation data: design prototype
|
||||
|
||||
Status: proposed contract and recorded-Evidence probe, not a shipped API.
|
||||
Status: experimental query/client implemented on this branch; not integrated upstream.
|
||||
Tracking: [experiment #4063](https://github.com/morluto/rea/issues/4063).
|
||||
The original design sketch below predates the implementation; its future names
|
||||
are illustrative. The implemented surface is described first.
|
||||
Source inspection: fresh main `d7651b6a0`, 2026-10-15. This follows the
|
||||
`experiment/browser-electron-codemode-20261015` pilot, commit `6494c98c6`.
|
||||
|
||||
@@ -9,6 +12,131 @@ ordinary agent-written JavaScript useful. Adding an executor around existing
|
||||
MCP calls does not resolve untyped results, repetitive envelopes, missing list
|
||||
fields, ambiguous paths, or identity transcription.
|
||||
|
||||
## Implemented prototype
|
||||
|
||||
The canonical `inspect_analysis_view` contract now accepts:
|
||||
|
||||
```json
|
||||
{
|
||||
"source": { "kind": "retained-evidence", "evidence_id": "<parent>" },
|
||||
"view": {
|
||||
"kind": "javascript",
|
||||
"collection": "modules",
|
||||
"projection": "references",
|
||||
"where": { "path": "main.js", "kind": "javascript-module" },
|
||||
"offset": 0,
|
||||
"limit": 64
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The typed `rows` contain canonical node identity, exact/unknown path, retained
|
||||
source-range count and unique observation authority/state/confidence triples.
|
||||
`source_coverage` preserves selection, application/semantic bounds and unknown
|
||||
counts independently of filtered-page coverage. Omitted filters select all;
|
||||
`path: null` selects unknown paths and `path: ""` selects empty references.
|
||||
Paths can match several identities. Original module items remain accessible.
|
||||
The owner scans the immutable graph once and allocates only the requested rows;
|
||||
it does not allocate a full matching inventory or source-range arrays.
|
||||
|
||||
The experimental [client](client.mjs) borrows canonical TypeScript types;
|
||||
[discovery](discovery.mjs) generates narrow JSON Schemas from named canonical
|
||||
schemas, with complete original discovery still available. Both direct and
|
||||
code treatments receive the same discovery and backend. The client uses normal
|
||||
`await` and `for await`; failures are explicit `Result` values. Its page iterator
|
||||
binds parent and filters; offsets refer to that immutable query. This prototype
|
||||
uses existing offsets, not the originally proposed opaque cursors. No query
|
||||
cache, report-retention API, IPC/network redesign or production executor was
|
||||
added. General agent code is confined to the opt-in experimental host.
|
||||
|
||||
```js
|
||||
const app = rea.javascript.fromEvidence(parentEvidenceId);
|
||||
const counts = {};
|
||||
const evidenceIds = [];
|
||||
for await (const result of app.modules.pages({
|
||||
where: { path: "main.js", kind: "javascript-module" },
|
||||
})) {
|
||||
if (!result.ok) throw new Error(JSON.stringify(result.error));
|
||||
evidenceIds.push(result.value.evidence_id);
|
||||
for (const row of result.value.page.rows) {
|
||||
const id = row.identity;
|
||||
if (id.strategy === "artifact-local-key" &&
|
||||
id.namespace === "unresolved-semantic-module" &&
|
||||
id.key.startsWith("external:")) {
|
||||
const name = id.key.slice(9);
|
||||
counts[name] = (counts[name] ?? 0) + row.retained_source_range_count;
|
||||
}
|
||||
}
|
||||
}
|
||||
print({ counts, evidenceIds }); // derived output; not minted source Evidence
|
||||
```
|
||||
|
||||
`verify.py` compares this actual public MCP query against all selected original
|
||||
items from the real Obsidian ASAR, then checks four SDK pages, early exit and
|
||||
missing-parent errors. The executed run matched all 23 module identities and
|
||||
ten external specifiers/counts, retaining 36 unselected files. Full structured
|
||||
replies were 338,208 bytes for the legacy page/items and 23,402 for the new query.
|
||||
First retained-query round trip was 0.101 s; repeated reads were 0.012/0.015 s.
|
||||
Whole verification used 21.167 s wall, 20.906 s CPU and 1,167,003,648 bytes peak
|
||||
at verified payload exit. These are boundary/projection measurements, not agent
|
||||
performance or a new cache speedup.
|
||||
|
||||
## Reproducing and retaining experiments
|
||||
|
||||
Use pinned Node/npm and `npm ci && npm run build:cached`. Install
|
||||
`quickjs-emscripten@0.31.0` in an isolated temporary prefix, not production deps.
|
||||
Run heavy commands serially under `../analysis-efficiency/resource-run.py
|
||||
--memory-gib 8 --observe-payload-exit -- COMMAND...`: one CPU, 8 GiB whole
|
||||
process-family cap, 6 GiB early stop and no swap. Browser acquisition requires
|
||||
its explicitly selected executable and the existing 256-task ceiling.
|
||||
|
||||
Download the official [Obsidian 1.14.4 ASAR gzip](https://github.com/obsidianmd/obsidian-releases/releases/download/v1.14.4/obsidian-1.14.4.asar.gz)
|
||||
and decompress to `DATA/artifacts/obsidian-1.14.4.asar`. Gzip SHA-256 is
|
||||
`d1ed428c363968774f0f3906e67d8a53a058ece0b6cdd924b07865977b2ada21`;
|
||||
ASAR SHA-256 is
|
||||
`146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f`.
|
||||
No target code is executed by the static acquisition or analysis.
|
||||
|
||||
1. `acquire-oracle.py --data DATA` regenerates selected-source producer facts.
|
||||
2. `../browser-electron-code-mode/capture-web.mjs DATA/excalidraw-proxy ABS_CHROMIUM`
|
||||
(run with Node) records the real Excalidraw startup in an owned empty-profile,
|
||||
TLS-verified, sandboxed browser. It contacts the public site. A new capture
|
||||
has a new digest/oracle; the historical live-web bytes are not reproducible.
|
||||
3. Run the original `prepare.py --data DATA` and `prepare_dependencies.py --data
|
||||
DATA` in `../browser-electron-code-mode/` to regenerate plans/oracles.
|
||||
4. This directory's `prepare.py --data DATA --output COHORT` freezes the new
|
||||
typed-interface tasks, oracle, counterbalanced order and source fingerprints.
|
||||
5. For every plan entry run the existing `trial.py` under the supervisor with
|
||||
`--interface typed --compositional-followup --max-rounds 16`, the declared
|
||||
`--arm`, `--task`, fresh `--output COHORT/TASK-ARM`, and absolute `--quickjs`.
|
||||
Save supervisor output to `COHORT/TASK-ARM.log`.
|
||||
6. Run the original `review.py --cohort COHORT`; manually check support,
|
||||
limitations and whether code actually composed/filter/grouped facts.
|
||||
7. `retain.py --cohort COHORT --output SAVED` saves task/oracle, actual model
|
||||
actions and CLI events/usage, answers, failures, Evidence-response digests
|
||||
and resource receipts, with a byte checksum manifest. It never recursively
|
||||
copies profiles, auth, configuration, applications, HARs or full producer
|
||||
payloads. `review.py` can regrade saved records using the Evidence index.
|
||||
|
||||
Recorded snapshots under [results/](results/) are excluded from reformatting
|
||||
because task hashes and recorded-byte manifests must remain stable. Downloadable
|
||||
applications and regenerable bulky Evidence are intentionally not archived.
|
||||
The retained model sampling/results are valuable non-regenerable observations;
|
||||
identical future model outputs or original live-web captures are not promised.
|
||||
Keep original failures. Historical pilot results are a separate cohort, not a
|
||||
third randomized arm of the new comparison. A fresh model process with full
|
||||
history per action remains an external controlled protocol; this is not a
|
||||
native Codex tool-host latency benchmark.
|
||||
|
||||
Generate/check the client's declarations without a second hand-maintained schema:
|
||||
|
||||
```sh
|
||||
node_modules/.bin/tsc --ignoreConfig --allowJs --checkJs --declaration \
|
||||
--emitDeclarationOnly --outDir .cache/codemode-sdk --target ES2023 \
|
||||
--lib ES2023 --types node --module NodeNext --moduleResolution NodeNext \
|
||||
--strict --skipLibCheck experiments/codemode-data-contract/client.mjs
|
||||
```
|
||||
|
||||
## Observed contract problems
|
||||
|
||||
| Existing boundary | Consequence | Proposed change |
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
"""Regenerate Obsidian producer-consistency inputs; never execute target code."""
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--data', type=Path, required=True)
|
||||
args = parser.parse_args()
|
||||
data = args.data.resolve()
|
||||
artifact = data / 'artifacts/obsidian-1.14.4.asar'
|
||||
assert hashlib.sha256(artifact.read_bytes()).hexdigest() == '146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f'
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
output = data / 'obsidian-oracle'
|
||||
output.mkdir(mode=0o700)
|
||||
settings = output / 'settings.json'
|
||||
settings.write_text(json.dumps({'runtime': str(root), 'output': str(output / 'backend'),
|
||||
'tools': ['analyze_javascript_application', 'inspect_analysis_view']}))
|
||||
with (output / 'stderr.log').open('w') as errors:
|
||||
process = subprocess.Popen([shutil.which('node'), str(root / 'experiments/browser-electron-code-mode/backend.mjs'), str(settings)],
|
||||
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=errors, text=True)
|
||||
ordinal = 0
|
||||
|
||||
def call(tool, arguments):
|
||||
nonlocal ordinal
|
||||
process.stdin.write(json.dumps({'kind': 'call', 'tool': tool, 'arguments': arguments}) + '\n')
|
||||
process.stdin.flush()
|
||||
response = json.loads(process.stdout.readline())
|
||||
if not response['ok'] or 'error' in response['value']:
|
||||
raise RuntimeError(response)
|
||||
ordinal += 1
|
||||
shutil.copyfile(output / 'backend' / f'call-{ordinal:03d}.json', output / f'call-{ordinal}.json')
|
||||
return response['value']
|
||||
|
||||
try:
|
||||
summary = call('analyze_javascript_application', {'input_path': str(artifact), 'source_paths': ['package.json', 'main.js'], 'detail': 'summary'})
|
||||
source = {'kind': 'retained-evidence', 'evidence_id': summary['normalized_result']['parent_evidence_id']}
|
||||
page = call('inspect_analysis_view', {'source': source, 'view': {'kind': 'page', 'collection': 'modules', 'offset': 0, 'limit': 100}})['normalized_result']
|
||||
assert page['coverage']['exhausted']
|
||||
for row in page['items']:
|
||||
if row['path'] == 'main.js':
|
||||
call('inspect_analysis_view', {'source': source, 'view': {'kind': 'item', 'collection': 'modules', 'selector': {'node_id': row['node_id']}}})
|
||||
print(json.dumps({'output': str(output), 'producer_calls': ordinal, 'scope': 'Selected-source producer consistency, not an independent semantic oracle'}))
|
||||
finally:
|
||||
if process.poll() is None:
|
||||
try:
|
||||
process.stdin.write('{"kind":"close"}\n')
|
||||
process.stdin.flush()
|
||||
process.wait(timeout=15)
|
||||
except (BrokenPipeError, subprocess.TimeoutExpired):
|
||||
process.terminate()
|
||||
process.wait(timeout=15)
|
||||
process.stdin.close()
|
||||
process.stdout.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* Experimental adapter. Types borrow the canonical contract rather than
|
||||
* describing a second result format. The host authenticates and retains reads.
|
||||
* @typedef {Extract<import('../../src/domain/analysisView/analysisView.js').AnalysisViewResult, {kind: 'javascript'}>} ModulePage
|
||||
* @typedef {import('zod').input<typeof import('../../src/domain/analysisView/javascriptModuleReferences.js').javascriptModuleReferencesRequestSchema>} ModuleView
|
||||
* @typedef {Omit<ModuleView, 'kind' | 'collection' | 'projection'>} ModuleOptions
|
||||
* @typedef {{evidence_id: string, page: ModulePage}} QueryEvidence
|
||||
* @typedef {{kind: 'tool-error' | 'unexpected-result', details: unknown}} QueryError
|
||||
* @typedef {import('../../src/domain/result.js').Result<QueryEvidence, QueryError>} QueryResult
|
||||
* @typedef {{error?: unknown, evidence_id?: string, normalized_result?: ModulePage}} QueryResponse
|
||||
*/
|
||||
|
||||
/**
|
||||
* Pure factory also installed in the isolated guest. Ordinary awaits and
|
||||
* iterators compose reads; no source parser, task oracle or new authority.
|
||||
* @param {(name: string, args: unknown) => Promise<QueryResponse>} call
|
||||
*/
|
||||
export function createJavaScriptClient(call) {
|
||||
return {
|
||||
/** @param {string} evidenceId */
|
||||
fromEvidence(evidenceId) {
|
||||
/** @param {ModuleOptions} [options]
|
||||
* @returns {Promise<QueryResult>} */
|
||||
async function references(options = {}) {
|
||||
const response = await call("inspect_analysis_view", {
|
||||
source: { kind: "retained-evidence", evidence_id: evidenceId },
|
||||
view: {
|
||||
...options,
|
||||
kind: "javascript",
|
||||
collection: "modules",
|
||||
projection: "references",
|
||||
},
|
||||
});
|
||||
if (response.error)
|
||||
return {
|
||||
ok: false,
|
||||
error: { kind: "tool-error", details: response.error },
|
||||
};
|
||||
const page = response.normalized_result;
|
||||
if (
|
||||
page?.kind !== "javascript" ||
|
||||
page.parent_evidence_id !== evidenceId ||
|
||||
typeof response.evidence_id !== "string"
|
||||
)
|
||||
return {
|
||||
ok: false,
|
||||
error: { kind: "unexpected-result", details: response },
|
||||
};
|
||||
return { ok: true, value: { evidence_id: response.evidence_id, page } };
|
||||
}
|
||||
return {
|
||||
modules: {
|
||||
references,
|
||||
/** @param {ModuleOptions} [options]
|
||||
* @returns {AsyncGenerator<QueryResult, void, void>} */
|
||||
async *pages(options = {}) {
|
||||
let offset = options.offset ?? 0;
|
||||
while (true) {
|
||||
const result = await references({ ...options, offset });
|
||||
yield result;
|
||||
if (!result.ok) return;
|
||||
const next = result.value.page.coverage.next_offset;
|
||||
if (next === null) return;
|
||||
if (next <= offset)
|
||||
throw new Error(
|
||||
"Non-advancing module page; no further reads issued",
|
||||
);
|
||||
offset = next;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import { pathToFileURL } from "node:url";
|
||||
import { resolve } from "node:path";
|
||||
import { z } from "zod";
|
||||
|
||||
/** Narrow discovery generated from named canonical schemas, with full discovery
|
||||
* still accessible. This is an experiment, not an additional server contract. */
|
||||
export async function moduleReferenceDiscovery(runtime) {
|
||||
const load = (path) =>
|
||||
import(pathToFileURL(resolve(runtime, "dist", path)).href);
|
||||
const [views, modules] = await Promise.all([
|
||||
load("domain/analysisView/analysisView.js"),
|
||||
load("domain/analysisView/javascriptModuleReferences.js"),
|
||||
]);
|
||||
return {
|
||||
name: "inspect_analysis_view",
|
||||
description:
|
||||
"Read typed retained JavaScript module references. Exact filters select all matching identities, including ambiguous paths. Rows carry canonical identity and retained source-range counts with observation support. Page exhaustion concerns retained matches; source coverage is separate. Complete discovery: inspect_analysis_view.complete.",
|
||||
inputSchema: z.toJSONSchema(
|
||||
z.strictObject({
|
||||
source: views.retainedAnalysisViewSourceSchema,
|
||||
view: modules.javascriptModuleReferencesRequestSchema,
|
||||
}),
|
||||
),
|
||||
pageSchema: z.toJSONSchema(
|
||||
views.javascriptModuleReferencesViewResultSchema,
|
||||
),
|
||||
response:
|
||||
"The ordinary canonical Evidence envelope: evidence_id, normalized_result (pageSchema), evidence_links, authority, confidence and limitations. Queries create retained view Evidence, linked to the parent. Errors preserve the ordinary tool error envelope.",
|
||||
code: "const app = rea.javascript.fromEvidence(parentEvidenceId); await app.modules.references({where:{path,kind},offset:0,limit:64}) returns Result<{evidence_id,page},{kind,details}>. for await (const result of app.modules.pages(options)) iterates the same query. Narrow result and option types come from the canonical schemas; client.mjs also borrows canonical TypeScript types. Use await rea.call(name,args) for any original tool. Cells are async functions; print(value) returns selected facts. Complete Evidence remains retained; arbitrary printed conclusions are derivations, not new source Evidence.",
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
"""Freeze a typed-interface follow-up using two existing genuine app questions."""
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--data', type=Path, required=True)
|
||||
parser.add_argument('--output', type=Path, required=True)
|
||||
args = parser.parse_args()
|
||||
args.output.mkdir(mode=0o700)
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
definitions = [('dependencies', 'obsidian-dependencies'), ('cohort', 'excalidraw-network')]
|
||||
trials = []
|
||||
oracles = {}
|
||||
for index, (directory, task_id) in enumerate(definitions):
|
||||
original = args.data / directory / (task_id + '.json')
|
||||
task = json.loads(original.read_text())
|
||||
if task_id == 'obsidian-dependencies':
|
||||
# Same semantic question; do not prescribe the old individual-item
|
||||
# call sequence that the new projection deliberately replaces.
|
||||
task['question'] = task['question'].replace(
|
||||
'inventory every retained javascript-module identity at that exact path and inspect its item facts.',
|
||||
'inventory every retained javascript-module identity at that exact path and its retained reference facts.')
|
||||
path = args.output / original.name
|
||||
path.write_text(json.dumps(task, indent=2) + '\n')
|
||||
oracles[task_id] = json.loads((args.data / directory / 'oracles.json').read_text())[task_id]
|
||||
for arm in (['code', 'direct'] if index == 0 else ['direct', 'code']):
|
||||
trials.append({'task': task_id, 'arm': arm, 'task_file': path.name,
|
||||
'task_sha256': hashlib.sha256(path.read_bytes()).hexdigest()})
|
||||
sources = {str(path.relative_to(root)): hashlib.sha256(path.read_bytes()).hexdigest()
|
||||
for directory in ['experiments/browser-electron-code-mode', 'experiments/codemode-data-contract', 'src/domain/analysisView']
|
||||
for path in (root / directory).iterdir()
|
||||
if path.suffix in ['.py', '.mjs', '.ts']}
|
||||
plan = {'scope': 'Four-trial exploratory follow-up, two real app questions, one counterbalanced pair per task; no statistical claim.',
|
||||
'issue': 'https://github.com/morluto/rea/issues/4063',
|
||||
'interface': 'typed', 'compositional_followup': True, 'max_rounds': 16,
|
||||
'backend_parity': 'Both arms share the same production runtime, snapshots, canonical queries, narrow discovery and complete tools. Direct batches are allowed. Code adds async SDK composition and output selection.',
|
||||
'model': 'gpt-5.6-terra', 'reasoning': 'high',
|
||||
'codex_cli': subprocess.check_output(['/usr/bin/codex', '--version'], text=True).strip(),
|
||||
'historical_baseline': 'Original pilot/dependency results are historical context, not a randomized third arm; production revision and question wording differ.',
|
||||
'oracle_scope': 'HAR grouping independently decoded from original HAR; Obsidian producer consistency plus explicit static/runtime distinction, not independent semantic extractor validation.',
|
||||
'revision': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=root, text=True).strip(),
|
||||
'sources_sha256': sources, 'trials': trials}
|
||||
(args.output / 'plan.json').write_text(json.dumps(plan, indent=2) + '\n')
|
||||
(args.output / 'oracles.json').write_text(json.dumps(oracles, indent=2) + '\n')
|
||||
print(args.output)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"files_sha256": {
|
||||
"plan.json": "6133eb62e3a7dc377c6010796f7940f1ac95abfba614aa14c0198cfc2b4a6d98",
|
||||
"oracles.json": "8268cc5f2a1522cc89a3366c551ab1bbf293968b4c60b1dc26d1224c1cf25005",
|
||||
"review.json": "a4de0e2ecc83bf9f4a148f2840d6e487e0331d7d696c9fea7a5cea468d795d40",
|
||||
"obsidian-dependencies.json": "17dd78b27ebc6b9553c93ebd7850e2e99d5a557f4a8b065a846dec88acf1d6bf",
|
||||
"obsidian-dependencies-direct/trajectory.jsonl": "e487ce85899dc57a00ddda34d61e650b7673ed2014f0df3445392ee3fc998beb",
|
||||
"obsidian-dependencies-direct/resources.json": "abd27560d57ffa34d833b9a159af2d360f7f65f82e34e069241e00576ad26094",
|
||||
"obsidian-dependencies-direct/evidence-index.json": "0bac98486805f1894993afdd8f8ac6ad914cab6afbadf0735c89297c1d770025",
|
||||
"obsidian-dependencies-direct/answer.json": "c8392d3d8ea30ed17df04961cd627f4b2068fc51e06c7ef0b6046f912baf8457",
|
||||
"obsidian-dependencies-direct/receipt.json": "5cb70c6442ebfc5f47d88cc83b45071452e965ff94491114f184d05a7c30a361",
|
||||
"obsidian-dependencies-code/trajectory.jsonl": "d60ded4d0e6bccb305820426e4aebe1a98ef09a2f5367077ed9441d1cbf45854",
|
||||
"obsidian-dependencies-code/resources.json": "6bfa829e7dae807fd77a311703fccd1010233400bf41cfd0e0474aacef451534",
|
||||
"obsidian-dependencies-code/evidence-index.json": "bbd751bc73ab5a446dff8e673936a87cb4b598a5d8908c1e595744d16f7829b1",
|
||||
"obsidian-dependencies-code/answer.json": "13ffd1acc1cfa22dd7833c85c3cf058f490a16cb8967c9e736689d7a5beb89cc",
|
||||
"obsidian-dependencies-code/receipt.json": "d4511361a05b6c0f8e0734f5b25b96541cca24304d632212a2a4dd997c25ab29"
|
||||
},
|
||||
"retention": "Tasks, oracles, sampling actions/CLI events, usage, failures, response digests and resources. No original applications/captures or full producer payloads.",
|
||||
"replay_limit": "Regenerate new captures and oracles for a fresh cohort. Historical live web captures are not byte-reproducible and are intentionally not archived."
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
"Awaiting the item-fact observations needed to compute the requested inventory."
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_2ee7564c07a070d047e8f17d854fb1da21b8e81e0ca01016f49541ed61641008",
|
||||
"ev_389f040f072b45dc5932c7a9db6eac8d321c53719da286523aed45afcca8f6a7",
|
||||
"ev_ce94ee92b615954b17c4ee0f6895864d35f0e03039b82dbb5fff85d44bbf3cca"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "c36b6dc2f09d3cfa78dd7f7b795e8875ef6f421c16da20ec3d6eb924fb4e758c",
|
||||
"bytes": 29159
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "549a113a1fe9bc6e027fdaea6336ea9a700791015048250d19c7a9f313c6e137",
|
||||
"bytes": 38043
|
||||
},
|
||||
{
|
||||
"file": "call-003.json",
|
||||
"sha256": "5584ddde172f22c52183c50b5a6403221f6db28aa5af8bc4f7f4011b6b5b254a",
|
||||
"bytes": 611
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"arm": "code",
|
||||
"task": "obsidian-dependencies",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 86794,
|
||||
"cached_input_tokens": 28160,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 2333,
|
||||
"reasoning_output_tokens": 920
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 16.21683260903228,
|
||||
"prompt_bytes": 16952,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 13636,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 79,
|
||||
"reasoning_output_tokens": 53
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0013813499826937914,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 22.197809166042134,
|
||||
"prompt_bytes": 45033,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20497,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 244,
|
||||
"reasoning_output_tokens": 135
|
||||
},
|
||||
"action_kind": "code",
|
||||
"action_seconds": 0.18761128303594887,
|
||||
"observation_bytes": 19511
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 27.783708057948388,
|
||||
"prompt_bytes": 64859,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 26146,
|
||||
"cached_input_tokens": 20224,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 329,
|
||||
"reasoning_output_tokens": 185
|
||||
},
|
||||
"action_kind": "code",
|
||||
"action_seconds": 0.05259322398342192,
|
||||
"observation_bytes": 808
|
||||
},
|
||||
{
|
||||
"round": 4,
|
||||
"model_seconds": 49.974046079907566,
|
||||
"prompt_bytes": 66051,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 26515,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1681,
|
||||
"reasoning_output_tokens": 547
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 136.63398639601655,
|
||||
"preparation_seconds": 19.817954760044813,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "17dd78b27ebc6b9553c93ebd7850e2e99d5a557f4a8b065a846dec88acf1d6bf",
|
||||
"compositional_followup": true,
|
||||
"max_rounds": 32,
|
||||
"sources_sha256_at_start": {
|
||||
"trial.py": "6dde94216429da0ebe5af5e268361e742011526e20965e742e5d3a83d01e2a1d",
|
||||
"backend.mjs": "afc072ea5aefcd473094fba1cb6df3834eb725a27a0b2be30cd27c1c98dca819"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-7cc876b661f44444ad5c3dd92011b76e.scope",
|
||||
"peak_cgroup_bytes_sampled": 1200308224,
|
||||
"elapsed_seconds": 136.984,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 94,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 30945002,
|
||||
"user_usec": 25799970,
|
||||
"system_usec": 5145032,
|
||||
"nr_periods": 1330,
|
||||
"nr_throttled": 33,
|
||||
"throttled_usec": 1870,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-7cc876b661f44444ad5c3dd92011b76e.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2681696,
|
||||
"remaining_processes": [
|
||||
2681696
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 30942221,
|
||||
"user_usec": 25797189,
|
||||
"system_usec": 5145032,
|
||||
"nr_periods": 1330,
|
||||
"nr_throttled": 33,
|
||||
"throttled_usec": 1870,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1203978240,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-7cc876b661f44444ad5c3dd92011b76e.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{"round": "round-01", "action.json_sha256": "bbd836b30411d209eab2e2a4e7fada08b322d90d982e6e3fa71fb55cf450238e", "action.json_bytes": 55, "action": {"kind": "docs", "payload": "[\"inspect_analysis_view\"]"}, "observation.json_sha256": "7127207640441dbd46bcd74b7d4f29bfd45b8bc65d2887344bae7901adfcfc1f", "observation.json_bytes": 27999, "prompt.txt_sha256": "7938edcaaea7aa127c4db52994a58e0ce9dbd3a4157162bb957bb204b18b9b09", "prompt.txt_bytes": 16952, "events.jsonl_sha256": "fff081906d36a756132e689a8da0f9703663648d75ee55e006e02596a4d3bf6e", "events.jsonl_bytes": 642, "cli_events": [{"type": "thread.started", "thread_id": "01a13ebe-0d1c-70d0-9097-1982f884ff87"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"docs\",\"payload\":\"[\\\"inspect_analysis_view\\\"]\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 13636, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 79, "reasoning_output_tokens": 53}}], "stderr.log_sha256": "6f7c32c0eae7f76132827bec4775af1e88bd6d0eaa3a215bb613193f329e490a", "stderr.log_bytes": 263, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/dependencies/obsidian-dependencies-code/profile-bk_w1r4o/codex\"))\n"}
|
||||
{"round": "round-02", "action.json_sha256": "10aa137ba3ae68fbf02032b20bee7ea0f112d6dca75af213a5c7dcef41da8067", "action.json_bytes": 288, "action": {"kind": "code", "payload": "const r = rea.call(\"inspect_analysis_view\", {source:{kind:\"retained-evidence\",evidence_id:\"ev_ce94ee92b615954b17c4ee0f6895864d35f0e03039b82dbb5fff85d44bbf3cca\"},view:{kind:\"page\",collection:\"modules\",offset:0,limit:10000}}); print(JSON.stringify(r));"}, "observation.json_sha256": "775d3ae19a118bb4c622a4625d471a9cff26e473755d999e71b2eda1a44d19d2", "observation.json_bytes": 19511, "prompt.txt_sha256": "e8239bfa15ae896e0c3137ce6c06efa7e5667aaa8ae7a8cf3baba020880d4ec4", "prompt.txt_bytes": 45033, "events.jsonl_sha256": "01bef8363499ecffb23b03f556acacf23b869a9ddf2cafaaab906d2497932cd1", "events.jsonl_bytes": 893, "cli_events": [{"type": "thread.started", "thread_id": "01a13ebe-4bf1-7863-8422-42c417e31c00"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"code\",\"payload\":\"const r = rea.call(\\\"inspect_analysis_view\\\", {source:{kind:\\\"retained-evidence\\\",evidence_id:\\\"ev_ce94ee92b615954b17c4ee0f6895864d35f0e03039b82dbb5fff85d44bbf3cca\\\"},view:{kind:\\\"page\\\",collection:\\\"modules\\\",offset:0,limit:10000}}); print(JSON.stringify(r));\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 20497, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 244, "reasoning_output_tokens": 135}}], "stderr.log_sha256": "6f7c32c0eae7f76132827bec4775af1e88bd6d0eaa3a215bb613193f329e490a", "stderr.log_bytes": 263, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/dependencies/obsidian-dependencies-code/profile-bk_w1r4o/codex\"))\n"}
|
||||
{"round": "round-03", "action.json_sha256": "5b14aa673e72a94cf83f257979a414ab6210904d5ac21d0bf4a5fd1fce8b1a98", "action.json_bytes": 357, "action": {"kind": "code", "payload": "const r=rea.call(\"inspect_analysis_view\",{source:{kind:\"retained-evidence\",evidence_id:\"ev_ce94ee92b615954b17c4ee0f6895864d35f0e03039b82dbb5fff85d44bbf3cca\"},view:{kind:\"item\",collection:\"modules\",selector:{node_id:\"jag_node_15b5b46dfcbc20cac7c7a059a511b8aec92d52aa9035a505fe2c42060ada\"}}}); print(JSON.stringify(r));"}, "observation.json_sha256": "761c9ad002f0e52baf9c3759fce4e17a0969129df42dcbc385cf69ac98d9f28c", "observation.json_bytes": 808, "prompt.txt_sha256": "f007dcb0f0cb264c6b882c349f9992c6386ae5b4034f2b624a25777cdcc09bbb", "prompt.txt_bytes": 64859, "events.jsonl_sha256": "ec87dc6f879abe45886700aa5d0db8c09b6a930ac4914cada29a9844b2581d6e", "events.jsonl_bytes": 970, "cli_events": [{"type": "thread.started", "thread_id": "01a13ebe-a37c-7f01-ba00-8a7587fb1f0e"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"code\",\"payload\":\"const r=rea.call(\\\"inspect_analysis_view\\\",{source:{kind:\\\"retained-evidence\\\",evidence_id:\\\"ev_ce94ee92b615954b17c4ee0f6895864d35f0e03039b82dbb5fff85d44bbf3cca\\\"},view:{kind:\\\"item\\\",collection:\\\"modules\\\",selector:{node_id:\\\"jag_node_15b5b46dfcbc20cac7c7a059a511b8aec92d52aa9035a505fe2c42060ada\\\"}}}); print(JSON.stringify(r));\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 26146, "cached_input_tokens": 20224, "cache_write_input_tokens": 0, "output_tokens": 329, "reasoning_output_tokens": 185}}], "stderr.log_sha256": "6f7c32c0eae7f76132827bec4775af1e88bd6d0eaa3a215bb613193f329e490a", "stderr.log_bytes": 263, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/dependencies/obsidian-dependencies-code/profile-bk_w1r4o/codex\"))\n"}
|
||||
{"round": "round-04", "action.json_sha256": "9f4170571d07bbfc9aac2f1a2621795aa99f327a5cff09b85a0aa17506f45d02", "action.json_bytes": 112, "action": {"kind": "answer", "payload": "\"Awaiting the item-fact observations needed to compute the requested inventory.\""}, "prompt.txt_sha256": "cde639478e9cba935eb9ab6fda31c6293245d531a707b6e3506b1bae6bd3dc50", "prompt.txt_bytes": 66051, "events.jsonl_sha256": "5ee942ab5ccdbd0a563a188f8ec382a3ec55c9b4e0f54a2163982c0ba4c39001", "events.jsonl_bytes": 3169, "cli_events": [{"type": "thread.started", "thread_id": "01a13ebf-13a1-7d81-bc8f-753242721ea3"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"code\",\"payload\":\"const src={kind:\\\"retained-evidence\\\",evidence_id:\\\"ev_ce94ee92b615954b17c4ee0f6895864d35f0e03039b82dbb5fff85d44bbf3cca\\\"}; const ids=[\\\"jag_node_15b5b46dfcbc20cac7c7a9c7b2d2efe21d39cecc77bb3a42e86506ac480c6cd0\\\",\\\"jag_node_288149271a58cce3ef8ca8fcadfc24618bb0a4255724e5440605400bbbd61afb\\\",\\\"jag_node_3b78134c949c0ddae48a6c44419bfad0e1820ac0e2807bc433e14fe553e9bf33\\\",\\\"jag_node_42f0ba1369248f1d0ee7dc7e5deccdb6d03b34696d7c9b587b29561b055a0e2c\\\",\\\"jag_node_61561f95fa66efe6525b31567954c8a58bd0f3667b208e85d3c7d760ec396cdd\\\",\\\"jag_node_6728bd2855597b2b521020668ce9f4e1578b1769ad6b07cb516e142811ba3015\\\",\\\"jag_node_7290cf330a4c464680051bf158a11737c88d9b658d12b8ca33dad9d9ed5bbd43\\\",\\\"jag_node_72933fe5ad0b3d02bc689bbec5b98e57781a9e0642402e79d29dd84a40c4add3\\\",\\\"jag_node_74570cc130ee00964df34197958ce329e59db8b64add4f152b4c9dbaa459c620\\\",\\\"jag_node_82249640deb32652d0071229456acdeae30c3713f8cee3fb82d70352dbea476f\\\",\\\"jag_node_842abef9a77ef072b5bc55e00dda19a5b6039ae08288fb1c66240fa6c0321588\\\",\\\"jag_node_a15518c53e559509aa493fc7a059a511b8aec92d52aa9035a505fe2c42060ada\\\",\\\"jag_node_a2953a5694265708ca5deaa4162924db5aa6ec0fe23179473703e2415da6f20d\\\",\\\"jag_node_a304199f3cdfbb132783f2ef19661c97cf6538f6f9e0d2241ebd38a905fa03f5\\\",\\\"jag_node_a7c8f694bd07b5387690de4a25f3dff858865973ff593bb314159b8932c86c15\\\",\\\"jag_node_bc3fca896e4b81c6783517a7fe5c51c8e2c9e5d88eef9bd4f571f9230b5e544b\\\",\\\"jag_node_c74ef2b3509a9072fea733eb720e062f258b2ba13a163c5e50134f76ca8a1030\\\",\\\"jag_node_d678d9ad35db0904fa9af07f745d833b1fd0795211a29e6386551441701f1ea0\\\",\\\"jag_node_e0c8fcd14b723dfb42a5fcabf4ddc6c596d37cc1704c34f1d09456857afaa1a4\\\",\\\"jag_node_e74390bbf11499840fd0d861d90d1e0a9ca4edf57b8eb81dd13287e040979f5b\\\",\\\"jag_node_eaf187fce5c5c6b53bc0f391e658c3a63d73572bc4203b1f221652689777744e\\\",\\\"jag_node_fafc7c8e6c5aa1793108013819c957c7cc427d09fb0ad72f5311fdedb77ca1b2\\\",\\\"jag_node_fe6988c196f390298badd9cd9530548d189f2a76953fbe4898fd5a652e300db4\\\"]; const rs=ids.map(id=>rea.call(\\\"inspect_analysis_view\\\",{source:src,view:{kind:\\\"item\\\",collection:\\\"modules\\\",selector:{node_id:id}}})); function fact(r){const v=r&&r.value; const n=v&&v.normalized_result; return {evidence_id:v&&v.evidence_id,normalized_result:n};} print(JSON.stringify(rs.map(fact)));\"}"}}, {"type": "item.completed", "item": {"id": "item_2", "type": "agent_message", "text": "{\"kind\":\"answer\",\"payload\":\"\\\"Awaiting the item-fact observations needed to compute the requested inventory.\\\"\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 26515, "cached_input_tokens": 7936, "cache_write_input_tokens": 0, "output_tokens": 1681, "reasoning_output_tokens": 547}}], "stderr.log_sha256": "6f7c32c0eae7f76132827bec4775af1e88bd6d0eaa3a215bb613193f329e490a", "stderr.log_bytes": 263, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/dependencies/obsidian-dependencies-code/profile-bk_w1r4o/codex\"))\n"}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"external_specifiers": {
|
||||
"child_process": 1,
|
||||
"crypto": 1,
|
||||
"electron": 2,
|
||||
"fs": 3,
|
||||
"net": 1,
|
||||
"original-fs": 2,
|
||||
"os": 2,
|
||||
"path": 3,
|
||||
"url": 1,
|
||||
"util": 1
|
||||
},
|
||||
"module_identity_count": 23,
|
||||
"external_module_count": 10,
|
||||
"inventory_exhausted": true,
|
||||
"runtime_load_proven": false,
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"evidence_ids": [
|
||||
"ev_50b7871563e88ebff64c427549faf311865ec6c8b7a17d61044b1a502757098e",
|
||||
"ev_81fc0685b521de24f0814031ec4d2230cb4b250b957959a6a16f37298d73a2b9",
|
||||
"ev_96260f086b225ac0ee17bfba751484689651752be621369a3451ea931186eb19",
|
||||
"ev_d15ba8ee24b193787f284d52e4a6d635eeea770dd05a2a7021dc1fdb3e29b449",
|
||||
"ev_f69723c99318756f0462be1ce9939e392bebbbd72d2f18bef9a8a19e880db261",
|
||||
"ev_cdb36ff0317dcc5610af41f61a4be98066acf7bf92c84becba4ac84f953ae41d",
|
||||
"ev_49ad1905bd9a41f4ccf66dff87691876f9c6459f85c2f2f0f79a63984bc9d57a",
|
||||
"ev_a4c91b24573fb27b98bee99eaf9f2ce5551bba8f352fc6f3a2ebe2d11d7333cc",
|
||||
"ev_036369aeda99a5b7062fea638653e02e629a29cf78f42d6a4a7f411774a3a9c9",
|
||||
"ev_c8e029449993ce395212d84b6a4cdd61caf5609fec72e2312fc04cf2e2d11104",
|
||||
"ev_35383118f9cca4880562111a5e414008796d4b8c94699146ba211ba1ddb843f4",
|
||||
"ev_58782b3b0a49141b3d148c097ce0cb2237388091fc0040ad47bc91598241c40b"
|
||||
],
|
||||
"limitations": "Counts are limited to retained javascript-module identities at main.js and the specified unresolved-semantic-module external: selector; unresolved-reference identities were excluded. Findings are inert static observations and do not establish runtime loading; parent semantic graph coverage is partial."
|
||||
}
|
||||
+181
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_036369aeda99a5b7062fea638653e02e629a29cf78f42d6a4a7f411774a3a9c9",
|
||||
"ev_0374315eb4a053f5b55f0db687b3722beaf9906f0eb76841bd2a14425b9d97f6",
|
||||
"ev_04e8f8a481415de493e4fb1820ef211a0f663dc39a2586b323e9ebc9d21fd86a",
|
||||
"ev_1554594d47b54fba4c696b7ad6e6f126667acb706573cc9497231d864f0b1d63",
|
||||
"ev_1a6ade3f04b43528a1c29ccaea7bfa99f794074a4634e1bad56627a7276cb218",
|
||||
"ev_1d9f882852eba28637ff233d65c704d6de4c7586d9c0ba52ccd814b3384df1fe",
|
||||
"ev_35383118f9cca4880562111a5e414008796d4b8c94699146ba211ba1ddb843f4",
|
||||
"ev_3babb921b61f3bca0e135344ba65131ce6843c2aea5a8723c0b097bbb8801c24",
|
||||
"ev_49ad1905bd9a41f4ccf66dff87691876f9c6459f85c2f2f0f79a63984bc9d57a",
|
||||
"ev_5044ab2192942ff940455774f2bdca557c194082eee83d118f6cf1b74df287fb",
|
||||
"ev_50b7871563e88ebff64c427549faf311865ec6c8b7a17d61044b1a502757098e",
|
||||
"ev_58782b3b0a49141b3d148c097ce0cb2237388091fc0040ad47bc91598241c40b",
|
||||
"ev_5984df99eea713f4fa463eb5c2909b25511e45890af81b1cc867d2d92e8d62ff",
|
||||
"ev_65c4b71a025f9941ca02a12d98616987819135be9152fd30fbba61eea72ca461",
|
||||
"ev_67526d2296b8e120696016c10df6273a864acbab8ba9159cb36cb3cf0e9391be",
|
||||
"ev_7b05704415f94a6738e7f66e256ebaf6e438a328247ad7fe853004f95410e635",
|
||||
"ev_81fc0685b521de24f0814031ec4d2230cb4b250b957959a6a16f37298d73a2b9",
|
||||
"ev_96260f086b225ac0ee17bfba751484689651752be621369a3451ea931186eb19",
|
||||
"ev_9e11b823103a5c609a751c4426c1612326efa83b0d307a8868f17f0f3359eaa4",
|
||||
"ev_a405b0482788bddbf65ebd025b587778299ac204e0f726ee8c535087c123b12f",
|
||||
"ev_a4c91b24573fb27b98bee99eaf9f2ce5551bba8f352fc6f3a2ebe2d11d7333cc",
|
||||
"ev_afcbbda7e3b2be710ea7924675bb30f582e7312f752cfda3a95528bfd9b7cc21",
|
||||
"ev_b02de862a47359748288572723983249532bac65fb313fd3bfbf0d61a83c3b19",
|
||||
"ev_bdc2fb1ec24204c93f0def264db39e67416e94b13ea6c5abf13f4c0f6b84fb00",
|
||||
"ev_c8e029449993ce395212d84b6a4cdd61caf5609fec72e2312fc04cf2e2d11104",
|
||||
"ev_cdb36ff0317dcc5610af41f61a4be98066acf7bf92c84becba4ac84f953ae41d",
|
||||
"ev_d15ba8ee24b193787f284d52e4a6d635eeea770dd05a2a7021dc1fdb3e29b449",
|
||||
"ev_d6ffcbc00576adb7c4581fa9c2d8ef0bf2f3fa0930b11db5bd8b671f585d2f21",
|
||||
"ev_f69723c99318756f0462be1ce9939e392bebbbd72d2f18bef9a8a19e880db261"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "a5a4ff1d04698c715a626643aef2105b7e6deda2e3123f0e341353c1ce5ba116",
|
||||
"bytes": 29159
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "ba49916b9d421915c26713be01fa0dec6edc5359faa8afd2cccfa0474e78a1db",
|
||||
"bytes": 2820
|
||||
},
|
||||
{
|
||||
"file": "call-003.json",
|
||||
"sha256": "3402917f5e92afa956afe02a3e141f378232d54c23fbe97b68f6a5131b7d0d08",
|
||||
"bytes": 38031
|
||||
},
|
||||
{
|
||||
"file": "call-004.json",
|
||||
"sha256": "cf5e3faa4a5ed1074afe5fbb7be21cb0964351369191e9789f2230ab811f743e",
|
||||
"bytes": 22181
|
||||
},
|
||||
{
|
||||
"file": "call-005.json",
|
||||
"sha256": "a12d1ef56b77852c93cda15bfd9857387d345f588e19ca095fd9e0211ad6960c",
|
||||
"bytes": 22185
|
||||
},
|
||||
{
|
||||
"file": "call-006.json",
|
||||
"sha256": "efd75257e342fe5081750450b345c61832b94808e6c410da417c3f5920b1deb2",
|
||||
"bytes": 22185
|
||||
},
|
||||
{
|
||||
"file": "call-007.json",
|
||||
"sha256": "9e333706fbc42787b56bc8783b1b5f6e92822a5faca7f7c3e5bae3af5d9a8804",
|
||||
"bytes": 30167
|
||||
},
|
||||
{
|
||||
"file": "call-008.json",
|
||||
"sha256": "b2aae885bee67c941839c03d02645e3447b90ae15a12fc0bbe6e0a5444dec6c0",
|
||||
"bytes": 26725
|
||||
},
|
||||
{
|
||||
"file": "call-009.json",
|
||||
"sha256": "0f11e8a620ce45f31ac4069edd3c1da994dee2893d1744fc08446fc318f94bcf",
|
||||
"bytes": 32595
|
||||
},
|
||||
{
|
||||
"file": "call-010.json",
|
||||
"sha256": "c0d0a626f803cb863ee08ac00013e3ab90c9386612e7b34ea49742920749ceb5",
|
||||
"bytes": 27285
|
||||
},
|
||||
{
|
||||
"file": "call-011.json",
|
||||
"sha256": "47f8503118d9a950d26f140b9140e16ea242cd0ac9326dca5665f1d484ee192b",
|
||||
"bytes": 28831
|
||||
},
|
||||
{
|
||||
"file": "call-012.json",
|
||||
"sha256": "443bab4b5eb11f33a17bdcac167a2284082fd4075874593cf2fb276a208b0461",
|
||||
"bytes": 26055
|
||||
},
|
||||
{
|
||||
"file": "call-013.json",
|
||||
"sha256": "09a7108db584cae6bd8f47191ffc0b4f9d9e1dba8e3adecf3b47d78331c2f1b2",
|
||||
"bytes": 26779
|
||||
},
|
||||
{
|
||||
"file": "call-014.json",
|
||||
"sha256": "09e11a3d317b13e7e4bc53720b7f3d0850809bdd645c5d8428b5a83fc2f7f71a",
|
||||
"bytes": 26749
|
||||
},
|
||||
{
|
||||
"file": "call-015.json",
|
||||
"sha256": "626d13d98ddeb568fc40948b833c9eff1621c470e9b7e635ff0847c0e18f4f6d",
|
||||
"bytes": 26719
|
||||
},
|
||||
{
|
||||
"file": "call-016.json",
|
||||
"sha256": "960bb8b6f7972449cab16cc12e92c8beb52848cd78b3c17f209f14dff3b44b8c",
|
||||
"bytes": 26025
|
||||
},
|
||||
{
|
||||
"file": "call-017.json",
|
||||
"sha256": "ede8ea1af1724c874c6a8b1928c476c86dc0797ed15eba2dd68ce5cd8b2af79e",
|
||||
"bytes": 33437
|
||||
},
|
||||
{
|
||||
"file": "call-018.json",
|
||||
"sha256": "52463359a25a4e43962099e39abd91b2af7b3b540a9a3fbf277e6ec5cf7dfa06",
|
||||
"bytes": 33409
|
||||
},
|
||||
{
|
||||
"file": "call-019.json",
|
||||
"sha256": "41d23d8ac1d686480cb8d535e552797c08e453780a7adb8f52ddd7bf709d6cba",
|
||||
"bytes": 31355
|
||||
},
|
||||
{
|
||||
"file": "call-020.json",
|
||||
"sha256": "23721920f2dc95b19d8cf6beef0ecfa0f22ca6937f2510192cb8126d4da85fdc",
|
||||
"bytes": 30053
|
||||
},
|
||||
{
|
||||
"file": "call-021.json",
|
||||
"sha256": "62d23bf79fc7fcdec86ece2b51fcc1f31f857b6ccf95ed4e9989a5a8086e4a87",
|
||||
"bytes": 26025
|
||||
},
|
||||
{
|
||||
"file": "call-022.json",
|
||||
"sha256": "4230d912806c68067e5af99cae04c2bf802bbc1ab84f2d11cfcd6847bd8fd3a8",
|
||||
"bytes": 30129
|
||||
},
|
||||
{
|
||||
"file": "call-023.json",
|
||||
"sha256": "8a478a05c298c629d9955801085079d5a7f991b5f3112451c55f082d5c107eb9",
|
||||
"bytes": 26085
|
||||
},
|
||||
{
|
||||
"file": "call-024.json",
|
||||
"sha256": "7968d6103e9da26ee56f456499cd3da1735a180545dfd7e39b05218095dda122",
|
||||
"bytes": 26719
|
||||
},
|
||||
{
|
||||
"file": "call-025.json",
|
||||
"sha256": "ba3cb1f3fa3a39e9610ed92859a37170840cfbfad51bd56d7b42cf88506669d7",
|
||||
"bytes": 28679
|
||||
},
|
||||
{
|
||||
"file": "call-026.json",
|
||||
"sha256": "e41352c42611dced7247985322e7b2c96db199edacba3dbbc75e42404997ea60",
|
||||
"bytes": 28869
|
||||
},
|
||||
{
|
||||
"file": "call-027.json",
|
||||
"sha256": "f7a7a05f9aa8490b0371c990c254b5f444487e40a1ac7fb56e4333ced8287133",
|
||||
"bytes": 31383
|
||||
},
|
||||
{
|
||||
"file": "call-028.json",
|
||||
"sha256": "a16cd20fb11ebde0663998800bf8e0875eb485c7b59758b7e9c2aebb1e55f227",
|
||||
"bytes": 26021
|
||||
},
|
||||
{
|
||||
"file": "call-029.json",
|
||||
"sha256": "3d81f8316dc002fcefebc4d3939ea20118d94ea62057b3442a6cd8b4d0d3766d",
|
||||
"bytes": 26031
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"arm": "direct",
|
||||
"task": "obsidian-dependencies",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 195311,
|
||||
"cached_input_tokens": 23808,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 5264,
|
||||
"reasoning_output_tokens": 1316
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 14.13893327000551,
|
||||
"prompt_bytes": 16472,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 13538,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 52,
|
||||
"reasoning_output_tokens": 26
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0014517700765281916,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 23.145191970979795,
|
||||
"prompt_bytes": 44553,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20191,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 147,
|
||||
"reasoning_output_tokens": 45
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.00822215003427118,
|
||||
"observation_bytes": 2840
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 29.328398970072158,
|
||||
"prompt_bytes": 47724,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 21742,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 479,
|
||||
"reasoning_output_tokens": 130
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.209606381948106,
|
||||
"observation_bytes": 51160
|
||||
},
|
||||
{
|
||||
"round": 4,
|
||||
"model_seconds": 28.83705822203774,
|
||||
"prompt_bytes": 100013,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 33774,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 3237,
|
||||
"reasoning_output_tokens": 416
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.19848954200278968,
|
||||
"observation_bytes": 320201
|
||||
},
|
||||
{
|
||||
"round": 5,
|
||||
"model_seconds": 53.651521216961555,
|
||||
"prompt_bytes": 428228,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 106066,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1349,
|
||||
"reasoning_output_tokens": 699
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 223.7188864540076,
|
||||
"preparation_seconds": 74.04508336109575,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "17dd78b27ebc6b9553c93ebd7850e2e99d5a557f4a8b065a846dec88acf1d6bf",
|
||||
"compositional_followup": true,
|
||||
"max_rounds": 32,
|
||||
"sources_sha256_at_start": {
|
||||
"trial.py": "6dde94216429da0ebe5af5e268361e742011526e20965e742e5d3a83d01e2a1d",
|
||||
"backend.mjs": "afc072ea5aefcd473094fba1cb6df3834eb725a27a0b2be30cd27c1c98dca819"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-264d830d7254482e82583e320b4e6d55.scope",
|
||||
"peak_cgroup_bytes_sampled": 1150828544,
|
||||
"elapsed_seconds": 224.162,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 91,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 67007292,
|
||||
"user_usec": 56374112,
|
||||
"system_usec": 10633180,
|
||||
"nr_periods": 2171,
|
||||
"nr_throttled": 1,
|
||||
"throttled_usec": 2331,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-264d830d7254482e82583e320b4e6d55.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2684334,
|
||||
"remaining_processes": [
|
||||
2684334
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 67006095,
|
||||
"user_usec": 56372914,
|
||||
"system_usec": 10633180,
|
||||
"nr_periods": 2170,
|
||||
"nr_throttled": 1,
|
||||
"throttled_usec": 2331,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1187274752,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-264d830d7254482e82583e320b4e6d55.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+5
File diff suppressed because one or more lines are too long
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"id": "obsidian-dependencies",
|
||||
"tools": [
|
||||
"analyze_javascript_application",
|
||||
"inspect_analysis_view"
|
||||
],
|
||||
"bootstrap": {
|
||||
"tool": "analyze_javascript_application",
|
||||
"arguments": {
|
||||
"input_path": "/tmp/rea-codemode-experiment-20261015/artifacts/obsidian-1.14.4.asar",
|
||||
"source_paths": [
|
||||
"package.json",
|
||||
"main.js"
|
||||
],
|
||||
"detail": "summary"
|
||||
}
|
||||
},
|
||||
"question": "For a packaging/sandboxing review of the actual shipped Obsidian main.js, inventory every retained javascript-module identity at that exact path and inspect its item facts. Return external_specifiers as an object mapping each literal external module specifier to its number of retained source_ranges, selecting only identity.namespace unresolved-semantic-module with identity.key starting external:. Strip only that prefix. Do not count unresolved-reference identities a second time. Return module_identity_count (all javascript-module identities for main.js), external_module_count, inventory_exhausted, runtime_load_proven (boolean), artifact_sha256 (the original ASAR digest), evidence_ids (sufficient actual supporting REA Evidence IDs), and concise limitations. Do not execute target code, fetch URLs, infer installed versions or claim runtime loading from static references. The initial selected-source summary and retained parent are supplied. Use the smallest sufficient observations and finish once all requested facts are supported."
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"obsidian-dependencies": {
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"external_specifiers": {
|
||||
"original-fs": 2,
|
||||
"url": 1,
|
||||
"net": 1,
|
||||
"os": 2,
|
||||
"path": 3,
|
||||
"fs": 3,
|
||||
"util": 1,
|
||||
"child_process": 1,
|
||||
"electron": 2,
|
||||
"crypto": 1
|
||||
},
|
||||
"module_identity_count": 23,
|
||||
"external_module_count": 10,
|
||||
"inventory_exhausted": true,
|
||||
"runtime_load_proven": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"scope": "Exploratory follow-up, one dependent-read task and one pair; no statistical claim",
|
||||
"oracle_scope": "Separate retained producer Evidence consistency, not independent semantic validation",
|
||||
"protocol": "Direct batches permitted; code explicitly instructed to project/combine before print",
|
||||
"trials": [
|
||||
{
|
||||
"task": "obsidian-dependencies",
|
||||
"arm": "code",
|
||||
"task_file": "obsidian-dependencies.json",
|
||||
"task_sha256": "17dd78b27ebc6b9553c93ebd7850e2e99d5a557f4a8b065a846dec88acf1d6bf"
|
||||
},
|
||||
{
|
||||
"task": "obsidian-dependencies",
|
||||
"arm": "direct",
|
||||
"task_file": "obsidian-dependencies.json",
|
||||
"task_sha256": "17dd78b27ebc6b9553c93ebd7850e2e99d5a557f4a8b065a846dec88acf1d6bf"
|
||||
}
|
||||
]
|
||||
}
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"scope": "Exploratory follow-up, one dependent-read task and one pair; no statistical claim",
|
||||
"oracle_scope": "Separate retained producer Evidence consistency, not independent semantic validation",
|
||||
"trials": [
|
||||
{
|
||||
"trial": "obsidian-dependencies-code",
|
||||
"arm": "code",
|
||||
"task": "obsidian-dependencies",
|
||||
"answer_type": "str",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": false,
|
||||
"external_specifiers": false,
|
||||
"module_identity_count": false,
|
||||
"external_module_count": false,
|
||||
"inventory_exhausted": false,
|
||||
"runtime_load_proven": false,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": false,
|
||||
"limitations_present": false
|
||||
},
|
||||
"facts_pass": false,
|
||||
"usage": {
|
||||
"input_tokens": 86794,
|
||||
"cached_input_tokens": 28160,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 2333,
|
||||
"reasoning_output_tokens": 920
|
||||
},
|
||||
"uncached_input_tokens": 58634,
|
||||
"usage_complete": true,
|
||||
"rounds": 4,
|
||||
"max_request_input_tokens": 26515,
|
||||
"model_observation_bytes": 48318,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 136.63398639601655,
|
||||
"whole_scope_seconds": 136.984,
|
||||
"preparation_seconds": 19.817954760044813,
|
||||
"question_seconds": 116.81603163597174,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 30.942221,
|
||||
"peak_bytes_at_payload_exit": 1203978240,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 3,
|
||||
"code_actions": 2,
|
||||
"success": false
|
||||
},
|
||||
{
|
||||
"trial": "obsidian-dependencies-direct",
|
||||
"arm": "direct",
|
||||
"task": "obsidian-dependencies",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"external_specifiers": true,
|
||||
"module_identity_count": true,
|
||||
"external_module_count": true,
|
||||
"inventory_exhausted": true,
|
||||
"runtime_load_proven": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": true,
|
||||
"usage": {
|
||||
"input_tokens": 195311,
|
||||
"cached_input_tokens": 23808,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 5264,
|
||||
"reasoning_output_tokens": 1316
|
||||
},
|
||||
"uncached_input_tokens": 171503,
|
||||
"usage_complete": true,
|
||||
"rounds": 5,
|
||||
"max_request_input_tokens": 106066,
|
||||
"model_observation_bytes": 402200,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 223.7188864540076,
|
||||
"whole_scope_seconds": 224.162,
|
||||
"preparation_seconds": 74.04508336109575,
|
||||
"question_seconds": 149.67380309291184,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 67.006095,
|
||||
"peak_bytes_at_payload_exit": 1187274752,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 29,
|
||||
"code_actions": 0,
|
||||
"success": true
|
||||
}
|
||||
],
|
||||
"accepted_shapes": "node_ids may be a list or a mapping of kinds to lists; sender_validation_observations may be a count object; limitations may be prose or a string list. Exact facts still required.",
|
||||
"narrative_review": "Required separately: supporting IDs alone do not establish claim-level support."
|
||||
}
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"groups": [
|
||||
{
|
||||
"hostname": "excalidraw.com",
|
||||
"status": 200,
|
||||
"count": 28,
|
||||
"record_ordinals": [
|
||||
0,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
11,
|
||||
12,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
37
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "excalidraw.com",
|
||||
"status": -1,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
38
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "excalidraw.nyc3.cdn.digitaloceanspaces.com",
|
||||
"status": 200,
|
||||
"count": 7,
|
||||
"record_ordinals": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
13,
|
||||
14,
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "scripts.simpleanalyticscdn.com",
|
||||
"status": 200,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
8
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "queue.simpleanalyticscdn.com",
|
||||
"status": 202,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
9
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "sentry.io",
|
||||
"status": 200,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
10
|
||||
]
|
||||
}
|
||||
],
|
||||
"observed_records": 39,
|
||||
"coverage_exhausted": true,
|
||||
"artifact_sha256": "680483155d4e0d4a67aca437de5309e741580f4710c170de508b8d0bd9fdb9e9",
|
||||
"evidence_ids": [
|
||||
"ev_19c67ae83e4d0eb7565a6d93a85de3a01f590d019bf6dd8988e84394c043208c"
|
||||
],
|
||||
"limitations": [
|
||||
"Observed frozen HAR startup window only; not a complete application API inventory.",
|
||||
"Historical capture does not establish live runtime attribution or deployment authenticity.",
|
||||
"Status -1 is preserved as recorded and does not establish an HTTP response."
|
||||
]
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_19c67ae83e4d0eb7565a6d93a85de3a01f590d019bf6dd8988e84394c043208c",
|
||||
"ev_d778c748f38af1f4b688d29cf54dc9e5fa23f20105b32613829ae38636a6984a",
|
||||
"ev_e7751f29c4b387430383fed7ea586235f74731e86e4f918d11b636c95e95a700"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "30d797c20b09c2d3f5f9327094ab862e11224fbab9aa5a317afd773ab87198e0",
|
||||
"bytes": 8153
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "f932a6a65dcc97f39559bdfd54166d6e511d346df87fb27b4f387d2b97e18982",
|
||||
"bytes": 87921
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"arm": "code",
|
||||
"task": "excalidraw-network",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 59768,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1040,
|
||||
"reasoning_output_tokens": 505
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 13.599794295034371,
|
||||
"prompt_bytes": 6017,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 11630,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 57,
|
||||
"reasoning_output_tokens": 31
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0014181999722495675,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 15.57282345299609,
|
||||
"prompt_bytes": 34098,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 18491,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 195,
|
||||
"reasoning_output_tokens": 90
|
||||
},
|
||||
"action_kind": "code",
|
||||
"action_seconds": 0.2751401150599122,
|
||||
"observation_bytes": 42172
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 30.866782409953885,
|
||||
"prompt_bytes": 76561,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 29647,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 788,
|
||||
"reasoning_output_tokens": 384
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 73.09337004297413,
|
||||
"preparation_seconds": 12.543102559982799,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "89d087a5b39097b390a5cfaf1f0f32925854cfd590fffb60dd9a56099ea7fb1b",
|
||||
"sources_sha256": {
|
||||
"trial.py": "b57718d1c44f4300d9d4f3f0b8979f4a532d51073c728e006ad9ff922b46773d",
|
||||
"backend.mjs": "687cab7f83ba0d7e7bff42c094bfd9a68a03f66f65cd4d2a4a942b745e81de40"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-f2212dd2f0494aabbd2e2ab6018dd037.scope",
|
||||
"peak_cgroup_bytes_sampled": 1182441472,
|
||||
"elapsed_seconds": 73.455,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 88,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 18119282,
|
||||
"user_usec": 14262742,
|
||||
"system_usec": 3856540,
|
||||
"nr_periods": 707,
|
||||
"nr_throttled": 17,
|
||||
"throttled_usec": 26832,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-f2212dd2f0494aabbd2e2ab6018dd037.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2675728,
|
||||
"remaining_processes": [
|
||||
2675728
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 18117867,
|
||||
"user_usec": 14261627,
|
||||
"system_usec": 3856239,
|
||||
"nr_periods": 706,
|
||||
"nr_throttled": 17,
|
||||
"throttled_usec": 26832,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1191456768,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-f2212dd2f0494aabbd2e2ab6018dd037.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
{"round": "round-01", "action.json_sha256": "bbd836b30411d209eab2e2a4e7fada08b322d90d982e6e3fa71fb55cf450238e", "action.json_bytes": 55, "action": {"kind": "docs", "payload": "[\"inspect_analysis_view\"]"}, "observation.json_sha256": "7127207640441dbd46bcd74b7d4f29bfd45b8bc65d2887344bae7901adfcfc1f", "observation.json_bytes": 27999, "prompt.txt_sha256": "7f6ecf5781d1e696cd083b1841d97b544312eced98b63df786f9d275f2a9f353", "prompt.txt_bytes": 6017, "events.jsonl_sha256": "f568801de8a3cfe9eea574f1ad7d6fd718450cc948f54c6c21d413e5e8a0bc48", "events.jsonl_bytes": 642, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb6-c694-7b70-a35f-5cefb38b8a31"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"docs\",\"payload\":\"[\\\"inspect_analysis_view\\\"]\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 11630, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 57, "reasoning_output_tokens": 31}}], "stderr.log_sha256": "8be6dbd274dcbbd918aeb9538e727dd287c2ff3edae8b8649d2330729970c632", "stderr.log_bytes": 254, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/excalidraw-network-code/profile-4tq2tr0o/codex\"))\n"}
|
||||
{"round": "round-02", "action.json_sha256": "f6bf810496c214bcf331c46e4b62cb8a662005583b0b2b886bf31d513e9b4aee", "action.json_bytes": 264, "action": {"kind": "code", "payload": "const r=rea.call(\"inspect_analysis_view\",{source:{kind:\"retained-evidence\",evidence_id:\"ev_d778c748f38af1f4b688d29cf54dc9e5fa23f20105b32613829ae38636a6984a\"},view:{kind:\"capture\",detail:\"preview\",offset:0,limit:39}});print(r);"}, "observation.json_sha256": "63b676bb55c119213825a066a7ffbdd9e25fc40a4f1f978327cb59c5eca5951d", "observation.json_bytes": 42172, "prompt.txt_sha256": "663939356ede9984f20b485249ee85fddce4ef7541475488138d5e95a7dd0b74", "prompt.txt_bytes": 34098, "events.jsonl_sha256": "f06482791ddf1d96b0edb50188341709c4ca090a0ab15fa5559fcc9b5ac38e30", "events.jsonl_bytes": 868, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb6-fb2a-7602-bfb7-6abe8663ae15"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"code\",\"payload\":\"const r=rea.call(\\\"inspect_analysis_view\\\",{source:{kind:\\\"retained-evidence\\\",evidence_id:\\\"ev_d778c748f38af1f4b688d29cf54dc9e5fa23f20105b32613829ae38636a6984a\\\"},view:{kind:\\\"capture\\\",detail:\\\"preview\\\",offset:0,limit:39}});print(r);\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 18491, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 195, "reasoning_output_tokens": 90}}], "stderr.log_sha256": "8be6dbd274dcbbd918aeb9538e727dd287c2ff3edae8b8649d2330729970c632", "stderr.log_bytes": 254, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/excalidraw-network-code/profile-4tq2tr0o/codex\"))\n"}
|
||||
{"round": "round-03", "action.json_sha256": "7854cee79fd5e7ee305d0cfc8094b947dda35d2b64fe27afb2d581f76c19b8e9", "action.json_bytes": 1214, "action": {"kind": "answer", "payload": "{\"groups\":[{\"hostname\":\"excalidraw.com\",\"status\":200,\"count\":28,\"record_ordinals\":[0,5,6,7,11,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]},{\"hostname\":\"excalidraw.com\",\"status\":-1,\"count\":1,\"record_ordinals\":[38]},{\"hostname\":\"excalidraw.nyc3.cdn.digitaloceanspaces.com\",\"status\":200,\"count\":7,\"record_ordinals\":[1,2,3,4,13,14,15]},{\"hostname\":\"scripts.simpleanalyticscdn.com\",\"status\":200,\"count\":1,\"record_ordinals\":[8]},{\"hostname\":\"queue.simpleanalyticscdn.com\",\"status\":202,\"count\":1,\"record_ordinals\":[9]},{\"hostname\":\"sentry.io\",\"status\":200,\"count\":1,\"record_ordinals\":[10]}],\"observed_records\":39,\"coverage_exhausted\":true,\"artifact_sha256\":\"680483155d4e0d4a67aca437de5309e741580f4710c170de508b8d0bd9fdb9e9\",\"evidence_ids\":[\"ev_19c67ae83e4d0eb7565a6d93a85de3a01f590d019bf6dd8988e84394c043208c\"],\"limitations\":[\"Observed frozen HAR startup window only; not a complete application API inventory.\",\"Historical capture does not establish live runtime attribution or deployment authenticity.\",\"Status -1 is preserved as recorded and does not establish an HTTP response.\"]}"}, "prompt.txt_sha256": "954dd85380b9fdbc4f8966155b3e7d9bc3bd06c35dd7c866fa0a042f8a35821d", "prompt.txt_bytes": 76561, "events.jsonl_sha256": "8e3d75e6685517a2f10224a6e109ef44b070bb00f390be2f6843f4344620afb8", "events.jsonl_bytes": 1963, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb7-3911-7f90-9b70-4283e2453eba"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"answer\",\"payload\":\"{\\\"groups\\\":[{\\\"hostname\\\":\\\"excalidraw.com\\\",\\\"status\\\":200,\\\"count\\\":28,\\\"record_ordinals\\\":[0,5,6,7,11,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]},{\\\"hostname\\\":\\\"excalidraw.com\\\",\\\"status\\\":-1,\\\"count\\\":1,\\\"record_ordinals\\\":[38]},{\\\"hostname\\\":\\\"excalidraw.nyc3.cdn.digitaloceanspaces.com\\\",\\\"status\\\":200,\\\"count\\\":7,\\\"record_ordinals\\\":[1,2,3,4,13,14,15]},{\\\"hostname\\\":\\\"scripts.simpleanalyticscdn.com\\\",\\\"status\\\":200,\\\"count\\\":1,\\\"record_ordinals\\\":[8]},{\\\"hostname\\\":\\\"queue.simpleanalyticscdn.com\\\",\\\"status\\\":202,\\\"count\\\":1,\\\"record_ordinals\\\":[9]},{\\\"hostname\\\":\\\"sentry.io\\\",\\\"status\\\":200,\\\"count\\\":1,\\\"record_ordinals\\\":[10]}],\\\"observed_records\\\":39,\\\"coverage_exhausted\\\":true,\\\"artifact_sha256\\\":\\\"680483155d4e0d4a67aca437de5309e741580f4710c170de508b8d0bd9fdb9e9\\\",\\\"evidence_ids\\\":[\\\"ev_19c67ae83e4d0eb7565a6d93a85de3a01f590d019bf6dd8988e84394c043208c\\\"],\\\"limitations\\\":[\\\"Observed frozen HAR startup window only; not a complete application API inventory.\\\",\\\"Historical capture does not establish live runtime attribution or deployment authenticity.\\\",\\\"Status -1 is preserved as recorded and does not establish an HTTP response.\\\"]}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 29647, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 788, "reasoning_output_tokens": 384}}], "stderr.log_sha256": "8be6dbd274dcbbd918aeb9538e727dd287c2ff3edae8b8649d2330729970c632", "stderr.log_bytes": 254, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/excalidraw-network-code/profile-4tq2tr0o/codex\"))\n"}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"groups": [
|
||||
{
|
||||
"hostname": "excalidraw.com",
|
||||
"status": -1,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
38
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "excalidraw.com",
|
||||
"status": 200,
|
||||
"count": 28,
|
||||
"record_ordinals": [
|
||||
0,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
11,
|
||||
12,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
37
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "excalidraw.nyc3.cdn.digitaloceanspaces.com",
|
||||
"status": 200,
|
||||
"count": 7,
|
||||
"record_ordinals": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
13,
|
||||
14,
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "queue.simpleanalyticscdn.com",
|
||||
"status": 202,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
9
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "scripts.simpleanalyticscdn.com",
|
||||
"status": 200,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
8
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "sentry.io",
|
||||
"status": 200,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
10
|
||||
]
|
||||
}
|
||||
],
|
||||
"observed_records": 39,
|
||||
"coverage_exhausted": true,
|
||||
"artifact_sha256": "680483155d4e0d4a67aca437de5309e741580f4710c170de508b8d0bd9fdb9e9",
|
||||
"evidence_ids": [
|
||||
"ev_e7751f29c4b387430383fed7ea586235f74731e86e4f918d11b636c95e95a700",
|
||||
"ev_19c67ae83e4d0eb7565a6d93a85de3a01f590d019bf6dd8988e84394c043208c"
|
||||
],
|
||||
"limitations": [
|
||||
"Observed frozen HAR startup window only; not a complete application API inventory.",
|
||||
"Historical capture does not establish live runtime behavior, execution attribution, or deployment authenticity.",
|
||||
"Status -1 is the producer-recorded HAR value, not an HTTP response status established by a live request.",
|
||||
"URLs were not fetched and response bodies were not inspected."
|
||||
]
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_19c67ae83e4d0eb7565a6d93a85de3a01f590d019bf6dd8988e84394c043208c",
|
||||
"ev_d778c748f38af1f4b688d29cf54dc9e5fa23f20105b32613829ae38636a6984a",
|
||||
"ev_e7751f29c4b387430383fed7ea586235f74731e86e4f918d11b636c95e95a700"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "30d797c20b09c2d3f5f9327094ab862e11224fbab9aa5a317afd773ab87198e0",
|
||||
"bytes": 8153
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "f932a6a65dcc97f39559bdfd54166d6e511d346df87fb27b4f387d2b97e18982",
|
||||
"bytes": 87921
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"arm": "direct",
|
||||
"task": "excalidraw-network",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 74055,
|
||||
"cached_input_tokens": 15872,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1041,
|
||||
"reasoning_output_tokens": 422
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 18.98218445503153,
|
||||
"prompt_bytes": 5695,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 11554,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 99,
|
||||
"reasoning_output_tokens": 72
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0009394199587404728,
|
||||
"observation_bytes": 4180
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 12.76291312102694,
|
||||
"prompt_bytes": 9963,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 12686,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 44,
|
||||
"reasoning_output_tokens": 18
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0015521700261160731,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 11.452104822965339,
|
||||
"prompt_bytes": 38044,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 19338,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 142,
|
||||
"reasoning_output_tokens": 41
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.13428218895569444,
|
||||
"observation_bytes": 42119
|
||||
},
|
||||
{
|
||||
"round": 4,
|
||||
"model_seconds": 13.31757359392941,
|
||||
"prompt_bytes": 80483,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 30477,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 756,
|
||||
"reasoning_output_tokens": 291
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 69.86348159005865,
|
||||
"preparation_seconds": 13.026660543051548,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "89d087a5b39097b390a5cfaf1f0f32925854cfd590fffb60dd9a56099ea7fb1b",
|
||||
"sources_sha256": {
|
||||
"trial.py": "b57718d1c44f4300d9d4f3f0b8979f4a532d51073c728e006ad9ff922b46773d",
|
||||
"backend.mjs": "687cab7f83ba0d7e7bff42c094bfd9a68a03f66f65cd4d2a4a942b745e81de40"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-13a29427a3ff4980a364f6aa8230de9f.scope",
|
||||
"peak_cgroup_bytes_sampled": 985112576,
|
||||
"elapsed_seconds": 70.221,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 93,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 18713064,
|
||||
"user_usec": 14128443,
|
||||
"system_usec": 4584621,
|
||||
"nr_periods": 659,
|
||||
"nr_throttled": 23,
|
||||
"throttled_usec": 18709,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-13a29427a3ff4980a364f6aa8230de9f.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2674502,
|
||||
"remaining_processes": [
|
||||
2674502
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 18711444,
|
||||
"user_usec": 14128443,
|
||||
"system_usec": 4583000,
|
||||
"nr_periods": 658,
|
||||
"nr_throttled": 23,
|
||||
"throttled_usec": 18709,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 990904320,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-13a29427a3ff4980a364f6aa8230de9f.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{"round": "round-01", "action.json_sha256": "edaa156dbadee5063e82ac6cd7d62832cbfe920848658fcd999da4a19bee9428", "action.json_bytes": 61, "action": {"kind": "docs", "payload": "[\"inspect_web_network_capture\"]"}, "observation.json_sha256": "bef81e46100c2bea9ff4ceb3ca8a6486e20b97862bd3e6e808e2a69dd11ef787", "observation.json_bytes": 4180, "prompt.txt_sha256": "a77d5f82b139132dc02a8c0c6b18b40def045e45eb77ba690fda8b11e9c3977b", "prompt.txt_bytes": 5695, "events.jsonl_sha256": "7c22f0268756d09b6d7709bb4ea671c2ae8b1640d4796c1fe03bd308935bd1e2", "events.jsonl_bytes": 651, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb5-b5fd-70e2-b92c-39cb4a08dca1"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"docs\",\"payload\":\"[\\\"inspect_web_network_capture\\\"]\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 11554, "cached_input_tokens": 7936, "cache_write_input_tokens": 0, "output_tokens": 99, "reasoning_output_tokens": 72}}], "stderr.log_sha256": "97842247fa4069b1fb57bd8c5ea844abaabb50c5184fe8705c515260ea25565c", "stderr.log_bytes": 256, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/excalidraw-network-direct/profile-2eqanqrx/codex\"))\n"}
|
||||
{"round": "round-02", "action.json_sha256": "bbd836b30411d209eab2e2a4e7fada08b322d90d982e6e3fa71fb55cf450238e", "action.json_bytes": 55, "action": {"kind": "docs", "payload": "[\"inspect_analysis_view\"]"}, "observation.json_sha256": "7127207640441dbd46bcd74b7d4f29bfd45b8bc65d2887344bae7901adfcfc1f", "observation.json_bytes": 27999, "prompt.txt_sha256": "e06e88251cc4f5419ff255ba58f39469f2f931b111433c91d4a2a6557915d4ae", "prompt.txt_bytes": 9963, "events.jsonl_sha256": "8ff5ec0a7edd64f3a382f3c1ed74ce74d1ff9e13e487a528eb864cb5704328b8", "events.jsonl_bytes": 642, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb5-ff89-7261-bc0e-0bf717500468"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"docs\",\"payload\":\"[\\\"inspect_analysis_view\\\"]\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 12686, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 44, "reasoning_output_tokens": 18}}], "stderr.log_sha256": "97842247fa4069b1fb57bd8c5ea844abaabb50c5184fe8705c515260ea25565c", "stderr.log_bytes": 256, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/excalidraw-network-direct/profile-2eqanqrx/codex\"))\n"}
|
||||
{"round": "round-03", "action.json_sha256": "c9fa89ff40bc564b15341d0311eddd5fa089045c010098a54210325a23df3cd3", "action.json_bytes": 293, "action": {"kind": "call", "payload": "{\"tool\":\"inspect_analysis_view\",\"arguments\":{\"source\":{\"kind\":\"retained-evidence\",\"evidence_id\":\"ev_d778c748f38af1f4b688d29cf54dc9e5fa23f20105b32613829ae38636a6984a\"},\"view\":{\"kind\":\"capture\",\"detail\":\"preview\",\"offset\":0,\"limit\":39}}}"}, "observation.json_sha256": "7e98eb10375a02c4ad222124f118ebec523ecebc48ceed835e8f5b9125d2f2d1", "observation.json_bytes": 42119, "prompt.txt_sha256": "0ccd1e939bbfc35877aa8f6652a5e599a7a383b4c3f6d481b0ea9e6f18bf1394", "prompt.txt_bytes": 38044, "events.jsonl_sha256": "66cf1171b7e20ab3cb667267be2ba9a047694473e38b7fb5924353644db124b8", "events.jsonl_bytes": 937, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb6-315d-7d21-bf66-6c38483c9a51"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"call\",\"payload\":\"{\\\"tool\\\":\\\"inspect_analysis_view\\\",\\\"arguments\\\":{\\\"source\\\":{\\\"kind\\\":\\\"retained-evidence\\\",\\\"evidence_id\\\":\\\"ev_d778c748f38af1f4b688d29cf54dc9e5fa23f20105b32613829ae38636a6984a\\\"},\\\"view\\\":{\\\"kind\\\":\\\"capture\\\",\\\"detail\\\":\\\"preview\\\",\\\"offset\\\":0,\\\"limit\\\":39}}}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 19338, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 142, "reasoning_output_tokens": 41}}], "stderr.log_sha256": "97842247fa4069b1fb57bd8c5ea844abaabb50c5184fe8705c515260ea25565c", "stderr.log_bytes": 256, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/excalidraw-network-direct/profile-2eqanqrx/codex\"))\n"}
|
||||
{"round": "round-04", "action.json_sha256": "8723a2eb70c9ab2898d17a059f8c6dbfbb9a86f33d0b2fefbef9df975c2399bb", "action.json_bytes": 1402, "action": {"kind": "answer", "payload": "{\"groups\":[{\"hostname\":\"excalidraw.com\",\"status\":-1,\"count\":1,\"record_ordinals\":[38]},{\"hostname\":\"excalidraw.com\",\"status\":200,\"count\":28,\"record_ordinals\":[0,5,6,7,11,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]},{\"hostname\":\"excalidraw.nyc3.cdn.digitaloceanspaces.com\",\"status\":200,\"count\":7,\"record_ordinals\":[1,2,3,4,13,14,15]},{\"hostname\":\"queue.simpleanalyticscdn.com\",\"status\":202,\"count\":1,\"record_ordinals\":[9]},{\"hostname\":\"scripts.simpleanalyticscdn.com\",\"status\":200,\"count\":1,\"record_ordinals\":[8]},{\"hostname\":\"sentry.io\",\"status\":200,\"count\":1,\"record_ordinals\":[10]}],\"observed_records\":39,\"coverage_exhausted\":true,\"artifact_sha256\":\"680483155d4e0d4a67aca437de5309e741580f4710c170de508b8d0bd9fdb9e9\",\"evidence_ids\":[\"ev_e7751f29c4b387430383fed7ea586235f74731e86e4f918d11b636c95e95a700\",\"ev_19c67ae83e4d0eb7565a6d93a85de3a01f590d019bf6dd8988e84394c043208c\"],\"limitations\":[\"Observed frozen HAR startup window only; not a complete application API inventory.\",\"Historical capture does not establish live runtime behavior, execution attribution, or deployment authenticity.\",\"Status -1 is the producer-recorded HAR value, not an HTTP response status established by a live request.\",\"URLs were not fetched and response bodies were not inspected.\"]}"}, "prompt.txt_sha256": "1cf8f95618519d93ea7c341c625a2c2a5e81c4f8d8657dab12327d4d90cc1b1d", "prompt.txt_bytes": 80483, "events.jsonl_sha256": "b8beaa41f0add510a9206a5f88fd807f56e5d5c06c47c6f1a21fd312b26b5851", "events.jsonl_bytes": 2162, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb6-5ea9-70d1-98d6-600c53403458"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"answer\",\"payload\":\"{\\\"groups\\\":[{\\\"hostname\\\":\\\"excalidraw.com\\\",\\\"status\\\":-1,\\\"count\\\":1,\\\"record_ordinals\\\":[38]},{\\\"hostname\\\":\\\"excalidraw.com\\\",\\\"status\\\":200,\\\"count\\\":28,\\\"record_ordinals\\\":[0,5,6,7,11,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]},{\\\"hostname\\\":\\\"excalidraw.nyc3.cdn.digitaloceanspaces.com\\\",\\\"status\\\":200,\\\"count\\\":7,\\\"record_ordinals\\\":[1,2,3,4,13,14,15]},{\\\"hostname\\\":\\\"queue.simpleanalyticscdn.com\\\",\\\"status\\\":202,\\\"count\\\":1,\\\"record_ordinals\\\":[9]},{\\\"hostname\\\":\\\"scripts.simpleanalyticscdn.com\\\",\\\"status\\\":200,\\\"count\\\":1,\\\"record_ordinals\\\":[8]},{\\\"hostname\\\":\\\"sentry.io\\\",\\\"status\\\":200,\\\"count\\\":1,\\\"record_ordinals\\\":[10]}],\\\"observed_records\\\":39,\\\"coverage_exhausted\\\":true,\\\"artifact_sha256\\\":\\\"680483155d4e0d4a67aca437de5309e741580f4710c170de508b8d0bd9fdb9e9\\\",\\\"evidence_ids\\\":[\\\"ev_e7751f29c4b387430383fed7ea586235f74731e86e4f918d11b636c95e95a700\\\",\\\"ev_19c67ae83e4d0eb7565a6d93a85de3a01f590d019bf6dd8988e84394c043208c\\\"],\\\"limitations\\\":[\\\"Observed frozen HAR startup window only; not a complete application API inventory.\\\",\\\"Historical capture does not establish live runtime behavior, execution attribution, or deployment authenticity.\\\",\\\"Status -1 is the producer-recorded HAR value, not an HTTP response status established by a live request.\\\",\\\"URLs were not fetched and response bodies were not inspected.\\\"]}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 30477, "cached_input_tokens": 7936, "cache_write_input_tokens": 0, "output_tokens": 756, "reasoning_output_tokens": 291}}], "stderr.log_sha256": "97842247fa4069b1fb57bd8c5ea844abaabb50c5184fe8705c515260ea25565c", "stderr.log_bytes": 256, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/excalidraw-network-direct/profile-2eqanqrx/codex\"))\n"}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"id": "excalidraw-network",
|
||||
"question": "For every request in this frozen actual Excalidraw startup HAR, group by URL hostname and HTTP response status. Return groups as [{hostname,status,count,record_ordinals}], observed_records, and coverage_exhausted. Preserve every original zero-based record ordinal. Use retained capture preview pages where sufficient; response bodies are unnecessary. This is one observed startup window, not a complete application API inventory. Include artifact_sha256, evidence_ids (actual REA Evidence IDs used), and limitations (concise strings). Do not execute target code or fetch URLs. Use the supplied summary and retained Evidence; no new artifact selection. ",
|
||||
"bootstrap": {
|
||||
"tool": "inspect_web_network_capture",
|
||||
"arguments": {
|
||||
"capture_path": "/tmp/rea-codemode-experiment-20261015/excalidraw-proxy/excalidraw.har",
|
||||
"format": "har",
|
||||
"detail": "summary"
|
||||
}
|
||||
},
|
||||
"tools": [
|
||||
"inspect_web_network_capture",
|
||||
"inspect_analysis_view"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"files_sha256": {
|
||||
"obsidian-unknown.json": "2c73dc6269025d2c55d675b12794af3461c5aaadf2371719bb3405975a8fb9ad",
|
||||
"obsidian-identities.json": "046266d4ede77baa44646231f8d0d646444e31e130fc7d6b34ff334caed5e43d",
|
||||
"plan.json": "ceb49241652a6607b933761918a35576750840deaa60bf5f5f177afbfbac010a",
|
||||
"oracles.json": "7ec6e93a7e2693c2de4fb53ca074e1d6f5b8c4a24206ef659979f0a46519c190",
|
||||
"obsidian-lookup.json": "15ee74eb8718372d48c5c51b9dc6b10fa525ccf03a6d6f8fce3f93764f243368",
|
||||
"review.json": "47c8fead2eb2001541735b9219fbb9460924cdeb236141cfd0131e94a6c5bc76",
|
||||
"excalidraw-network.json": "89d087a5b39097b390a5cfaf1f0f32925854cfd590fffb60dd9a56099ea7fb1b",
|
||||
"obsidian-lookup-code/trajectory.jsonl": "89f9e5cae05ecac37b055009187c3f983e6168fcaa51719ed1fd090a617de81c",
|
||||
"obsidian-lookup-code/resources.json": "e54efea9d7bbfc78eb37f083fa354b58458352209c59c029876df3069eb125ae",
|
||||
"obsidian-lookup-code/evidence-index.json": "e194db00f8266dd8e7f2f7fb2a9f57a8de09e5cedbd7f4428a42f04eb1fbc873",
|
||||
"obsidian-lookup-code/answer.json": "3b371307008067b9f131a2b8008bfea2051f3d926c2db97dca90b9767ecc0b9d",
|
||||
"obsidian-lookup-code/receipt.json": "9596541f492742a99c8aa8334a0939821ca9f7897318186ed6c436fac1c2b767",
|
||||
"obsidian-lookup-direct/trajectory.jsonl": "8d676e53512a7aa9341a829de777f59812ea40a6eca694fc3163e53889e9c93c",
|
||||
"obsidian-lookup-direct/resources.json": "3b4e157a749a1af663342c55813969ffaa8e61e09ca578a970ece605590f2462",
|
||||
"obsidian-lookup-direct/evidence-index.json": "1f3a4b06642c2ad75f21d4f0501034860c016768caf2325f855af7189202f868",
|
||||
"obsidian-lookup-direct/answer.json": "88569ab111a079d6a47d94ae15df2442c383d5bb69c594264b223a613b9b5c05",
|
||||
"obsidian-lookup-direct/receipt.json": "934a6dfd47d0ebb88cc9416315e39fe613645716029a37b6db4c2c09630e2d3f",
|
||||
"obsidian-identities-direct/trajectory.jsonl": "2a66f1a377d4505a27b2f57b79e3bb8a5af449718ed0beddd5110b9860788ad7",
|
||||
"obsidian-identities-direct/resources.json": "fad03f4967f1e8f9228307b337e17c08aa979e7cbaad5b28d9b49b75dbe0ff16",
|
||||
"obsidian-identities-direct/evidence-index.json": "ebb3944bfd429ad04dc2bbfd9244dfae7efb4427f958b19863385e32c190e6b5",
|
||||
"obsidian-identities-direct/answer.json": "9f529c76bcdebd635ab21c0b1999965a796a73cff8e54396a455a70ae7fdfc6c",
|
||||
"obsidian-identities-direct/receipt.json": "1aaefe2f72fcd01f9096273e0222d6f6354791aeb1da6f89ff61b88f847da166",
|
||||
"excalidraw-network-code/trajectory.jsonl": "3b17299f08d28e0f88b6271c2868d6acdbc143b619eca56c99f110d363b92e54",
|
||||
"excalidraw-network-code/resources.json": "330d3e62d545853e24bc8e42a8b8f56b539d3cce7424b850ab8125231ca9d886",
|
||||
"excalidraw-network-code/evidence-index.json": "5d8773fbea65b94fd87f2b7a8ec7fdd3cc94db37f04a4d958e3f24b60241e144",
|
||||
"excalidraw-network-code/answer.json": "d0b4a599dade4b5203911982ec52f9052b8ee22f0b11342c069af3a17b0abeac",
|
||||
"excalidraw-network-code/receipt.json": "833bd328ff7ae2cffae3bfd4a3b297b068261b4c9151ec9ba58b804376f18500",
|
||||
"obsidian-unknown-code/trajectory.jsonl": "b7061c62bd600869199c64c766052cc505dccd149c52a385485377e3aeb46f88",
|
||||
"obsidian-unknown-code/resources.json": "acf8832a27f8eab8fe513a48ee57ecd688a6f8564d02dc860e51a1d329ea76e3",
|
||||
"obsidian-unknown-code/evidence-index.json": "452983bb48cfb88fcd0da9cc7d5e581ad8a829722ad2e07bf88c1821736836a6",
|
||||
"obsidian-unknown-code/answer.json": "15af31578103d94e72e694ec4b00b2967c412a6da0960f24a7f6d317c3db9479",
|
||||
"obsidian-unknown-code/receipt.json": "ce5e2e7dad64f06b297ecc186dc0cfacb25d320e7cbf5113e7ead4af55b616bc",
|
||||
"obsidian-identities-code/trajectory.jsonl": "69712d386882904c8e09047c7d750ccf53fcc08bc77ab47876ab3f690da04dce",
|
||||
"obsidian-identities-code/resources.json": "9f8574b9f14fec74ff592fb3f297e3c527230b6b6594f27478dace39d8ec3b45",
|
||||
"obsidian-identities-code/evidence-index.json": "0f99d50aab437a908682f7d5e74ef01c53dca1a7ecd4ce392748bce885e733ce",
|
||||
"obsidian-identities-code/answer.json": "958339d7cd27c83c22f9be357b6a9ab7c713c0a554bd1cb9239417897052ff38",
|
||||
"obsidian-identities-code/receipt.json": "be7efd8951b23c279ba3b986899436ea190bec9ee79ba4cece371629fc06fce1",
|
||||
"excalidraw-network-direct/trajectory.jsonl": "de907e90fbd92aecf77e3d1922c841b10cd79889ec9109d12444f4604a2c2345",
|
||||
"excalidraw-network-direct/resources.json": "3f8888d130b3416b8f9c1b0ee19cb64d9fd02fa9e4458282f3433c8537f8de76",
|
||||
"excalidraw-network-direct/evidence-index.json": "5d8773fbea65b94fd87f2b7a8ec7fdd3cc94db37f04a4d958e3f24b60241e144",
|
||||
"excalidraw-network-direct/answer.json": "23940c6b3a4a877093298c1364a85714a372efc0d1ebbf49fa8e3eee50c63775",
|
||||
"excalidraw-network-direct/receipt.json": "cfbcff33f4e4183e4874c70fc3efe753953cc126a84da32be7f57362a81fd28d",
|
||||
"obsidian-unknown-direct/trajectory.jsonl": "6b1c41f58e32aed1755e78b138bd2ac5639f3e9ad1a57c0eab5f732261d8c7b7",
|
||||
"obsidian-unknown-direct/resources.json": "548c90c6fb49aba78e1cc9694402fb9cdbe0f1a4bde2cc3f47030fbd96a13333",
|
||||
"obsidian-unknown-direct/evidence-index.json": "e83f2308ec06ed9b52fbf50e184de7b05b5553310f0aecf830238482ea60e9f4",
|
||||
"obsidian-unknown-direct/answer.json": "87c3be966a9dabb32853e1b4dad6c88b948ddfeaef815b4078b934414a928bfb",
|
||||
"obsidian-unknown-direct/receipt.json": "4170e68f6a45d538d894e66efc23bc7388f81f50c01592c400e87e4a5966fa39"
|
||||
},
|
||||
"retention": "Tasks, oracles, sampling actions/CLI events, usage, failures, response digests and resources. No original applications/captures or full producer payloads.",
|
||||
"replay_limit": "Regenerate new captures and oracles for a fresh cohort. Historical live web captures are not byte-reproducible and are intentionally not archived."
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"counts_by_kind": {
|
||||
"javascript-asset": 1,
|
||||
"javascript-module": 23
|
||||
},
|
||||
"node_ids": [
|
||||
"jag_node_15b5b46dfcbc20cac7c7a9c7b2d2efe21d39cecc77bb3a42e86506ac480c6cd0",
|
||||
"jag_node_205f7beec1e6b5efa4ff4928ea25da1e87be912fe4b597ff4ec40b0c1f7d956d",
|
||||
"jag_node_288149271a58cce3ef8ca8fcadfc24618bb0a4255724e5440605400bbbd61afb",
|
||||
"jag_node_3b78134c949c0ddae48a6c44419bfad0e1820ac0e2807bc433e14fe553e9bf33",
|
||||
"jag_node_42f0ba1369248f1d0ee7dc7e5deccdb6d03b34696d7c9b587b29561b055a0e2c",
|
||||
"jag_node_61561f95fa66efe6525b31567954c8a58bd0f3667b208e85d3c7d760ec396cdd",
|
||||
"jag_node_6728bd285559b2b521020668ce9f4e1578b1769ad6b07cb516e142811ba3015",
|
||||
"jag_node_7290cf330a4c464680051bf158a11737c88d9b658d12b8ca33dad9d9ed5bbd43",
|
||||
"jag_node_72933fe5ad0b3d02bc689bbec5b98e57781a9e0642402e79d29dd84a40c4add3",
|
||||
"jag_node_74570cc130ee00964df34197958ce329e59db8b64add4f152b4c9dbaa459c620",
|
||||
"jag_node_82249640deb32652d0071229456acdeae30c3713f8cee3fb82d70352dbea476f",
|
||||
"jag_node_842abef9a77ef072b5bc55e00dda19a5b6039ae08288fb1c66240fa6c0321588",
|
||||
"jag_node_a15518c53e559509aa493fc7a059a511b8aec92d52aa9035a505fe2c42060ada",
|
||||
"jag_node_a2953a5694265708ca5deaa4162924db5aa6ec0fe23179473703e2415da6f20d",
|
||||
"jag_node_a304199f3cdfbb132783f2ef19661c97cf6538f6f9e0d2241ebd38a905fa03f5",
|
||||
"jag_node_a7c8f694bd07b5387690de4a25f3dff858865973ff593bb314159b8932c86c15",
|
||||
"jag_node_bc3fca896e4b81c6783517a7fe5c51c8e2c9e5d88eef9bd4f571f9230b5e544b",
|
||||
"jag_node_c74ef2b3509a9072fea733eb720e062f258b2ba13a163c5e50134f76ca8a1030",
|
||||
"jag_node_d678d9ad35db0904fa9af07f745d833b1fd0795211a29e6386551441701f1ea0",
|
||||
"jag_node_e0c8fcd14b723dfb42a5fcabf4ddc6c596d37cc1704c34f1d09456857afaa1a4",
|
||||
"jag_node_e74390bbf11499840fd0d861d90d1e0a9ca4edf57b8eb81dd13287e040979f5b",
|
||||
"jag_node_eaf187fce5c5c6b53bc0f391e658c3a63d73572bc4203b1f221652689777744e",
|
||||
"jag_node_fafc7c8e6c5aa1793108013819c957c7cc427d09fb0ad72f5311fdedb77ca1b2",
|
||||
"jag_node_fe6988c196f390298badd9cd9530548d189f2a76953fbe4898fd5a652e300db4"
|
||||
],
|
||||
"inventory_exhausted": true,
|
||||
"evidence_ids": [
|
||||
"ev_ca3983ed9c4e856d3034924701a8328236e36a05ccc079a6001813301c407ae9",
|
||||
"ev_4c196d5b0b3cf59a77cc49b3014528132bc74afe36ac52101e3a26439f333181"
|
||||
],
|
||||
"limitations": [
|
||||
"The retained module page was exhausted at 55 of 55 identities; this establishes complete coverage of retained module identities.",
|
||||
"The application and semantic graph coverage is partial; module identities do not prove runtime execution or semantic entrypoint behavior.",
|
||||
"main.js semantic-graph analysis was resource-constrained, although static and module facts were retained."
|
||||
]
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_4c196d5b0b3cf59a77cc49b3014528132bc74afe36ac52101e3a26439f333181",
|
||||
"ev_ca3983ed9c4e856d3034924701a8328236e36a05ccc079a6001813301c407ae9",
|
||||
"ev_e7ad306d3d9e03d06ad5cfab084446e59124318b5c3f2a4f8d8b9a1ff27b706e"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "0704ac1243cd56bb62dd754057da26d14e37718f14d1a8631ac0c05663178192",
|
||||
"bytes": 29159
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "c9878e10ab4008325f9cb32a2be816cce1d5f422a04cf2e155a59560c6598aab",
|
||||
"bytes": 592
|
||||
},
|
||||
{
|
||||
"file": "call-003.json",
|
||||
"sha256": "844181f769fdf64b6da8c95c16acb04ca1725c9443afb49c5a35621a4bcbfae2",
|
||||
"bytes": 38035
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"arm": "code",
|
||||
"task": "obsidian-identities",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 80325,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 2171,
|
||||
"reasoning_output_tokens": 699
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 12.810661727096885,
|
||||
"prompt_bytes": 16266,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 13517,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 47,
|
||||
"reasoning_output_tokens": 21
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0017975909868255258,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 20.82783284096513,
|
||||
"prompt_bytes": 44347,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20170,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 237,
|
||||
"reasoning_output_tokens": 123
|
||||
},
|
||||
"action_kind": "code",
|
||||
"action_seconds": 0.06076000293251127,
|
||||
"observation_bytes": 665
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 10.15672283899039,
|
||||
"prompt_bytes": 45341,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20631,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 245,
|
||||
"reasoning_output_tokens": 140
|
||||
},
|
||||
"action_kind": "code",
|
||||
"action_seconds": 1.1492726519936696,
|
||||
"observation_bytes": 18539
|
||||
},
|
||||
{
|
||||
"round": 4,
|
||||
"model_seconds": 20.338619336951524,
|
||||
"prompt_bytes": 64173,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 26007,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1642,
|
||||
"reasoning_output_tokens": 415
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 85.01893847598694,
|
||||
"preparation_seconds": 19.326784500968643,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "046266d4ede77baa44646231f8d0d646444e31e130fc7d6b34ff334caed5e43d",
|
||||
"sources_sha256": {
|
||||
"trial.py": "b57718d1c44f4300d9d4f3f0b8979f4a532d51073c728e006ad9ff922b46773d",
|
||||
"backend.mjs": "687cab7f83ba0d7e7bff42c094bfd9a68a03f66f65cd4d2a4a942b745e81de40"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-769d7858e22f4318aabff3932595cb04.scope",
|
||||
"peak_cgroup_bytes_sampled": 1042870272,
|
||||
"elapsed_seconds": 85.36,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 87,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 27283923,
|
||||
"user_usec": 22455201,
|
||||
"system_usec": 4828721,
|
||||
"nr_periods": 815,
|
||||
"nr_throttled": 21,
|
||||
"throttled_usec": 6603,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-769d7858e22f4318aabff3932595cb04.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2665153,
|
||||
"remaining_processes": [
|
||||
2665153
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 27282986,
|
||||
"user_usec": 22454264,
|
||||
"system_usec": 4828721,
|
||||
"nr_periods": 815,
|
||||
"nr_throttled": 21,
|
||||
"throttled_usec": 6603,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1047605248,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-769d7858e22f4318aabff3932595cb04.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+4
File diff suppressed because one or more lines are too long
+47
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"counts_by_kind": {
|
||||
"javascript-asset": 1,
|
||||
"javascript-module": 23
|
||||
},
|
||||
"node_ids": {
|
||||
"javascript-asset": [
|
||||
"jag_node_205f7beec1e6b5efa4ff4928ea25da1e87be912fe4b597ff4ec40b0c1f7d956d"
|
||||
],
|
||||
"javascript-module": [
|
||||
"jag_node_15b5b46dfcbc20cac7c7a9c7b2d2efe21d39cecc77bb3a42e86506ac480c6cd0",
|
||||
"jag_node_288149271a58cce3ef8ca8fcadfc24618bb0a4255724e5440605400bbbd61afb",
|
||||
"jag_node_3b78134c949c0ddae48a6c44419bfad0e1820ac0e2807bc433e14fe553e9bf33",
|
||||
"jag_node_42f0ba1369248f1d0ee7dc7e5deccdb6d03b34696d7c9b587b29561b055a0e2c",
|
||||
"jag_node_61561f95fa66efe6525b31567954c8a58bd0f3667b208e85d3c7d760ec396cdd",
|
||||
"jag_node_6728bd2855597b2b521020668ce9f4e1578b1769ad6b07cb516e142811ba3015",
|
||||
"jag_node_7290cf330a4c464680051bf158a11737c88d9b658d12b8ca33dad9d9ed5bbd43",
|
||||
"jag_node_72933fe5ad0b3d02bc689bbec5b98e57781a9e0642402e79d29dd84a40c4add3",
|
||||
"jag_node_74570cc130ee00964df34197958ce329e59db8b64add4f152b4c9dbaa459c620",
|
||||
"jag_node_82249640deb32652d0071229456acdeae30c3713f8cee3fb82d70352dbea476f",
|
||||
"jag_node_842abef9a77ef072b5bc55e00dda19a5b6039ae08288fb1c66240fa6c0321588",
|
||||
"jag_node_a15518c53e559509aa493fc7a059a511b8aec92d52aa9035a505fe2c42060ada",
|
||||
"jag_node_a2953a5694265708ca5deaa4162924db5aa6ec0fe23179473703e2415da6f20d",
|
||||
"jag_node_a304199f3cdfbb132783f2ef19661c97cf6538f6f9e0d2241ebd38a905fa03f5",
|
||||
"jag_node_a7c8f694bd07b5387690de4a25f3dff858865973ff593bb314159b8932c86c15",
|
||||
"jag_node_bc3fca896e4b81c6783517a7fe5c51c8e2c9e5d88eef9bd4f571f9230b5e544b",
|
||||
"jag_node_c74ef2b3509a9072fea733eb720e062f258b2ba13a163c5e50134f76ca8a1030",
|
||||
"jag_node_d678d9ad35db0904fa9af07f745d833b1fd0795211a29e6386551441701f1ea0",
|
||||
"jag_node_e0c8fcd14b723dfb42a5fcabf4ddc6c596d37cc1704c34f1d09456857afaa1a4",
|
||||
"jag_node_e74390bbf11499840fd0d861d90d1e0a9ca4edf57b8eb81dd13287e040979f5b",
|
||||
"jag_node_eaf187fce5c5c6b53bc0f391e658c3a63d73572bc4203b1f221652689777744e",
|
||||
"jag_node_fafc7c8e6c5aa1793108013819c957c7cc427d09fb0ad72f5311fdedb77ca1b2",
|
||||
"jag_node_fe6988c196f390298badd9cd9530548d189f2a76953fbe4898fd5a652e300db4"
|
||||
]
|
||||
},
|
||||
"inventory_exhausted": true,
|
||||
"evidence_ids": [
|
||||
"ev_e98ca48af774b5296e29a7b819a7ed05b6001664f7f6268ee52cc6a3ed64b705",
|
||||
"ev_4c2ad6337c3a26da7ed84299e6d78604eca738caa5288517e6492ce88a030c99"
|
||||
],
|
||||
"limitations": [
|
||||
"Module-page coverage is exhausted (55 of 55 retained module identities).",
|
||||
"This inventories retained static identities only; it does not establish runtime entrypoint selection or execution.",
|
||||
"The parent application graph is partial, but module identities were retained."
|
||||
]
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_046aa6f995b3a44d4acac68c384325a9cc7a0cf38c6d1711e4deb79eaa430948",
|
||||
"ev_4c2ad6337c3a26da7ed84299e6d78604eca738caa5288517e6492ce88a030c99",
|
||||
"ev_e98ca48af774b5296e29a7b819a7ed05b6001664f7f6268ee52cc6a3ed64b705"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "f7bae9a2910cf4ccb4a55115a8a2308999ab42682d0f45abea7d5e928b000b2d",
|
||||
"bytes": 29159
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "c9878e10ab4008325f9cb32a2be816cce1d5f422a04cf2e155a59560c6598aab",
|
||||
"bytes": 592
|
||||
},
|
||||
{
|
||||
"file": "call-003.json",
|
||||
"sha256": "b92b3c542f59a6fae9eda90afce5b8c274e5d4cd4df9cc470f0703fbacc13a80",
|
||||
"bytes": 38035
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"arm": "direct",
|
||||
"task": "obsidian-identities",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 80227,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 2093,
|
||||
"reasoning_output_tokens": 627
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 14.890138579998165,
|
||||
"prompt_bytes": 15944,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 13450,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 66,
|
||||
"reasoning_output_tokens": 40
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0032363409409299493,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 20.67052737798076,
|
||||
"prompt_bytes": 44025,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20311,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 286,
|
||||
"reasoning_output_tokens": 173
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.018443232984282076,
|
||||
"observation_bytes": 612
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 18.222506602993235,
|
||||
"prompt_bytes": 44999,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20550,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 158,
|
||||
"reasoning_output_tokens": 56
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.2391919489018619,
|
||||
"observation_bytes": 18486
|
||||
},
|
||||
{
|
||||
"round": 4,
|
||||
"model_seconds": 47.407120482996106,
|
||||
"prompt_bytes": 63807,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 25916,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1583,
|
||||
"reasoning_output_tokens": 358
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 163.53370783792343,
|
||||
"preparation_seconds": 61.656440516002476,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "046266d4ede77baa44646231f8d0d646444e31e130fc7d6b34ff334caed5e43d",
|
||||
"sources_sha256": {
|
||||
"trial.py": "b57718d1c44f4300d9d4f3f0b8979f4a532d51073c728e006ad9ff922b46773d",
|
||||
"backend.mjs": "687cab7f83ba0d7e7bff42c094bfd9a68a03f66f65cd4d2a4a942b745e81de40"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-a3699f603b104e8bb5382d724c19fd17.scope",
|
||||
"peak_cgroup_bytes_sampled": 1062834176,
|
||||
"elapsed_seconds": 163.973,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 87,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 61687517,
|
||||
"user_usec": 52239247,
|
||||
"system_usec": 9448270,
|
||||
"nr_periods": 1607,
|
||||
"nr_throttled": 0,
|
||||
"throttled_usec": 0,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-a3699f603b104e8bb5382d724c19fd17.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2668337,
|
||||
"remaining_processes": [
|
||||
2668337
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 61686086,
|
||||
"user_usec": 52238035,
|
||||
"system_usec": 9448051,
|
||||
"nr_periods": 1607,
|
||||
"nr_throttled": 0,
|
||||
"throttled_usec": 0,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1070039040,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-a3699f603b104e8bb5382d724c19fd17.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+4
File diff suppressed because one or more lines are too long
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"id": "obsidian-identities",
|
||||
"question": "Before choosing a semantic entrypoint, inventory every retained module identity whose exact path is main.js. Return counts_by_kind, node_ids (all matching IDs), and inventory_exhausted (boolean). Preserve the distinction between a javascript-asset and javascript-module identities sharing that path. Module page identities are sufficient; item bodies are unnecessary. Examine complete inventory coverage rather than assuming one identity per source file. Include artifact_sha256, evidence_ids (actual REA Evidence IDs used), and limitations (concise strings). Do not execute target code or fetch URLs. Use the supplied summary and retained Evidence; no new artifact selection. ",
|
||||
"bootstrap": {
|
||||
"tool": "analyze_javascript_application",
|
||||
"arguments": {
|
||||
"input_path": "/tmp/rea-codemode-experiment-20261015/artifacts/obsidian-1.14.4.asar",
|
||||
"source_paths": [
|
||||
"package.json",
|
||||
"main.js"
|
||||
],
|
||||
"detail": "summary"
|
||||
}
|
||||
},
|
||||
"tools": [
|
||||
"analyze_javascript_application",
|
||||
"inspect_analysis_view"
|
||||
]
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"requested_paths": [
|
||||
"package.json",
|
||||
"main.js"
|
||||
],
|
||||
"unselected_files": 36,
|
||||
"parsed_javascript_files": 1,
|
||||
"browser_windows": 2,
|
||||
"ipc_operations": 47,
|
||||
"main_handlers": 47,
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"evidence_ids": [
|
||||
"ev_58f30aa076f6509b25beff544db33760f72ccd23799988fad7d76ca07eef209f"
|
||||
],
|
||||
"limitations": [
|
||||
"Static extractor observations only; no target code was executed.",
|
||||
"Analysis was selected-source: 36 inventoried files were outside scope.",
|
||||
"Application and semantic graph coverage are partial; main.js semantic graph was resource-constrained.",
|
||||
"Static Electron relationships and handler registrations do not prove runtime execution, reachability, or enforcement."
|
||||
]
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_58f30aa076f6509b25beff544db33760f72ccd23799988fad7d76ca07eef209f",
|
||||
"ev_755f2130542ff442f71b33b95b16cde34d8f8ddfb84487f2252762f0ec2c608b",
|
||||
"ev_ec2cd42d0e4b9d7f9bd10063f2b29d00e1fcb71f517de8122956523ce4b9e0ec"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "7fa78cf48d2790161f4a65046a646a1f9b87cefc51c82fe91dd3d50edb2f499c",
|
||||
"bytes": 29159
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "ba49916b9d421915c26713be01fa0dec6edc5359faa8afd2cccfa0474e78a1db",
|
||||
"bytes": 2820
|
||||
},
|
||||
{
|
||||
"file": "call-003.json",
|
||||
"sha256": "b8123668aa27d2b20acd165a90b2e09672d8e7d450263183049d78ea810ffb5e",
|
||||
"bytes": 38031
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"arm": "code",
|
||||
"task": "obsidian-lookup",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 82621,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1059,
|
||||
"reasoning_output_tokens": 603
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 20.389909085002728,
|
||||
"prompt_bytes": 16064,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 13479,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 63,
|
||||
"reasoning_output_tokens": 37
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0016633709892630577,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 20.48390636802651,
|
||||
"prompt_bytes": 44145,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20340,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 256,
|
||||
"reasoning_output_tokens": 149
|
||||
},
|
||||
"action_kind": "code",
|
||||
"action_seconds": 0.06461842497810721,
|
||||
"observation_bytes": 2893
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 20.7822357310215,
|
||||
"prompt_bytes": 47340,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 21701,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 231,
|
||||
"reasoning_output_tokens": 124
|
||||
},
|
||||
"action_kind": "code",
|
||||
"action_seconds": 0.3276703350711614,
|
||||
"observation_bytes": 18537
|
||||
},
|
||||
{
|
||||
"round": 4,
|
||||
"model_seconds": 12.788593153003603,
|
||||
"prompt_bytes": 66169,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 27101,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 509,
|
||||
"reasoning_output_tokens": 293
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 94.46551845304202,
|
||||
"preparation_seconds": 19.444348984980024,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "15ee74eb8718372d48c5c51b9dc6b10fa525ccf03a6d6f8fce3f93764f243368",
|
||||
"sources_sha256": {
|
||||
"trial.py": "b57718d1c44f4300d9d4f3f0b8979f4a532d51073c728e006ad9ff922b46773d",
|
||||
"backend.mjs": "687cab7f83ba0d7e7bff42c094bfd9a68a03f66f65cd4d2a4a942b745e81de40"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-7cf4c2a1bd5c4dbe85a56f45fd88e6f0.scope",
|
||||
"peak_cgroup_bytes_sampled": 1049722880,
|
||||
"elapsed_seconds": 94.796,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 93,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 25589984,
|
||||
"user_usec": 21578427,
|
||||
"system_usec": 4011556,
|
||||
"nr_periods": 903,
|
||||
"nr_throttled": 5,
|
||||
"throttled_usec": 3083,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-7cf4c2a1bd5c4dbe85a56f45fd88e6f0.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2663796,
|
||||
"remaining_processes": [
|
||||
2663796
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 25588564,
|
||||
"user_usec": 21578427,
|
||||
"system_usec": 4010137,
|
||||
"nr_periods": 903,
|
||||
"nr_throttled": 5,
|
||||
"throttled_usec": 3083,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1051041792,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-7cf4c2a1bd5c4dbe85a56f45fd88e6f0.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{"round": "round-01", "action.json_sha256": "bbd836b30411d209eab2e2a4e7fada08b322d90d982e6e3fa71fb55cf450238e", "action.json_bytes": 55, "action": {"kind": "docs", "payload": "[\"inspect_analysis_view\"]"}, "observation.json_sha256": "7127207640441dbd46bcd74b7d4f29bfd45b8bc65d2887344bae7901adfcfc1f", "observation.json_bytes": 27999, "prompt.txt_sha256": "41a01acb447d50107699370b190ac73f7555fb17d52e2b5bc3e93aae8f3a8922", "prompt.txt_bytes": 16064, "events.jsonl_sha256": "b288770db73ae3dd21618c101a760001c1e66c3991899ada3670becdf8dc3aa9", "events.jsonl_bytes": 642, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb0-8e0d-76d0-8a2a-c2f9d8b04f23"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"docs\",\"payload\":\"[\\\"inspect_analysis_view\\\"]\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 13479, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 63, "reasoning_output_tokens": 37}}], "stderr.log_sha256": "1cb4688dffb125061c33fa975e9dad0cd63a753a0463c1074bbcfcaeb016ab45", "stderr.log_bytes": 251, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-code/profile-sc2maub0/codex\"))\n"}
|
||||
{"round": "round-02", "action.json_sha256": "300c20ccddb8d4167c8ee80cc2a7f1a95ae7bffe77ad421dd0584ab8ff1c5121", "action.json_bytes": 275, "action": {"kind": "code", "payload": "const r=rea.call(\"inspect_analysis_view\",{source:{kind:\"retained-evidence\",evidence_id:\"ev_755f2130542ff442f71b33b95b16cde34d8f8ddfb84487f2252762f0ec2c608b\"},view:{kind:\"item\",collection:\"modules\",selector:{path:\"main.js\"}}});print(r);"}, "observation.json_sha256": "b6d6593354414ec27fe6db7167a1ebf99ee8c389c856e3d4810ea34919245399", "observation.json_bytes": 2893, "prompt.txt_sha256": "6878532c2ed232c0e107bed0f3336641b512bf445ab018b7c7696f5cdd87a6bd", "prompt.txt_bytes": 44145, "events.jsonl_sha256": "d37ebdeace51c5452b1da01952b93b50ab0c0d89508b6fc962825005b8de9086", "events.jsonl_bytes": 884, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb0-dd25-7bf3-a694-8a502d08935b"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"code\",\"payload\":\"const r=rea.call(\\\"inspect_analysis_view\\\",{source:{kind:\\\"retained-evidence\\\",evidence_id:\\\"ev_755f2130542ff442f71b33b95b16cde34d8f8ddfb84487f2252762f0ec2c608b\\\"},view:{kind:\\\"item\\\",collection:\\\"modules\\\",selector:{path:\\\"main.js\\\"}}});print(r);\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 20340, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 256, "reasoning_output_tokens": 149}}], "stderr.log_sha256": "1cb4688dffb125061c33fa975e9dad0cd63a753a0463c1074bbcfcaeb016ab45", "stderr.log_bytes": 251, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-code/profile-sc2maub0/codex\"))\n"}
|
||||
{"round": "round-03", "action.json_sha256": "695291cfd020aac7c2023283a39bea43abf41cf0e495334ab609cb3855b51c5d", "action.json_bytes": 265, "action": {"kind": "code", "payload": "const r=rea.call(\"inspect_analysis_view\",{source:{kind:\"retained-evidence\",evidence_id:\"ev_755f2130542ff442f71b33b95b16cde34d8f8ddfb84487f2252762f0ec2c608b\"},view:{kind:\"page\",collection:\"modules\",offset:0,limit:55}});print(r);"}, "observation.json_sha256": "2321a17b66e5749fac3cbf8c26ab278d2723866c1c56548e98154fa645283ef9", "observation.json_bytes": 18537, "prompt.txt_sha256": "d2347701a8f283797fdd988225cce54ff818363f1bac93fd99a6c1e9244bce3a", "prompt.txt_bytes": 47340, "events.jsonl_sha256": "119a430b8784bcd7d378ab9435b05a8ede59cd540dfd3cae848d6e5bce20a4ba", "events.jsonl_bytes": 870, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb1-2d61-7af1-a31e-7a52de702952"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"code\",\"payload\":\"const r=rea.call(\\\"inspect_analysis_view\\\",{source:{kind:\\\"retained-evidence\\\",evidence_id:\\\"ev_755f2130542ff442f71b33b95b16cde34d8f8ddfb84487f2252762f0ec2c608b\\\"},view:{kind:\\\"page\\\",collection:\\\"modules\\\",offset:0,limit:55}});print(r);\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 21701, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 231, "reasoning_output_tokens": 124}}], "stderr.log_sha256": "1cb4688dffb125061c33fa975e9dad0cd63a753a0463c1074bbcfcaeb016ab45", "stderr.log_bytes": 251, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-code/profile-sc2maub0/codex\"))\n"}
|
||||
{"round": "round-04", "action.json_sha256": "3540f74ce3ee8fe347ccf1f0466128023ae4d270c0a6c2583819e1b56109fa7f", "action.json_bytes": 771, "action": {"kind": "answer", "payload": "{\"requested_paths\":[\"package.json\",\"main.js\"],\"unselected_files\":36,\"parsed_javascript_files\":1,\"browser_windows\":2,\"ipc_operations\":47,\"main_handlers\":47,\"artifact_sha256\":\"146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f\",\"evidence_ids\":[\"ev_58f30aa076f6509b25beff544db33760f72ccd23799988fad7d76ca07eef209f\"],\"limitations\":[\"Static extractor observations only; no target code was executed.\",\"Analysis was selected-source: 36 inventoried files were outside scope.\",\"Application and semantic graph coverage are partial; main.js semantic graph was resource-constrained.\",\"Static Electron relationships and handler registrations do not prove runtime execution, reachability, or enforcement.\"]}"}, "prompt.txt_sha256": "584b352ed81cf8cea3e299357c94fd027826da942e549f477f0d2e46e3462691", "prompt.txt_bytes": 66169, "events.jsonl_sha256": "6af01e55af0b19625b88baede0084ec36af25ed4c4b14c130c074e232efdae75", "events.jsonl_bytes": 1424, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb1-8028-7631-a37b-1a755ad583b8"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"answer\",\"payload\":\"{\\\"requested_paths\\\":[\\\"package.json\\\",\\\"main.js\\\"],\\\"unselected_files\\\":36,\\\"parsed_javascript_files\\\":1,\\\"browser_windows\\\":2,\\\"ipc_operations\\\":47,\\\"main_handlers\\\":47,\\\"artifact_sha256\\\":\\\"146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f\\\",\\\"evidence_ids\\\":[\\\"ev_58f30aa076f6509b25beff544db33760f72ccd23799988fad7d76ca07eef209f\\\"],\\\"limitations\\\":[\\\"Static extractor observations only; no target code was executed.\\\",\\\"Analysis was selected-source: 36 inventoried files were outside scope.\\\",\\\"Application and semantic graph coverage are partial; main.js semantic graph was resource-constrained.\\\",\\\"Static Electron relationships and handler registrations do not prove runtime execution, reachability, or enforcement.\\\"]}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 27101, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 509, "reasoning_output_tokens": 293}}], "stderr.log_sha256": "1cb4688dffb125061c33fa975e9dad0cd63a753a0463c1074bbcfcaeb016ab45", "stderr.log_bytes": 251, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-code/profile-sc2maub0/codex\"))\n"}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"requested_paths": [
|
||||
"package.json",
|
||||
"main.js"
|
||||
],
|
||||
"unselected_files": 36,
|
||||
"parsed_javascript_files": 1,
|
||||
"browser_windows": 2,
|
||||
"ipc_operations": 47,
|
||||
"main_handlers": 47,
|
||||
"evidence_ids": [
|
||||
"ev_6f45b0dc7cf03f8a362fccc1693d31302c7d05bc2796427823bb515d44e6e177",
|
||||
"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2"
|
||||
],
|
||||
"limitations": [
|
||||
"Static selected-source extraction; observations do not establish runtime behavior.",
|
||||
"36 inventoried files were outside the selected analysis scope.",
|
||||
"Application and semantic graph coverage are partial; main.js semantic graph was resource-constrained.",
|
||||
"JavaScript was parsed inertly and never executed."
|
||||
]
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_1e3c9561ffa500f0cc75e25891b70480f46cfe819111a39c79b40a80561f80a9",
|
||||
"ev_62f7d7f7c6d1c2cf0f786a4f4d7f1bdd7b808b24ec22e37bc14f86e1a999c8d0",
|
||||
"ev_6f45b0dc7cf03f8a362fccc1693d31302c7d05bc2796427823bb515d44e6e177",
|
||||
"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "3e2e120d8b887d4071f03e5af7f3ccc69edbe9a0ea81e0d88d962074948454d7",
|
||||
"bytes": 29159
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "ba49916b9d421915c26713be01fa0dec6edc5359faa8afd2cccfa0474e78a1db",
|
||||
"bytes": 2820
|
||||
},
|
||||
{
|
||||
"file": "call-003.json",
|
||||
"sha256": "f73abde281149a0de1b1dea98f7b4e3cc5a59a612354a7380c654ba6cd0f281a",
|
||||
"bytes": 38031
|
||||
},
|
||||
{
|
||||
"file": "call-004.json",
|
||||
"sha256": "7a68e5eab71f1a97ef55ed82b16362d4dcebe8b6508bf580a43a562037b97c06",
|
||||
"bytes": 30167
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"arm": "direct",
|
||||
"task": "obsidian-lookup",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 112359,
|
||||
"cached_input_tokens": 0,
|
||||
"output_tokens": 1609
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 12.320914381998591,
|
||||
"prompt_bytes": 15742,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 13403,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 101,
|
||||
"reasoning_output_tokens": 75
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.00133176997769624,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 9.473931564949453,
|
||||
"prompt_bytes": 43823,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20056,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 256,
|
||||
"reasoning_output_tokens": 155
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.009007319924421608,
|
||||
"observation_bytes": 2840
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 13.01484405703377,
|
||||
"prompt_bytes": 46994,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 21606,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 171,
|
||||
"reasoning_output_tokens": 70
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.10135728295426816,
|
||||
"observation_bytes": 18484
|
||||
},
|
||||
{
|
||||
"round": 4,
|
||||
"model_seconds": 26.68342290702276,
|
||||
"prompt_bytes": 65799,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 26968,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 533,
|
||||
"reasoning_output_tokens": 389
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.01812774606514722,
|
||||
"observation_bytes": 14721
|
||||
},
|
||||
{
|
||||
"round": 5,
|
||||
"model_seconds": 26.19809547602199,
|
||||
"prompt_bytes": 80920,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 30326,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 548,
|
||||
"reasoning_output_tokens": 298
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"elapsed_seconds": 107.37500034691766,
|
||||
"preparation_seconds": 19.36791256791912,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "15ee74eb8718372d48c5c51b9dc6b10fa525ccf03a6d6f8fce3f93764f243368",
|
||||
"sources_sha256": {
|
||||
"trial.py": "b57718d1c44f4300d9d4f3f0b8979f4a532d51073c728e006ad9ff922b46773d",
|
||||
"backend.mjs": "687cab7f83ba0d7e7bff42c094bfd9a68a03f66f65cd4d2a4a942b745e81de40"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-cdd53d0f234b4d8d90e63b56affc703c.scope",
|
||||
"peak_cgroup_bytes_sampled": 1146318848,
|
||||
"elapsed_seconds": 107.69,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 91,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 26420872,
|
||||
"user_usec": 22269101,
|
||||
"system_usec": 4151771,
|
||||
"nr_periods": 1029,
|
||||
"nr_throttled": 45,
|
||||
"throttled_usec": 25759,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-cdd53d0f234b4d8d90e63b56affc703c.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2660082,
|
||||
"remaining_processes": [
|
||||
2660082
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 26419693,
|
||||
"user_usec": 22268107,
|
||||
"system_usec": 4151585,
|
||||
"nr_periods": 1029,
|
||||
"nr_throttled": 45,
|
||||
"throttled_usec": 25759,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1155231744,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-cdd53d0f234b4d8d90e63b56affc703c.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{"round": "round-01", "action.json_sha256": "bbd836b30411d209eab2e2a4e7fada08b322d90d982e6e3fa71fb55cf450238e", "action.json_bytes": 55, "action": {"kind": "docs", "payload": "[\"inspect_analysis_view\"]"}, "observation.json_sha256": "7127207640441dbd46bcd74b7d4f29bfd45b8bc65d2887344bae7901adfcfc1f", "observation.json_bytes": 27999, "prompt.txt_sha256": "2e19e4ec72c9eb617f0e889c6442bf44708b14596289f8f1cae87cee7ea9e6dc", "prompt.txt_bytes": 15742, "events.jsonl_sha256": "de20b26131c8afd16722a6c11d33d24c8434a9946ebc9214ca8905da79c61f5c", "events.jsonl_bytes": 643, "cli_events": [{"type": "thread.started", "thread_id": "01a13ead-e182-7980-a37b-0420e78d0e56"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"docs\",\"payload\":\"[\\\"inspect_analysis_view\\\"]\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 13403, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 101, "reasoning_output_tokens": 75}}], "stderr.log_sha256": "909a6fb1625573c251e45fcfbd72b94303279af0add5783f578d351220fbb07e", "stderr.log_bytes": 253, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-direct/profile-blxmknpd/codex\"))\n"}
|
||||
{"round": "round-02", "action.json_sha256": "7fec1d1f448e9bde45c31a9f0a9d318ab80b871f1a61b369065102765a432d2e", "action.json_bytes": 304, "action": {"kind": "call", "payload": "{\"tool\":\"inspect_analysis_view\",\"arguments\":{\"source\":{\"kind\":\"retained-evidence\",\"evidence_id\":\"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2\"},\"view\":{\"kind\":\"item\",\"collection\":\"modules\",\"selector\":{\"path\":\"main.js\"}}}}"}, "observation.json_sha256": "33f04f52d3e928ed0c06670e1e844991897f600abd41e7be8981bd541e9f936b", "observation.json_bytes": 2840, "prompt.txt_sha256": "a02d72e9d41b20961457bc7b788cb2fe2e91bc257af1cfd89455619ec0839352", "prompt.txt_bytes": 43823, "events.jsonl_sha256": "05b65a4bdde68f33d94dad6c86e0b58191fb5d5fa0ab36042ead9ee42a442585", "events.jsonl_bytes": 953, "cli_events": [{"type": "thread.started", "thread_id": "01a13eae-1135-7b63-bdf6-8862ce1e2bca"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"call\",\"payload\":\"{\\\"tool\\\":\\\"inspect_analysis_view\\\",\\\"arguments\\\":{\\\"source\\\":{\\\"kind\\\":\\\"retained-evidence\\\",\\\"evidence_id\\\":\\\"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2\\\"},\\\"view\\\":{\\\"kind\\\":\\\"item\\\",\\\"collection\\\":\\\"modules\\\",\\\"selector\\\":{\\\"path\\\":\\\"main.js\\\"}}}}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 20056, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 256, "reasoning_output_tokens": 155}}], "stderr.log_sha256": "909a6fb1625573c251e45fcfbd72b94303279af0add5783f578d351220fbb07e", "stderr.log_bytes": 253, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-direct/profile-blxmknpd/codex\"))\n"}
|
||||
{"round": "round-03", "action.json_sha256": "b64aeace2f6f79d14a69b9e714292f05536e9d6deedc4a7d07beabb005e5e46b", "action.json_bytes": 294, "action": {"kind": "call", "payload": "{\"tool\":\"inspect_analysis_view\",\"arguments\":{\"source\":{\"kind\":\"retained-evidence\",\"evidence_id\":\"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2\"},\"view\":{\"kind\":\"page\",\"collection\":\"modules\",\"offset\":0,\"limit\":64}}}"}, "observation.json_sha256": "f83188d7c0c309f4b3748944562b52e6052c0245fdb417b9b94b1929b6c70c26", "observation.json_bytes": 18484, "prompt.txt_sha256": "8581c7dbb7215acaa7bcf203f62dbd973cdf8baf699df257047bafb570d0663c", "prompt.txt_bytes": 46994, "events.jsonl_sha256": "0117d762e1fef6a54bddeff3386120f91bf2d16456a2dada0b98c5836f299f46", "events.jsonl_bytes": 938, "cli_events": [{"type": "thread.started", "thread_id": "01a13eae-3641-7183-9c34-215596b3da42"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"call\",\"payload\":\"{\\\"tool\\\":\\\"inspect_analysis_view\\\",\\\"arguments\\\":{\\\"source\\\":{\\\"kind\\\":\\\"retained-evidence\\\",\\\"evidence_id\\\":\\\"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2\\\"},\\\"view\\\":{\\\"kind\\\":\\\"page\\\",\\\"collection\\\":\\\"modules\\\",\\\"offset\\\":0,\\\"limit\\\":64}}}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 21606, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 171, "reasoning_output_tokens": 70}}], "stderr.log_sha256": "909a6fb1625573c251e45fcfbd72b94303279af0add5783f578d351220fbb07e", "stderr.log_bytes": 253, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-direct/profile-blxmknpd/codex\"))\n"}
|
||||
{"round": "round-04", "action.json_sha256": "a49f79d7dcb370aee3a93a4890439fdf4515d73f81c3f4ab51d9aa1544b248f4", "action.json_bytes": 373, "action": {"kind": "call", "payload": "{\"tool\":\"inspect_analysis_view\",\"arguments\":{\"source\":{\"kind\":\"retained-evidence\",\"evidence_id\":\"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2\"},\"view\":{\"kind\":\"item\",\"collection\":\"modules\",\"selector\":{\"node_id\":\"jag_node_15b5b46dfcbc20cac7c7a9c7b2d2efe21d39cecc77bb3a42e86506ac480c6cd0\"}}}}"}, "observation.json_sha256": "334c2152d21fcdaefd321083b48677dd615790ad61bda3674653b2945f9b5110", "observation.json_bytes": 14721, "prompt.txt_sha256": "f6733e0c7f309da275dc28a3e98ba807b22d9ab03631698d1975a3442865407b", "prompt.txt_bytes": 65799, "events.jsonl_sha256": "a4f0198a6d4da840efdc1f647859ac235986c0675222c6f45d0d9122b4bb4020", "events.jsonl_bytes": 1022, "cli_events": [{"type": "thread.started", "thread_id": "01a13eae-6971-74a0-900f-afa1d3514fe0"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"call\",\"payload\":\"{\\\"tool\\\":\\\"inspect_analysis_view\\\",\\\"arguments\\\":{\\\"source\\\":{\\\"kind\\\":\\\"retained-evidence\\\",\\\"evidence_id\\\":\\\"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2\\\"},\\\"view\\\":{\\\"kind\\\":\\\"item\\\",\\\"collection\\\":\\\"modules\\\",\\\"selector\\\":{\\\"node_id\\\":\\\"jag_node_15b5b46dfcbc20cac7c7a9c7b2d2efe21d39cecc77bb3a42e86506ac480c6cd0\\\"}}}}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 26968, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 533, "reasoning_output_tokens": 389}}], "stderr.log_sha256": "909a6fb1625573c251e45fcfbd72b94303279af0add5783f578d351220fbb07e", "stderr.log_bytes": 253, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-direct/profile-blxmknpd/codex\"))\n"}
|
||||
{"round": "round-05", "action.json_sha256": "db16c868100a69cde5276cda724b569d4dc3c52118db702cac444371ac2dc690", "action.json_bytes": 785, "action": {"kind": "answer", "payload": "{\"artifact_sha256\":\"146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f\",\"requested_paths\":[\"package.json\",\"main.js\"],\"unselected_files\":36,\"parsed_javascript_files\":1,\"browser_windows\":2,\"ipc_operations\":47,\"main_handlers\":47,\"evidence_ids\":[\"ev_6f45b0dc7cf03f8a362fccc1693d31302c7d05bc2796427823bb515d44e6e177\",\"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2\"],\"limitations\":[\"Static selected-source extraction; observations do not establish runtime behavior.\",\"36 inventoried files were outside the selected analysis scope.\",\"Application and semantic graph coverage are partial; main.js semantic graph was resource-constrained.\",\"JavaScript was parsed inertly and never executed.\"]}"}, "prompt.txt_sha256": "a9c931ed20d548f24e03b3fac9a549af95642f9bf9c52068e8f929974c007f57", "prompt.txt_bytes": 80920, "events.jsonl_sha256": "04b28ddb78921a7ccf1c5cc2883aee6cfc787c376fdbbc1c98840a34b77e771f", "events.jsonl_bytes": 1442, "cli_events": [{"type": "thread.started", "thread_id": "01a13eae-d23f-7f73-b33c-96efef0d3cac"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"answer\",\"payload\":\"{\\\"artifact_sha256\\\":\\\"146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f\\\",\\\"requested_paths\\\":[\\\"package.json\\\",\\\"main.js\\\"],\\\"unselected_files\\\":36,\\\"parsed_javascript_files\\\":1,\\\"browser_windows\\\":2,\\\"ipc_operations\\\":47,\\\"main_handlers\\\":47,\\\"evidence_ids\\\":[\\\"ev_6f45b0dc7cf03f8a362fccc1693d31302c7d05bc2796427823bb515d44e6e177\\\",\\\"ev_abc62503dd2fa6d17f3d29101c4f25de71dbc27c2745661aca4eb77035e0eba2\\\"],\\\"limitations\\\":[\\\"Static selected-source extraction; observations do not establish runtime behavior.\\\",\\\"36 inventoried files were outside the selected analysis scope.\\\",\\\"Application and semantic graph coverage are partial; main.js semantic graph was resource-constrained.\\\",\\\"JavaScript was parsed inertly and never executed.\\\"]}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 30326, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 548, "reasoning_output_tokens": 298}}], "stderr.log_sha256": "909a6fb1625573c251e45fcfbd72b94303279af0add5783f578d351220fbb07e", "stderr.log_bytes": 253, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-lookup-direct/profile-blxmknpd/codex\"))\n"}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"id": "obsidian-lookup",
|
||||
"question": "From the supplied selected-source Obsidian analysis, report exact requested_paths, unselected_files, parsed_javascript_files, browser_windows, ipc_operations and main_handlers. These are static extractor observations, not executed application behavior. Include artifact_sha256, evidence_ids (actual REA Evidence IDs used), and limitations (concise strings). Do not execute target code or fetch URLs. Use the supplied summary and retained Evidence; no new artifact selection. ",
|
||||
"bootstrap": {
|
||||
"tool": "analyze_javascript_application",
|
||||
"arguments": {
|
||||
"input_path": "/tmp/rea-codemode-experiment-20261015/artifacts/obsidian-1.14.4.asar",
|
||||
"source_paths": [
|
||||
"package.json",
|
||||
"main.js"
|
||||
],
|
||||
"detail": "summary"
|
||||
}
|
||||
},
|
||||
"tools": [
|
||||
"analyze_javascript_application",
|
||||
"inspect_analysis_view"
|
||||
]
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"authorization_established": false,
|
||||
"application_behavior_fully_covered": false,
|
||||
"sender_validation_observations": {
|
||||
"count": 1,
|
||||
"meaning": "One sender-validation observation was retained among 47 statically observed main IPC handlers; it is an observed check, not proof of enforced authorization."
|
||||
},
|
||||
"unselected_files": 36,
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"evidence_ids": [
|
||||
"ev_293425260c6d234a8754873c77f3fc59d8141bd411687f9aac0b926f88d1c571",
|
||||
"ev_fc5d8facd797da5738d6d2c5492aa1baa0d8057d1bba14d387afe8808f953990"
|
||||
],
|
||||
"reason": "No. The selected-source analysis statically observed 47 main IPC handlers and one sender-validation observation, but analyzed only package.json and main.js with 36 inventoried files outside scope. Application and semantic coverage are partial, and static relationships do not establish runtime registration, reachability, or enforcement.",
|
||||
"limitations": [
|
||||
"Selected-source scope excluded 36 inventoried files.",
|
||||
"Application and semantic graph coverage were partial, with retained unknowns and a main.js resource constraint.",
|
||||
"Sender/frame/URL/origin checks are observations only and do not prove a complete authorization policy.",
|
||||
"Static analysis did not execute code and does not prove runtime behavior."
|
||||
]
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_293425260c6d234a8754873c77f3fc59d8141bd411687f9aac0b926f88d1c571",
|
||||
"ev_fc5d8facd797da5738d6d2c5492aa1baa0d8057d1bba14d387afe8808f953990"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "b14911c812ac670ddead5ccfdd6bbac6ecf5572dd30622d577bb382683312c66",
|
||||
"bytes": 29159
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "ba49916b9d421915c26713be01fa0dec6edc5359faa8afd2cccfa0474e78a1db",
|
||||
"bytes": 2820
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"arm": "code",
|
||||
"task": "obsidian-unknown",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 55817,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1059,
|
||||
"reasoning_output_tokens": 580
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 25.553908049012534,
|
||||
"prompt_bytes": 16221,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 13512,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 191,
|
||||
"reasoning_output_tokens": 165
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.001881890930235386,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 24.40222004998941,
|
||||
"prompt_bytes": 44302,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20373,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 190,
|
||||
"reasoning_output_tokens": 82
|
||||
},
|
||||
"action_kind": "code",
|
||||
"action_seconds": 0.061395206954330206,
|
||||
"observation_bytes": 3213
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 39.85925874498207,
|
||||
"prompt_bytes": 47833,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 21932,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 678,
|
||||
"reasoning_output_tokens": 333
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 112.04562795802485,
|
||||
"preparation_seconds": 21.983774747001007,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "2c73dc6269025d2c55d675b12794af3461c5aaadf2371719bb3405975a8fb9ad",
|
||||
"sources_sha256": {
|
||||
"trial.py": "b57718d1c44f4300d9d4f3f0b8979f4a532d51073c728e006ad9ff922b46773d",
|
||||
"backend.mjs": "687cab7f83ba0d7e7bff42c094bfd9a68a03f66f65cd4d2a4a942b745e81de40"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-69c87bb8a2d84a7b8ec83c2a62fbff44.scope",
|
||||
"peak_cgroup_bytes_sampled": 1168056320,
|
||||
"elapsed_seconds": 112.424,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 86,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 27597810,
|
||||
"user_usec": 23488729,
|
||||
"system_usec": 4109081,
|
||||
"nr_periods": 1072,
|
||||
"nr_throttled": 67,
|
||||
"throttled_usec": 23354,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-69c87bb8a2d84a7b8ec83c2a62fbff44.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2677508,
|
||||
"remaining_processes": [
|
||||
2677508
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 27596611,
|
||||
"user_usec": 23487708,
|
||||
"system_usec": 4108902,
|
||||
"nr_periods": 1071,
|
||||
"nr_throttled": 67,
|
||||
"throttled_usec": 23354,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1210003456,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-69c87bb8a2d84a7b8ec83c2a62fbff44.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
{"round": "round-01", "action.json_sha256": "bbd836b30411d209eab2e2a4e7fada08b322d90d982e6e3fa71fb55cf450238e", "action.json_bytes": 55, "action": {"kind": "docs", "payload": "[\"inspect_analysis_view\"]"}, "observation.json_sha256": "7127207640441dbd46bcd74b7d4f29bfd45b8bc65d2887344bae7901adfcfc1f", "observation.json_bytes": 27999, "prompt.txt_sha256": "bfb0220979327838d22495f2e6e6feb5378ae56d4ab2c975bcacf65f7f58f384", "prompt.txt_bytes": 16221, "events.jsonl_sha256": "f22d7cf659fd5b04cedddf3e2519c4d9e312c6669ffbab76637e3a234c588411", "events.jsonl_bytes": 644, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb8-0a89-7152-b350-a5b7d165bb48"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"docs\",\"payload\":\"[\\\"inspect_analysis_view\\\"]\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 13512, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 191, "reasoning_output_tokens": 165}}], "stderr.log_sha256": "4ce6d17cda211228b93098662e68c28ed49a925e551a8ca9ea3f95c847e7704b", "stderr.log_bytes": 252, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-unknown-code/profile-kaf8wy9c/codex\"))\n"}
|
||||
{"round": "round-02", "action.json_sha256": "c9eb9c929153f1a5c42947f8c0bd0ed6b3d490ebbe4c7653d3b60acd85174a3f", "action.json_bytes": 291, "action": {"kind": "code", "payload": "const r=rea.call(\"inspect_analysis_view\",{source:{kind:\"retained-evidence\",evidence_id:\"ev_fc5d8facd797da5738d6d2c5492aa1baa0d8057d1bba14d387afe8808f953990\"},view:{kind:\"item\",collection:\"modules\",selector:{path:\"main.js\"}}});print(JSON.stringify(r));"}, "observation.json_sha256": "b93d895bedc734d38bc7c2831ad78ceaeb22513a59ced28e475ec8f5c6917230", "observation.json_bytes": 3213, "prompt.txt_sha256": "ba8228da5e3c1763102938c899da6e1382ce1423295621da9dc9f6895415528c", "prompt.txt_bytes": 44302, "events.jsonl_sha256": "e78444af7f32218168a3518b59ae730414ace6af5f2c9fff7ea4ce421801515a", "events.jsonl_bytes": 899, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb8-6dee-75e3-ba51-2cf644cba43a"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"code\",\"payload\":\"const r=rea.call(\\\"inspect_analysis_view\\\",{source:{kind:\\\"retained-evidence\\\",evidence_id:\\\"ev_fc5d8facd797da5738d6d2c5492aa1baa0d8057d1bba14d387afe8808f953990\\\"},view:{kind:\\\"item\\\",collection:\\\"modules\\\",selector:{path:\\\"main.js\\\"}}});print(JSON.stringify(r));\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 20373, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 190, "reasoning_output_tokens": 82}}], "stderr.log_sha256": "4ce6d17cda211228b93098662e68c28ed49a925e551a8ca9ea3f95c847e7704b", "stderr.log_bytes": 252, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-unknown-code/profile-kaf8wy9c/codex\"))\n"}
|
||||
{"round": "round-03", "action.json_sha256": "8a21b85c054b432ac3c69c15f0753933051fa2c0d9f938faf53ca3392d4dda6e", "action.json_bytes": 1339, "action": {"kind": "answer", "payload": "{\"authorization_established\":false,\"application_behavior_fully_covered\":false,\"sender_validation_observations\":{\"count\":1,\"meaning\":\"One sender-validation observation was retained among 47 statically observed main IPC handlers; it is an observed check, not proof of enforced authorization.\"},\"unselected_files\":36,\"artifact_sha256\":\"146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f\",\"evidence_ids\":[\"ev_293425260c6d234a8754873c77f3fc59d8141bd411687f9aac0b926f88d1c571\",\"ev_fc5d8facd797da5738d6d2c5492aa1baa0d8057d1bba14d387afe8808f953990\"],\"reason\":\"No. The selected-source analysis statically observed 47 main IPC handlers and one sender-validation observation, but analyzed only package.json and main.js with 36 inventoried files outside scope. Application and semantic coverage are partial, and static relationships do not establish runtime registration, reachability, or enforcement.\",\"limitations\":[\"Selected-source scope excluded 36 inventoried files.\",\"Application and semantic graph coverage were partial, with retained unknowns and a main.js resource constraint.\",\"Sender/frame/URL/origin checks are observations only and do not prove a complete authorization policy.\",\"Static analysis did not execute code and does not prove runtime behavior.\"]}"}, "prompt.txt_sha256": "1db23dd6185008b53a13e2f546fb38c078f49d833daec9d709880c097a69c9e9", "prompt.txt_bytes": 47833, "events.jsonl_sha256": "8b760851b3958293555ba1bb301e7e9ac3c65038fa4bed44712ef93befd18590", "events.jsonl_bytes": 2000, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb8-cd7d-7f31-ae53-c1956d397a78"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"answer\",\"payload\":\"{\\\"authorization_established\\\":false,\\\"application_behavior_fully_covered\\\":false,\\\"sender_validation_observations\\\":{\\\"count\\\":1,\\\"meaning\\\":\\\"One sender-validation observation was retained among 47 statically observed main IPC handlers; it is an observed check, not proof of enforced authorization.\\\"},\\\"unselected_files\\\":36,\\\"artifact_sha256\\\":\\\"146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f\\\",\\\"evidence_ids\\\":[\\\"ev_293425260c6d234a8754873c77f3fc59d8141bd411687f9aac0b926f88d1c571\\\",\\\"ev_fc5d8facd797da5738d6d2c5492aa1baa0d8057d1bba14d387afe8808f953990\\\"],\\\"reason\\\":\\\"No. The selected-source analysis statically observed 47 main IPC handlers and one sender-validation observation, but analyzed only package.json and main.js with 36 inventoried files outside scope. Application and semantic coverage are partial, and static relationships do not establish runtime registration, reachability, or enforcement.\\\",\\\"limitations\\\":[\\\"Selected-source scope excluded 36 inventoried files.\\\",\\\"Application and semantic graph coverage were partial, with retained unknowns and a main.js resource constraint.\\\",\\\"Sender/frame/URL/origin checks are observations only and do not prove a complete authorization policy.\\\",\\\"Static analysis did not execute code and does not prove runtime behavior.\\\"]}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 21932, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 678, "reasoning_output_tokens": 333}}], "stderr.log_sha256": "4ce6d17cda211228b93098662e68c28ed49a925e551a8ca9ea3f95c847e7704b", "stderr.log_bytes": 252, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-unknown-code/profile-kaf8wy9c/codex\"))\n"}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"authorization_established": false,
|
||||
"application_behavior_fully_covered": false,
|
||||
"sender_validation_observations": {
|
||||
"count": 1,
|
||||
"interpretation": "A static sender/frame/URL/origin check was observed; this does not establish enforced authorization for every handler at runtime."
|
||||
},
|
||||
"unselected_files": 36,
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"evidence_ids": [
|
||||
"ev_6e485e2dcd2439c0a55380488b9fc3a781269665a28bbc34670da79797f1ecbe",
|
||||
"ev_dac1268d8376469317eeca2b1ceaacc4b987f5b34b7b964567eec9b683151605"
|
||||
],
|
||||
"limitations": [
|
||||
"Selected-source analysis left 36 inventoried files unselected.",
|
||||
"Application and semantic coverage are partial; main.js semantic graph was resource-constrained.",
|
||||
"Static Electron relationships do not prove runtime registration, reachability, or enforcement.",
|
||||
"Sender checks are observations only and do not prove a complete authorization policy."
|
||||
],
|
||||
"reason": "The analysis reported 47 static main-handler candidates and one sender-validation observation, but partial selected-source/static coverage and the lack of runtime enforcement proof mean it cannot establish that every Obsidian IPC handler authorizes its sender. Incomplete coverage does not establish an absent check or a vulnerability."
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"successful_evidence_ids": [
|
||||
"ev_6e485e2dcd2439c0a55380488b9fc3a781269665a28bbc34670da79797f1ecbe",
|
||||
"ev_acb7b2a702834e46329a84bb8f65db2ef19d97327fb9a93e62e189e357e2bd25",
|
||||
"ev_dac1268d8376469317eeca2b1ceaacc4b987f5b34b7b964567eec9b683151605"
|
||||
],
|
||||
"producer_response_files": [
|
||||
{
|
||||
"file": "call-001.json",
|
||||
"sha256": "6e82c7d18a768f4c3339fe465f4b46cfccf6a1c7ecd3db80252b6012edb2f6f0",
|
||||
"bytes": 29159
|
||||
},
|
||||
{
|
||||
"file": "call-002.json",
|
||||
"sha256": "ba49916b9d421915c26713be01fa0dec6edc5359faa8afd2cccfa0474e78a1db",
|
||||
"bytes": 2820
|
||||
},
|
||||
{
|
||||
"file": "call-003.json",
|
||||
"sha256": "07f4c1a9d68b079f8b79d3229cee7ac6da49a75ceee1686cbb2717c780aedf72",
|
||||
"bytes": 38031
|
||||
}
|
||||
],
|
||||
"scope": "Observed successful-envelope references and response digests; raw regenerable producer payloads omitted."
|
||||
}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"arm": "direct",
|
||||
"task": "obsidian-unknown",
|
||||
"status": "answered",
|
||||
"model": "gpt-5.6-terra",
|
||||
"reasoning": "high",
|
||||
"treatment_valid": true,
|
||||
"native_tool_calls": 0,
|
||||
"usage": {
|
||||
"input_tokens": 82373,
|
||||
"cached_input_tokens": 15872,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1362,
|
||||
"reasoning_output_tokens": 803
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"round": 1,
|
||||
"model_seconds": 27.01260164193809,
|
||||
"prompt_bytes": 15899,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 13437,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 77,
|
||||
"reasoning_output_tokens": 51
|
||||
},
|
||||
"action_kind": "docs",
|
||||
"action_seconds": 0.0014399399515241385,
|
||||
"observation_bytes": 27999
|
||||
},
|
||||
{
|
||||
"round": 2,
|
||||
"model_seconds": 20.78851568303071,
|
||||
"prompt_bytes": 43980,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 20298,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 216,
|
||||
"reasoning_output_tokens": 116
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.008615631028078496,
|
||||
"observation_bytes": 2840
|
||||
},
|
||||
{
|
||||
"round": 3,
|
||||
"model_seconds": 21.64216402103193,
|
||||
"prompt_bytes": 47151,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 21639,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 220,
|
||||
"reasoning_output_tokens": 120
|
||||
},
|
||||
"action_kind": "call",
|
||||
"action_seconds": 0.10015455004759133,
|
||||
"observation_bytes": 18484
|
||||
},
|
||||
{
|
||||
"round": 4,
|
||||
"model_seconds": 40.24906392209232,
|
||||
"prompt_bytes": 65956,
|
||||
"exit_code": 0,
|
||||
"usage": {
|
||||
"input_tokens": 26999,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 849,
|
||||
"reasoning_output_tokens": 516
|
||||
},
|
||||
"action_kind": "answer"
|
||||
}
|
||||
],
|
||||
"usage_scope": "Observed completed CLI turns; reasoning is a subset of output.",
|
||||
"usage_complete": true,
|
||||
"elapsed_seconds": 129.5048534909729,
|
||||
"preparation_seconds": 19.56745550094638,
|
||||
"revision": "6688ed6db7f4f0765851fd2e649c8273059334a2",
|
||||
"task_sha256": "2c73dc6269025d2c55d675b12794af3461c5aaadf2371719bb3405975a8fb9ad",
|
||||
"sources_sha256": {
|
||||
"trial.py": "b57718d1c44f4300d9d4f3f0b8979f4a532d51073c728e006ad9ff922b46773d",
|
||||
"backend.mjs": "687cab7f83ba0d7e7bff42c094bfd9a68a03f66f65cd4d2a4a942b745e81de40"
|
||||
}
|
||||
}
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"resource_scope": "rea-efficiency-d84f4511c957435c853f0c07132b8dcf.scope",
|
||||
"peak_cgroup_bytes_sampled": 1048354816,
|
||||
"elapsed_seconds": 129.832,
|
||||
"abort": null,
|
||||
"hard_memory_bytes": 8589934592,
|
||||
"early_stop_bytes": 6442450944,
|
||||
"cpu_quota_percent": 100,
|
||||
"cpu_affinity": [
|
||||
15
|
||||
],
|
||||
"task_ceiling": 192,
|
||||
"peak_tasks_sampled": 87,
|
||||
"resource_events_last_observed": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_events_final": null,
|
||||
"resource_counters_verified": false,
|
||||
"cpu_stat_last_observed": {
|
||||
"usage_usec": 26767268,
|
||||
"user_usec": 22787858,
|
||||
"system_usec": 3979410,
|
||||
"nr_periods": 1252,
|
||||
"nr_throttled": 47,
|
||||
"throttled_usec": 43714,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"payload_resource_observation": {
|
||||
"phase": "payload-exited-observer-alive",
|
||||
"ownership_token": "rea-efficiency-d84f4511c957435c853f0c07132b8dcf.scope",
|
||||
"payload_exit_code": 0,
|
||||
"observer_pid": 2678283,
|
||||
"remaining_processes": [
|
||||
2678283
|
||||
],
|
||||
"payload_cleanup_verified": true,
|
||||
"cpu_stat": {
|
||||
"usage_usec": 26765896,
|
||||
"user_usec": 22786690,
|
||||
"system_usec": 3979206,
|
||||
"nr_periods": 1251,
|
||||
"nr_throttled": 47,
|
||||
"throttled_usec": 43714,
|
||||
"nr_bursts": 0,
|
||||
"burst_usec": 0
|
||||
},
|
||||
"memory_peak_bytes": 1049292800,
|
||||
"control_group": "user.slice/user-1004.slice/user@1004.service/app.slice/rea-efficiency-d84f4511c957435c853f0c07132b8dcf.scope",
|
||||
"resource_events": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"payload_resource_observation_verified": true,
|
||||
"payload_observation_scope": "Counters at payload exit while observer remains alive; not final whole-scope counters.",
|
||||
"payload_observer_sources_sha256": {
|
||||
"resource-run.py": "7728862171415e7dee2c11af2ead2b9a54265fccaf82a7113956d36b29065e33",
|
||||
"resource_payload.py": "6f089e645459eba80c5d73e39c21606c78173a44daf49fabc3b88c4631ce51c6"
|
||||
}
|
||||
}
|
||||
]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{"round": "round-01", "action.json_sha256": "bbd836b30411d209eab2e2a4e7fada08b322d90d982e6e3fa71fb55cf450238e", "action.json_bytes": 55, "action": {"kind": "docs", "payload": "[\"inspect_analysis_view\"]"}, "observation.json_sha256": "7127207640441dbd46bcd74b7d4f29bfd45b8bc65d2887344bae7901adfcfc1f", "observation.json_bytes": 27999, "prompt.txt_sha256": "25e71955f908054e2ce144e982140ed3f4bdcae19e5c2756bd605e31b9ca2525", "prompt.txt_bytes": 15899, "events.jsonl_sha256": "735e95e7354152274dc14a99c0f3a989b263d09d3971aaf79f590b6eb38defbd", "events.jsonl_bytes": 645, "cli_events": [{"type": "thread.started", "thread_id": "01a13eb9-b87a-79c3-8614-2630865bb877"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"docs\",\"payload\":\"[\\\"inspect_analysis_view\\\"]\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 13437, "cached_input_tokens": 7936, "cache_write_input_tokens": 0, "output_tokens": 77, "reasoning_output_tokens": 51}}], "stderr.log_sha256": "b4f12ad641179c458b9a6369b8a034be3b824ccbbaf2d00b52dcf6182df082bb", "stderr.log_bytes": 254, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-unknown-direct/profile-j6bq7qd6/codex\"))\n"}
|
||||
{"round": "round-02", "action.json_sha256": "297ed2f46152c56cd4bd3cbe002b59b2459d3b19a3b2a788dea77a9d9a2746b4", "action.json_bytes": 304, "action": {"kind": "call", "payload": "{\"tool\":\"inspect_analysis_view\",\"arguments\":{\"source\":{\"kind\":\"retained-evidence\",\"evidence_id\":\"ev_dac1268d8376469317eeca2b1ceaacc4b987f5b34b7b964567eec9b683151605\"},\"view\":{\"kind\":\"item\",\"collection\":\"modules\",\"selector\":{\"path\":\"main.js\"}}}}"}, "observation.json_sha256": "33f04f52d3e928ed0c06670e1e844991897f600abd41e7be8981bd541e9f936b", "observation.json_bytes": 2840, "prompt.txt_sha256": "29379d6fb5df88e65b3e2d76ca19ab8cfb2affbfea60790180d69282bdf7446c", "prompt.txt_bytes": 43980, "events.jsonl_sha256": "3ef3e375f43aa0156cd0ae23a52e2886b7df0fd0a30607c856b21f161390d6e8", "events.jsonl_bytes": 953, "cli_events": [{"type": "thread.started", "thread_id": "01a13eba-2185-7990-8be8-e85312c754aa"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"call\",\"payload\":\"{\\\"tool\\\":\\\"inspect_analysis_view\\\",\\\"arguments\\\":{\\\"source\\\":{\\\"kind\\\":\\\"retained-evidence\\\",\\\"evidence_id\\\":\\\"ev_dac1268d8376469317eeca2b1ceaacc4b987f5b34b7b964567eec9b683151605\\\"},\\\"view\\\":{\\\"kind\\\":\\\"item\\\",\\\"collection\\\":\\\"modules\\\",\\\"selector\\\":{\\\"path\\\":\\\"main.js\\\"}}}}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 20298, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 216, "reasoning_output_tokens": 116}}], "stderr.log_sha256": "b4f12ad641179c458b9a6369b8a034be3b824ccbbaf2d00b52dcf6182df082bb", "stderr.log_bytes": 254, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-unknown-direct/profile-j6bq7qd6/codex\"))\n"}
|
||||
{"round": "round-03", "action.json_sha256": "860fe8b80d329c4d344840fc202967560ff084e8b9f0689f4988cb324bf20ebe", "action.json_bytes": 294, "action": {"kind": "call", "payload": "{\"tool\":\"inspect_analysis_view\",\"arguments\":{\"source\":{\"kind\":\"retained-evidence\",\"evidence_id\":\"ev_dac1268d8376469317eeca2b1ceaacc4b987f5b34b7b964567eec9b683151605\"},\"view\":{\"kind\":\"page\",\"collection\":\"modules\",\"offset\":0,\"limit\":64}}}"}, "observation.json_sha256": "a3b74f7727b3fc976d99a252cf4490439104f20cdf68cd00ac3143e8ac4c3eb4", "observation.json_bytes": 18484, "prompt.txt_sha256": "c3b1bf0f0a8a502aa2634082c58bc514ad08ad5bda1d0eeb55e42ac18a2bc8ba", "prompt.txt_bytes": 47151, "events.jsonl_sha256": "5cd4a7156e766c231270af7906a83e5158a70fe5d483f4f0e48cd7b034f44ad3", "events.jsonl_bytes": 939, "cli_events": [{"type": "thread.started", "thread_id": "01a13eba-72bc-70f2-aa30-ea0da0f7c13f"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"call\",\"payload\":\"{\\\"tool\\\":\\\"inspect_analysis_view\\\",\\\"arguments\\\":{\\\"source\\\":{\\\"kind\\\":\\\"retained-evidence\\\",\\\"evidence_id\\\":\\\"ev_dac1268d8376469317eeca2b1ceaacc4b987f5b34b7b964567eec9b683151605\\\"},\\\"view\\\":{\\\"kind\\\":\\\"page\\\",\\\"collection\\\":\\\"modules\\\",\\\"offset\\\":0,\\\"limit\\\":64}}}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 21639, "cached_input_tokens": 0, "cache_write_input_tokens": 0, "output_tokens": 220, "reasoning_output_tokens": 120}}], "stderr.log_sha256": "b4f12ad641179c458b9a6369b8a034be3b824ccbbaf2d00b52dcf6182df082bb", "stderr.log_bytes": 254, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-unknown-direct/profile-j6bq7qd6/codex\"))\n"}
|
||||
{"round": "round-04", "action.json_sha256": "774c0a1b5187f4358f094bd92db2d0cf50499853c35ad7a04367300fca72c8ef", "action.json_bytes": 1315, "action": {"kind": "answer", "payload": "{\"authorization_established\":false,\"application_behavior_fully_covered\":false,\"sender_validation_observations\":{\"count\":1,\"interpretation\":\"A static sender/frame/URL/origin check was observed; this does not establish enforced authorization for every handler at runtime.\"},\"unselected_files\":36,\"artifact_sha256\":\"146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f\",\"evidence_ids\":[\"ev_6e485e2dcd2439c0a55380488b9fc3a781269665a28bbc34670da79797f1ecbe\",\"ev_dac1268d8376469317eeca2b1ceaacc4b987f5b34b7b964567eec9b683151605\"],\"limitations\":[\"Selected-source analysis left 36 inventoried files unselected.\",\"Application and semantic coverage are partial; main.js semantic graph was resource-constrained.\",\"Static Electron relationships do not prove runtime registration, reachability, or enforcement.\",\"Sender checks are observations only and do not prove a complete authorization policy.\"],\"reason\":\"The analysis reported 47 static main-handler candidates and one sender-validation observation, but partial selected-source/static coverage and the lack of runtime enforcement proof mean it cannot establish that every Obsidian IPC handler authorizes its sender. Incomplete coverage does not establish an absent check or a vulnerability.\"}"}, "prompt.txt_sha256": "bbc52599324a5d714272874f024fae3578b8146ae24ffaa90aae831b78e893db", "prompt.txt_bytes": 65956, "events.jsonl_sha256": "48cbd2bfe3d11216fb72f9b99fa38388bc8eb175e10ed8906f1e7f902c7c61f6", "events.jsonl_bytes": 1979, "cli_events": [{"type": "thread.started", "thread_id": "01a13eba-c7aa-7803-8da0-cb7fe20711e2"}, {"type": "item.completed", "item": {"id": "item_0", "type": "error", "message": "Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}, {"type": "turn.started"}, {"type": "item.completed", "item": {"id": "item_1", "type": "agent_message", "text": "{\"kind\":\"answer\",\"payload\":\"{\\\"authorization_established\\\":false,\\\"application_behavior_fully_covered\\\":false,\\\"sender_validation_observations\\\":{\\\"count\\\":1,\\\"interpretation\\\":\\\"A static sender/frame/URL/origin check was observed; this does not establish enforced authorization for every handler at runtime.\\\"},\\\"unselected_files\\\":36,\\\"artifact_sha256\\\":\\\"146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f\\\",\\\"evidence_ids\\\":[\\\"ev_6e485e2dcd2439c0a55380488b9fc3a781269665a28bbc34670da79797f1ecbe\\\",\\\"ev_dac1268d8376469317eeca2b1ceaacc4b987f5b34b7b964567eec9b683151605\\\"],\\\"limitations\\\":[\\\"Selected-source analysis left 36 inventoried files unselected.\\\",\\\"Application and semantic coverage are partial; main.js semantic graph was resource-constrained.\\\",\\\"Static Electron relationships do not prove runtime registration, reachability, or enforcement.\\\",\\\"Sender checks are observations only and do not prove a complete authorization policy.\\\"],\\\"reason\\\":\\\"The analysis reported 47 static main-handler candidates and one sender-validation observation, but partial selected-source/static coverage and the lack of runtime enforcement proof mean it cannot establish that every Obsidian IPC handler authorizes its sender. Incomplete coverage does not establish an absent check or a vulnerability.\\\"}\"}"}}, {"type": "turn.completed", "usage": {"input_tokens": 26999, "cached_input_tokens": 7936, "cache_write_input_tokens": 0, "output_tokens": 849, "reasoning_output_tokens": 516}}], "stderr.log_sha256": "b4f12ad641179c458b9a6369b8a034be3b824ccbbaf2d00b52dcf6182df082bb", "stderr.log_bytes": 254, "stderr": "WARNING: proceeding, even though we could not create PATH aliases: Refusing to create helper binaries under temporary dir \"/tmp\" (codex_home: AbsolutePathBuf(\"/tmp/rea-codemode-experiment-20261015/cohort/obsidian-unknown-direct/profile-j6bq7qd6/codex\"))\n"}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"id": "obsidian-unknown",
|
||||
"question": "Does this selected-source static analysis establish that every Obsidian IPC handler enforces sender authorization at runtime? Return authorization_established (boolean), application_behavior_fully_covered (boolean), sender_validation_observations, unselected_files, and reason. Distinguish an observed check from enforced authorization; do not infer absence or a vulnerability from incomplete static coverage. Include artifact_sha256, evidence_ids (actual REA Evidence IDs used), and limitations (concise strings). Do not execute target code or fetch URLs. Use the supplied summary and retained Evidence; no new artifact selection. ",
|
||||
"bootstrap": {
|
||||
"tool": "analyze_javascript_application",
|
||||
"arguments": {
|
||||
"input_path": "/tmp/rea-codemode-experiment-20261015/artifacts/obsidian-1.14.4.asar",
|
||||
"source_paths": [
|
||||
"package.json",
|
||||
"main.js"
|
||||
],
|
||||
"detail": "summary"
|
||||
}
|
||||
},
|
||||
"tools": [
|
||||
"analyze_javascript_application",
|
||||
"inspect_analysis_view"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"obsidian-lookup": {
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"requested_paths": [
|
||||
"package.json",
|
||||
"main.js"
|
||||
],
|
||||
"unselected_files": 36,
|
||||
"parsed_javascript_files": 1,
|
||||
"browser_windows": 2,
|
||||
"ipc_operations": 47,
|
||||
"main_handlers": 47
|
||||
},
|
||||
"obsidian-identities": {
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"counts_by_kind": {
|
||||
"javascript-module": 23,
|
||||
"javascript-asset": 1
|
||||
},
|
||||
"node_ids": [
|
||||
"jag_node_15b5b46dfcbc20cac7c7a9c7b2d2efe21d39cecc77bb3a42e86506ac480c6cd0",
|
||||
"jag_node_205f7beec1e6b5efa4ff4928ea25da1e87be912fe4b597ff4ec40b0c1f7d956d",
|
||||
"jag_node_288149271a58cce3ef8ca8fcadfc24618bb0a4255724e5440605400bbbd61afb",
|
||||
"jag_node_3b78134c949c0ddae48a6c44419bfad0e1820ac0e2807bc433e14fe553e9bf33",
|
||||
"jag_node_42f0ba1369248f1d0ee7dc7e5deccdb6d03b34696d7c9b587b29561b055a0e2c",
|
||||
"jag_node_61561f95fa66efe6525b31567954c8a58bd0f3667b208e85d3c7d760ec396cdd",
|
||||
"jag_node_6728bd2855597b2b521020668ce9f4e1578b1769ad6b07cb516e142811ba3015",
|
||||
"jag_node_7290cf330a4c464680051bf158a11737c88d9b658d12b8ca33dad9d9ed5bbd43",
|
||||
"jag_node_72933fe5ad0b3d02bc689bbec5b98e57781a9e0642402e79d29dd84a40c4add3",
|
||||
"jag_node_74570cc130ee00964df34197958ce329e59db8b64add4f152b4c9dbaa459c620",
|
||||
"jag_node_82249640deb32652d0071229456acdeae30c3713f8cee3fb82d70352dbea476f",
|
||||
"jag_node_842abef9a77ef072b5bc55e00dda19a5b6039ae08288fb1c66240fa6c0321588",
|
||||
"jag_node_a15518c53e559509aa493fc7a059a511b8aec92d52aa9035a505fe2c42060ada",
|
||||
"jag_node_a2953a5694265708ca5deaa4162924db5aa6ec0fe23179473703e2415da6f20d",
|
||||
"jag_node_a304199f3cdfbb132783f2ef19661c97cf6538f6f9e0d2241ebd38a905fa03f5",
|
||||
"jag_node_a7c8f694bd07b5387690de4a25f3dff858865973ff593bb314159b8932c86c15",
|
||||
"jag_node_bc3fca896e4b81c6783517a7fe5c51c8e2c9e5d88eef9bd4f571f9230b5e544b",
|
||||
"jag_node_c74ef2b3509a9072fea733eb720e062f258b2ba13a163c5e50134f76ca8a1030",
|
||||
"jag_node_d678d9ad35db0904fa9af07f745d833b1fd0795211a29e6386551441701f1ea0",
|
||||
"jag_node_e0c8fcd14b723dfb42a5fcabf4ddc6c596d37cc1704c34f1d09456857afaa1a4",
|
||||
"jag_node_e74390bbf11499840fd0d861d90d1e0a9ca4edf57b8eb81dd13287e040979f5b",
|
||||
"jag_node_eaf187fce5c5c6b53bc0f391e658c3a63d73572bc4203b1f221652689777744e",
|
||||
"jag_node_fafc7c8e6c5aa1793108013819c957c7cc427d09fb0ad72f5311fdedb77ca1b2",
|
||||
"jag_node_fe6988c196f390298badd9cd9530548d189f2a76953fbe4898fd5a652e300db4"
|
||||
],
|
||||
"inventory_exhausted": true
|
||||
},
|
||||
"excalidraw-network": {
|
||||
"artifact_sha256": "680483155d4e0d4a67aca437de5309e741580f4710c170de508b8d0bd9fdb9e9",
|
||||
"observed_records": 39,
|
||||
"coverage_exhausted": true,
|
||||
"groups": [
|
||||
{
|
||||
"hostname": "excalidraw.com",
|
||||
"status": -1,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
38
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "excalidraw.com",
|
||||
"status": 200,
|
||||
"count": 28,
|
||||
"record_ordinals": [
|
||||
0,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
11,
|
||||
12,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
37
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "excalidraw.nyc3.cdn.digitaloceanspaces.com",
|
||||
"status": 200,
|
||||
"count": 7,
|
||||
"record_ordinals": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
13,
|
||||
14,
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "queue.simpleanalyticscdn.com",
|
||||
"status": 202,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
9
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "scripts.simpleanalyticscdn.com",
|
||||
"status": 200,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
8
|
||||
]
|
||||
},
|
||||
{
|
||||
"hostname": "sentry.io",
|
||||
"status": 200,
|
||||
"count": 1,
|
||||
"record_ordinals": [
|
||||
10
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"obsidian-unknown": {
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"authorization_established": false,
|
||||
"application_behavior_fully_covered": false,
|
||||
"sender_validation_observations": 1,
|
||||
"unselected_files": 36
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"trials": [
|
||||
{
|
||||
"task": "obsidian-lookup",
|
||||
"arm": "direct",
|
||||
"task_file": "obsidian-lookup.json",
|
||||
"task_sha256": "15ee74eb8718372d48c5c51b9dc6b10fa525ccf03a6d6f8fce3f93764f243368"
|
||||
},
|
||||
{
|
||||
"task": "obsidian-lookup",
|
||||
"arm": "code",
|
||||
"task_file": "obsidian-lookup.json",
|
||||
"task_sha256": "15ee74eb8718372d48c5c51b9dc6b10fa525ccf03a6d6f8fce3f93764f243368"
|
||||
},
|
||||
{
|
||||
"task": "obsidian-identities",
|
||||
"arm": "code",
|
||||
"task_file": "obsidian-identities.json",
|
||||
"task_sha256": "046266d4ede77baa44646231f8d0d646444e31e130fc7d6b34ff334caed5e43d"
|
||||
},
|
||||
{
|
||||
"task": "obsidian-identities",
|
||||
"arm": "direct",
|
||||
"task_file": "obsidian-identities.json",
|
||||
"task_sha256": "046266d4ede77baa44646231f8d0d646444e31e130fc7d6b34ff334caed5e43d"
|
||||
},
|
||||
{
|
||||
"task": "excalidraw-network",
|
||||
"arm": "direct",
|
||||
"task_file": "excalidraw-network.json",
|
||||
"task_sha256": "89d087a5b39097b390a5cfaf1f0f32925854cfd590fffb60dd9a56099ea7fb1b"
|
||||
},
|
||||
{
|
||||
"task": "excalidraw-network",
|
||||
"arm": "code",
|
||||
"task_file": "excalidraw-network.json",
|
||||
"task_sha256": "89d087a5b39097b390a5cfaf1f0f32925854cfd590fffb60dd9a56099ea7fb1b"
|
||||
},
|
||||
{
|
||||
"task": "obsidian-unknown",
|
||||
"arm": "code",
|
||||
"task_file": "obsidian-unknown.json",
|
||||
"task_sha256": "2c73dc6269025d2c55d675b12794af3461c5aaadf2371719bb3405975a8fb9ad"
|
||||
},
|
||||
{
|
||||
"task": "obsidian-unknown",
|
||||
"arm": "direct",
|
||||
"task_file": "obsidian-unknown.json",
|
||||
"task_sha256": "2c73dc6269025d2c55d675b12794af3461c5aaadf2371719bb3405975a8fb9ad"
|
||||
}
|
||||
],
|
||||
"repetitions": 1,
|
||||
"scope": "Eight-trial exploratory pilot, four questions, two artifacts",
|
||||
"oracle_scope": "HAR grouping independently decoded from original HAR. Obsidian counts/identities are consistency checks against separately retained production Evidence, not an independent proof of semantic extractor correctness.",
|
||||
"artifact_sha256": "146ef8470d8cbb4a6db209bdc19bf2bad13350444186c0fd93c31087b142b92f",
|
||||
"capture_sha256": "680483155d4e0d4a67aca437de5309e741580f4710c170de508b8d0bd9fdb9e9"
|
||||
}
|
||||
@@ -0,0 +1,464 @@
|
||||
{
|
||||
"scope": "Eight-trial exploratory pilot, four questions, two artifacts",
|
||||
"oracle_scope": "HAR grouping independently decoded from original HAR. Obsidian counts/identities are consistency checks against separately retained production Evidence, not an independent proof of semantic extractor correctness.",
|
||||
"trials": [
|
||||
{
|
||||
"trial": "obsidian-lookup-direct",
|
||||
"arm": "direct",
|
||||
"task": "obsidian-lookup",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"requested_paths": true,
|
||||
"unselected_files": true,
|
||||
"parsed_javascript_files": true,
|
||||
"browser_windows": true,
|
||||
"ipc_operations": true,
|
||||
"main_handlers": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": true,
|
||||
"usage": {
|
||||
"input_tokens": 112359,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1609,
|
||||
"reasoning_output_tokens": 987
|
||||
},
|
||||
"uncached_input_tokens": 112359,
|
||||
"usage_complete": true,
|
||||
"rounds": 5,
|
||||
"max_request_input_tokens": 30326,
|
||||
"model_observation_bytes": 64044,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 107.37500034691766,
|
||||
"whole_scope_seconds": 107.69,
|
||||
"preparation_seconds": 19.36791256791912,
|
||||
"question_seconds": 88.00708777899854,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 26.419693,
|
||||
"peak_bytes_at_payload_exit": 1155231744,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 4,
|
||||
"code_actions": 0,
|
||||
"success": true
|
||||
},
|
||||
{
|
||||
"trial": "obsidian-lookup-code",
|
||||
"arm": "code",
|
||||
"task": "obsidian-lookup",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"requested_paths": true,
|
||||
"unselected_files": true,
|
||||
"parsed_javascript_files": true,
|
||||
"browser_windows": true,
|
||||
"ipc_operations": true,
|
||||
"main_handlers": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": true,
|
||||
"usage": {
|
||||
"input_tokens": 82621,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1059,
|
||||
"reasoning_output_tokens": 603
|
||||
},
|
||||
"uncached_input_tokens": 82621,
|
||||
"usage_complete": true,
|
||||
"rounds": 4,
|
||||
"max_request_input_tokens": 27101,
|
||||
"model_observation_bytes": 49429,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 94.46551845304202,
|
||||
"whole_scope_seconds": 94.796,
|
||||
"preparation_seconds": 19.444348984980024,
|
||||
"question_seconds": 75.021169468062,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 25.588564,
|
||||
"peak_bytes_at_payload_exit": 1051041792,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 3,
|
||||
"code_actions": 2,
|
||||
"success": true
|
||||
},
|
||||
{
|
||||
"trial": "obsidian-identities-code",
|
||||
"arm": "code",
|
||||
"task": "obsidian-identities",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"counts_by_kind": true,
|
||||
"node_ids": false,
|
||||
"inventory_exhausted": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": false,
|
||||
"usage": {
|
||||
"input_tokens": 80325,
|
||||
"cached_input_tokens": 7936,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 2171,
|
||||
"reasoning_output_tokens": 699
|
||||
},
|
||||
"uncached_input_tokens": 72389,
|
||||
"usage_complete": true,
|
||||
"rounds": 4,
|
||||
"max_request_input_tokens": 26007,
|
||||
"model_observation_bytes": 47203,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 85.01893847598694,
|
||||
"whole_scope_seconds": 85.36,
|
||||
"preparation_seconds": 19.326784500968643,
|
||||
"question_seconds": 65.6921539750183,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 27.282986,
|
||||
"peak_bytes_at_payload_exit": 1047605248,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 3,
|
||||
"code_actions": 2,
|
||||
"success": false
|
||||
},
|
||||
{
|
||||
"trial": "obsidian-identities-direct",
|
||||
"arm": "direct",
|
||||
"task": "obsidian-identities",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"counts_by_kind": true,
|
||||
"node_ids": true,
|
||||
"inventory_exhausted": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": true,
|
||||
"usage": {
|
||||
"input_tokens": 80227,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 2093,
|
||||
"reasoning_output_tokens": 627
|
||||
},
|
||||
"uncached_input_tokens": 80227,
|
||||
"usage_complete": true,
|
||||
"rounds": 4,
|
||||
"max_request_input_tokens": 25916,
|
||||
"model_observation_bytes": 47097,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 163.53370783792343,
|
||||
"whole_scope_seconds": 163.973,
|
||||
"preparation_seconds": 61.656440516002476,
|
||||
"question_seconds": 101.87726732192095,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 61.686086,
|
||||
"peak_bytes_at_payload_exit": 1070039040,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 3,
|
||||
"code_actions": 0,
|
||||
"success": true
|
||||
},
|
||||
{
|
||||
"trial": "excalidraw-network-direct",
|
||||
"arm": "direct",
|
||||
"task": "excalidraw-network",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"observed_records": true,
|
||||
"coverage_exhausted": true,
|
||||
"groups": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": true,
|
||||
"usage": {
|
||||
"input_tokens": 74055,
|
||||
"cached_input_tokens": 15872,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1041,
|
||||
"reasoning_output_tokens": 422
|
||||
},
|
||||
"uncached_input_tokens": 58183,
|
||||
"usage_complete": true,
|
||||
"rounds": 4,
|
||||
"max_request_input_tokens": 30477,
|
||||
"model_observation_bytes": 74298,
|
||||
"discovery_rounds": 2,
|
||||
"discovery_response_bytes": 32179,
|
||||
"elapsed_seconds": 69.86348159005865,
|
||||
"whole_scope_seconds": 70.221,
|
||||
"preparation_seconds": 13.026660543051548,
|
||||
"question_seconds": 56.836821047007106,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 18.711444,
|
||||
"peak_bytes_at_payload_exit": 990904320,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 2,
|
||||
"code_actions": 0,
|
||||
"success": true
|
||||
},
|
||||
{
|
||||
"trial": "excalidraw-network-code",
|
||||
"arm": "code",
|
||||
"task": "excalidraw-network",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"observed_records": true,
|
||||
"coverage_exhausted": true,
|
||||
"groups": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": true,
|
||||
"usage": {
|
||||
"input_tokens": 59768,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1040,
|
||||
"reasoning_output_tokens": 505
|
||||
},
|
||||
"uncached_input_tokens": 59768,
|
||||
"usage_complete": true,
|
||||
"rounds": 3,
|
||||
"max_request_input_tokens": 29647,
|
||||
"model_observation_bytes": 70171,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 73.09337004297413,
|
||||
"whole_scope_seconds": 73.455,
|
||||
"preparation_seconds": 12.543102559982799,
|
||||
"question_seconds": 60.55026748299133,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 18.117867,
|
||||
"peak_bytes_at_payload_exit": 1191456768,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 2,
|
||||
"code_actions": 1,
|
||||
"success": true
|
||||
},
|
||||
{
|
||||
"trial": "obsidian-unknown-code",
|
||||
"arm": "code",
|
||||
"task": "obsidian-unknown",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"authorization_established": true,
|
||||
"application_behavior_fully_covered": true,
|
||||
"sender_validation_observations": true,
|
||||
"unselected_files": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": true,
|
||||
"usage": {
|
||||
"input_tokens": 55817,
|
||||
"cached_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1059,
|
||||
"reasoning_output_tokens": 580
|
||||
},
|
||||
"uncached_input_tokens": 55817,
|
||||
"usage_complete": true,
|
||||
"rounds": 3,
|
||||
"max_request_input_tokens": 21932,
|
||||
"model_observation_bytes": 31212,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 112.04562795802485,
|
||||
"whole_scope_seconds": 112.424,
|
||||
"preparation_seconds": 21.983774747001007,
|
||||
"question_seconds": 90.06185321102384,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 27.596611,
|
||||
"peak_bytes_at_payload_exit": 1210003456,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 2,
|
||||
"code_actions": 1,
|
||||
"success": true
|
||||
},
|
||||
{
|
||||
"trial": "obsidian-unknown-direct",
|
||||
"arm": "direct",
|
||||
"task": "obsidian-unknown",
|
||||
"answer_type": "dict",
|
||||
"status": "answered",
|
||||
"treatment_valid": true,
|
||||
"checks": {
|
||||
"artifact_sha256": true,
|
||||
"authorization_established": true,
|
||||
"application_behavior_fully_covered": true,
|
||||
"sender_validation_observations": true,
|
||||
"unselected_files": true,
|
||||
"frozen_task": true,
|
||||
"evidence_ids": true,
|
||||
"limitations_present": true
|
||||
},
|
||||
"facts_pass": true,
|
||||
"usage": {
|
||||
"input_tokens": 82373,
|
||||
"cached_input_tokens": 15872,
|
||||
"cache_write_input_tokens": 0,
|
||||
"output_tokens": 1362,
|
||||
"reasoning_output_tokens": 803
|
||||
},
|
||||
"uncached_input_tokens": 66501,
|
||||
"usage_complete": true,
|
||||
"rounds": 4,
|
||||
"max_request_input_tokens": 26999,
|
||||
"model_observation_bytes": 49323,
|
||||
"discovery_rounds": 1,
|
||||
"discovery_response_bytes": 27999,
|
||||
"elapsed_seconds": 129.5048534909729,
|
||||
"whole_scope_seconds": 129.832,
|
||||
"preparation_seconds": 19.56745550094638,
|
||||
"question_seconds": 109.93739799002651,
|
||||
"resources_verified_at_payload_exit": true,
|
||||
"cpu_seconds_at_payload_exit": 26.765896,
|
||||
"peak_bytes_at_payload_exit": 1049292800,
|
||||
"resource_events_at_payload_exit": {
|
||||
"memory.events": {
|
||||
"low": 0,
|
||||
"high": 0,
|
||||
"max": 0,
|
||||
"oom": 0,
|
||||
"oom_kill": 0,
|
||||
"oom_group_kill": 0
|
||||
},
|
||||
"pids.events": {
|
||||
"max": 0
|
||||
}
|
||||
},
|
||||
"resource_abort": null,
|
||||
"backend_calls": 3,
|
||||
"code_actions": 0,
|
||||
"success": true
|
||||
}
|
||||
],
|
||||
"accepted_shapes": "node_ids may be a list or a mapping of kinds to lists; sender_validation_observations may be a count object; limitations may be prose or a string list. Exact facts still required.",
|
||||
"narrative_review": "Required separately: supporting IDs alone do not establish claim-level support."
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,98 @@
|
||||
"""Save non-regenerable experimental decisions/results, never raw applications.
|
||||
|
||||
Explicit allowlist: no recursive directory copying, profiles, auth, ambient
|
||||
configuration, original inputs, or regenerable full producer Evidence.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / 'browser-electron-code-mode'))
|
||||
from review import evidence_ids
|
||||
|
||||
|
||||
def read(path):
|
||||
return json.loads(path.read_text())
|
||||
|
||||
|
||||
def digest(path):
|
||||
return hashlib.sha256(path.read_bytes()).hexdigest()
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--cohort', type=Path, required=True)
|
||||
parser.add_argument('--output', type=Path, required=True)
|
||||
args = parser.parse_args()
|
||||
plan = read(args.cohort / 'plan.json')
|
||||
args.output.mkdir(parents=True, exist_ok=False)
|
||||
files = {'plan.json', 'oracles.json', 'review.json'} | {row['task_file'] for row in plan['trials']}
|
||||
for name in sorted(files):
|
||||
if Path(name).name != name:
|
||||
raise ValueError('Expected a cohort-local filename')
|
||||
source = args.cohort / name
|
||||
if source.exists():
|
||||
shutil.copyfile(source, args.output / name)
|
||||
for row in plan['trials']:
|
||||
label = row['task'] + '-' + row['arm']
|
||||
source = args.cohort / label
|
||||
output = args.output / label
|
||||
output.mkdir()
|
||||
for name in ['receipt.json', 'answer.json', 'context-capture.json']:
|
||||
if (source / name).exists():
|
||||
shutil.copyfile(source / name, output / name)
|
||||
trajectory = []
|
||||
for step in sorted(source.glob('round-*')):
|
||||
item = {'round': step.name}
|
||||
for name in ['action.json', 'observation.json', 'prompt.txt', 'events.jsonl', 'stderr.log']:
|
||||
path = step / name
|
||||
if not path.exists():
|
||||
continue
|
||||
item[name + '_sha256'] = digest(path)
|
||||
item[name + '_bytes'] = path.stat().st_size
|
||||
if name == 'action.json':
|
||||
item['action'] = read(path)
|
||||
if name == 'events.jsonl':
|
||||
# CLI usage/events reflect the actual sampling, and cannot
|
||||
# be reconstructed from regenerated tool output.
|
||||
item['cli_events'] = [json.loads(line) for line in path.read_text().splitlines()]
|
||||
if name == 'stderr.log' and path.stat().st_size:
|
||||
item['stderr'] = path.read_text()
|
||||
trajectory.append(item)
|
||||
(output / 'trajectory.jsonl').write_text(''.join(json.dumps(item, ensure_ascii=False) + '\n' for item in trajectory))
|
||||
known = set()
|
||||
calls = []
|
||||
for path in sorted((source / 'backend').glob('call-*.json')):
|
||||
known.update(evidence_ids(read(path)))
|
||||
calls.append({'file': path.name, 'sha256': digest(path), 'bytes': path.stat().st_size})
|
||||
index = {'successful_evidence_ids': sorted(known), 'producer_response_files': calls,
|
||||
'scope': 'Observed successful-envelope references and response digests; raw regenerable producer payloads omitted.'}
|
||||
(output / 'evidence-index.json').write_text(json.dumps(index, indent=2) + '\n')
|
||||
resources = []
|
||||
log = args.cohort / (label + '.log')
|
||||
if log.exists():
|
||||
for line in log.read_text().splitlines():
|
||||
try:
|
||||
value = json.loads(line)
|
||||
except ValueError:
|
||||
continue
|
||||
if isinstance(value, dict) and 'resource_scope' in value:
|
||||
resources.append(value)
|
||||
(output / 'resources.json').write_text(json.dumps(resources, indent=2) + '\n')
|
||||
inventory = {str(path.relative_to(args.output)): digest(path)
|
||||
for path in args.output.rglob('*') if path.is_file()}
|
||||
(args.output / 'manifest.json').write_text(json.dumps({
|
||||
'files_sha256': inventory,
|
||||
'retention': 'Tasks, oracles, sampling actions/CLI events, usage, failures, response digests and resources. No original applications/captures or full producer payloads.',
|
||||
'replay_limit': 'Regenerate new captures and oracles for a fresh cohort. Historical live web captures are not byte-reproducible and are intentionally not archived.',
|
||||
}, indent=2) + '\n')
|
||||
print(json.dumps({'output': str(args.output), 'files': len(inventory),
|
||||
'bytes': sum(path.stat().st_size for path in args.output.rglob('*') if path.is_file())}))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,119 @@
|
||||
"""Verify real Obsidian query/SDK parity, paging and warm reads; no agent claims."""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--data', type=Path, required=True)
|
||||
parser.add_argument('--quickjs', type=Path, required=True)
|
||||
parser.add_argument('--output', type=Path, required=True)
|
||||
args = parser.parse_args()
|
||||
root = Path(__file__).resolve().parents[2]
|
||||
args.output.mkdir(mode=0o700)
|
||||
settings = args.output / 'settings.json'
|
||||
settings.write_text(json.dumps({'runtime': str(root), 'output': str(args.output / 'backend'),
|
||||
'tools': ['analyze_javascript_application', 'inspect_analysis_view'],
|
||||
'quickjs': str(args.quickjs), 'code_api': 'typed-async'}))
|
||||
errors = (args.output / 'stderr.log').open('w')
|
||||
process = subprocess.Popen([shutil.which('node'), str(root / 'experiments/browser-electron-code-mode/backend.mjs'), str(settings)],
|
||||
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=errors, text=True)
|
||||
|
||||
def rpc(request):
|
||||
process.stdin.write(json.dumps(request) + '\n')
|
||||
process.stdin.flush()
|
||||
response = json.loads(process.stdout.readline())
|
||||
if not response['ok']:
|
||||
raise RuntimeError(response)
|
||||
return response['value']
|
||||
|
||||
def call(view):
|
||||
return rpc({'kind': 'call', 'tool': 'inspect_analysis_view', 'arguments': {
|
||||
'source': {'kind': 'retained-evidence', 'evidence_id': parent}, 'view': view}})
|
||||
|
||||
try:
|
||||
task = json.loads((args.data / 'dependencies/obsidian-dependencies.json').read_text())
|
||||
bootstrap = rpc({'kind': 'call', **task['bootstrap']})
|
||||
parent = bootstrap['normalized_result']['parent_evidence_id']
|
||||
request = {'kind': 'javascript', 'collection': 'modules', 'projection': 'references',
|
||||
'where': {'path': 'main.js', 'kind': 'javascript-module'}, 'limit': 64}
|
||||
durations = []
|
||||
for _ in range(3):
|
||||
tick = time.monotonic()
|
||||
typed = call(request)
|
||||
durations.append(time.monotonic() - tick)
|
||||
page = typed['normalized_result']
|
||||
assert len(page['rows']) == 23
|
||||
assert page['coverage']['exhausted']
|
||||
assert page['source_coverage']['source_selection']['unselected_files'] == 36
|
||||
assert page['source_coverage']['application']['status'] == 'partial'
|
||||
legacy = call({'kind': 'page', 'collection': 'modules', 'offset': 0, 'limit': 100})
|
||||
items = []
|
||||
for row in legacy['normalized_result']['items']:
|
||||
if row['path'] != 'main.js' or row['kind'] != 'javascript-module':
|
||||
continue
|
||||
item = call({'kind': 'item', 'collection': 'modules', 'selector': {'node_id': row['node_id']}})
|
||||
items.append(item)
|
||||
owners = {item['normalized_result']['item']['node_id']: item['normalized_result']['item'] for item in items}
|
||||
assert set(owners) == {row['node_id'] for row in page['rows']}
|
||||
for row in page['rows']:
|
||||
item = owners[row['node_id']]
|
||||
assert row['identity'] == item['identity']
|
||||
assert row['retained_source_range_count'] == len(item['source_ranges'])
|
||||
assert {(b['authority'], b['state'], b['confidence']) for b in row['basis']} == {
|
||||
(o['evidence']['authority'], o['evidence']['state'], o['evidence']['confidence']) for o in item['observations']}
|
||||
code = '''const app=rea.javascript.fromEvidence(PARENT);
|
||||
const counts={}; const ids=[]; const sources=[];
|
||||
for await (const result of app.modules.pages({where:{path:'main.js',kind:'javascript-module'},limit:7})) {
|
||||
if(!result.ok) throw new Error(JSON.stringify(result.error));
|
||||
sources.push(result.value.evidence_id);
|
||||
for(const row of result.value.page.rows) {
|
||||
ids.push(row.node_id); const id=row.identity;
|
||||
if(id.strategy==='artifact-local-key' && id.namespace==='unresolved-semantic-module' && id.key.startsWith('external:'))
|
||||
counts[id.key.slice(9)]=(counts[id.key.slice(9)]??0)+row.retained_source_range_count;
|
||||
}
|
||||
}
|
||||
print({counts,ids,sources});'''.replace('PARENT', json.dumps(parent))
|
||||
result = rpc({'kind': 'code', 'code': code})
|
||||
assert result['status'] == 'completed', result
|
||||
assert result['backend_calls'] == 4, result
|
||||
oracle = json.loads((args.data / 'dependencies/oracles.json').read_text())['obsidian-dependencies']
|
||||
assert result['printed'][0]['counts'] == oracle['external_specifiers']
|
||||
assert result['printed'][0]['ids'] == [row['node_id'] for row in page['rows']]
|
||||
early = rpc({'kind': 'code', 'code': 'for await(const r of rea.javascript.fromEvidence(' + json.dumps(parent) + ').modules.pages({limit:1})) { print(r.ok); break; }'})
|
||||
assert early['status'] == 'completed' and early['backend_calls'] == 1, early
|
||||
missing = rpc({'kind': 'code', 'code': 'const r=await rea.javascript.fromEvidence("ev_' + '0' * 64 + '").modules.references(); print(r);'})
|
||||
assert missing['status'] == 'completed' and missing['printed'][0]['ok'] is False, missing
|
||||
output = {'scope': 'Real shipped Obsidian via production MCP and experimental async SDK; deterministic boundary verification, not agent sampling.',
|
||||
'artifact_sha256': oracle['artifact_sha256'], 'parent_evidence_id': parent,
|
||||
'matching_module_count': len(owners), 'external_specifiers': result['printed'][0]['counts'],
|
||||
'legacy_structured_bytes': len(json.dumps([legacy, *items], separators=(',', ':')).encode()),
|
||||
'typed_structured_bytes': len(json.dumps(typed, separators=(',', ':')).encode()),
|
||||
'query_roundtrip_seconds': {'first': durations[0], 'repeated': durations[1:]},
|
||||
'sdk_pages': result['backend_calls'], 'early_exit_calls': early['backend_calls'],
|
||||
'missing_parent_explicit_error': True, 'source_partiality_preserved': True,
|
||||
'cache': 'Same retained snapshot; no new query cache introduced. First query is after preparation, not cold analysis.',
|
||||
'measured_agent_tokens': None}
|
||||
(args.output / 'verification.json').write_text(json.dumps(output, indent=2) + '\n')
|
||||
print(json.dumps(output))
|
||||
finally:
|
||||
if process.poll() is None:
|
||||
try:
|
||||
process.stdin.write('{"kind":"close"}\n')
|
||||
process.stdin.flush()
|
||||
process.wait(timeout=15)
|
||||
except (BrokenPipeError, subprocess.TimeoutExpired):
|
||||
process.terminate()
|
||||
process.wait(timeout=15)
|
||||
process.stdin.close()
|
||||
process.stdout.close()
|
||||
errors.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
File diff suppressed because one or more lines are too long
@@ -481,6 +481,120 @@ it("projects JavaScript summary and preserves selected module observations", ()
|
||||
});
|
||||
});
|
||||
|
||||
it("projects typed module facts without source bodies and keeps source coverage independent of paging", () => {
|
||||
const analysis = analysisViewJavaScriptAnalysisWithSource();
|
||||
const parent = javascriptParent(analysis);
|
||||
const input = inspectAnalysisViewInputSchema.parse({
|
||||
source: { kind: "retained-evidence", evidence_id: parent.evidenceId },
|
||||
view: {
|
||||
kind: "javascript",
|
||||
collection: "modules",
|
||||
projection: "references",
|
||||
where: { path: "renderer.js" },
|
||||
limit: 1,
|
||||
},
|
||||
});
|
||||
const projected = projectAnalysisView(parent, input.view);
|
||||
if (!projected.ok) throw projected.error;
|
||||
if (projected.value.kind !== "javascript")
|
||||
throw new Error("expected JavaScript view");
|
||||
const node = analysis.graph.nodes[0];
|
||||
if (!node) throw new Error("missing module");
|
||||
expect(projected.value.rows).toEqual([
|
||||
{
|
||||
node_id: node.node_id,
|
||||
kind: node.kind,
|
||||
path: "renderer.js",
|
||||
identity: node.identity,
|
||||
retained_source_range_count: node.observations.filter(
|
||||
({ evidence }) =>
|
||||
evidence.location.available &&
|
||||
evidence.location.value.kind === "source-range",
|
||||
).length,
|
||||
basis: [
|
||||
...new Map(
|
||||
node.observations.map(
|
||||
({ evidence: { authority, state, confidence } }) => [
|
||||
`${authority}:${state}:${confidence}`,
|
||||
{ authority, state, confidence },
|
||||
],
|
||||
),
|
||||
).values(),
|
||||
],
|
||||
},
|
||||
]);
|
||||
expect(projected.value.coverage).toMatchObject({ total: 1, exhausted: true });
|
||||
expect(projected.value.source_coverage).toMatchObject({
|
||||
application: analysis.graph.coverage,
|
||||
semantic: { status: analysis.semantic_graph.coverage.status },
|
||||
});
|
||||
expect(JSON.stringify(projected.value.rows)).not.toMatch(
|
||||
/secret|should not leak|observations/,
|
||||
);
|
||||
const row = projected.value.rows[0];
|
||||
if (!row) throw new Error("missing reference");
|
||||
const retainedIdentity = structuredClone(node.identity);
|
||||
if (row.identity.strategy !== "content-digest")
|
||||
throw new Error("expected digest identity");
|
||||
row.identity.sha256 = "e".repeat(64);
|
||||
expect(node.identity).toEqual(retainedIdentity);
|
||||
const empty = projectAnalysisView(parent, {
|
||||
...input.view,
|
||||
kind: "javascript",
|
||||
collection: "modules",
|
||||
projection: "references",
|
||||
where: { kind: "javascript-module" },
|
||||
offset: 0,
|
||||
limit: 1,
|
||||
});
|
||||
if (!empty.ok) throw empty.error;
|
||||
expect(empty.value).toMatchObject({
|
||||
rows: [],
|
||||
coverage: { total: 0, exhausted: true },
|
||||
});
|
||||
});
|
||||
|
||||
it("validates typed module selectors without coercing null or empty paths", () => {
|
||||
const source = {
|
||||
kind: "retained-evidence",
|
||||
evidence_id: javascriptParent().evidenceId,
|
||||
};
|
||||
const view = {
|
||||
kind: "javascript",
|
||||
collection: "modules",
|
||||
projection: "references",
|
||||
};
|
||||
for (const path of [null, "", "renderer.js"])
|
||||
expect(
|
||||
inspectAnalysisViewInputSchema.safeParse({
|
||||
source,
|
||||
view: { ...view, where: { path } },
|
||||
}).success,
|
||||
).toBe(true);
|
||||
for (const where of [
|
||||
{ path: 1 },
|
||||
{ kind: "electron-main" },
|
||||
{ glob: "*.js" },
|
||||
])
|
||||
expect(
|
||||
inspectAnalysisViewInputSchema.safeParse({
|
||||
source,
|
||||
view: { ...view, where },
|
||||
}).success,
|
||||
).toBe(false);
|
||||
expect(
|
||||
projectAnalysisView(layoutParent(), {
|
||||
...view,
|
||||
kind: "javascript",
|
||||
collection: "modules",
|
||||
projection: "references",
|
||||
where: {},
|
||||
offset: 0,
|
||||
limit: 1,
|
||||
}).ok,
|
||||
).toBe(false);
|
||||
});
|
||||
|
||||
it("rejects ambiguous JavaScript module paths with candidate node ids", () => {
|
||||
const analysis = analysisViewJavaScriptAnalysis();
|
||||
const first = analysis.graph.nodes[0];
|
||||
@@ -644,6 +758,24 @@ it("pages actual modules, including unknown and empty paths, without unrelated r
|
||||
collection: "modules",
|
||||
selector: { path: "" },
|
||||
});
|
||||
for (const [path, kind] of [
|
||||
[null, "javascript-module"],
|
||||
["", "source-module"],
|
||||
] as const) {
|
||||
const references = projectAnalysisView(parent, {
|
||||
kind: "javascript",
|
||||
collection: "modules",
|
||||
projection: "references",
|
||||
where: { path },
|
||||
offset: 0,
|
||||
limit: 1,
|
||||
});
|
||||
if (!references.ok) throw references.error;
|
||||
expect(references.value).toMatchObject({
|
||||
rows: [{ path, kind }],
|
||||
coverage: { total: 1, exhausted: true },
|
||||
});
|
||||
}
|
||||
expect(emptyPath.ok).toBe(true);
|
||||
const role = nodes.find((node) => node.kind === "electron-renderer");
|
||||
if (role === undefined) throw new Error("missing role");
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { z } from "zod";
|
||||
import {
|
||||
javascriptModuleReferencesRequestSchema,
|
||||
javascriptModuleReferenceSchema,
|
||||
javascriptModuleSourceCoverageSchema,
|
||||
} from "./javascriptModuleReferences.js";
|
||||
import { javaScriptSourceSelectionSchema } from "../javascript/javascriptSourceSelection.js";
|
||||
|
||||
import {
|
||||
@@ -216,6 +221,7 @@ export const analysisViewRequestSchema = z.discriminatedUnion("kind", [
|
||||
facetViewSchema,
|
||||
itemViewSchema,
|
||||
pageViewSchema,
|
||||
javascriptModuleReferencesRequestSchema,
|
||||
nativeViewSchema,
|
||||
inventoryViewSchema,
|
||||
wasmViewRequestSchema,
|
||||
@@ -239,12 +245,15 @@ const inlineEvidenceInputSchema = z.unknown().nonoptional();
|
||||
inlineEvidenceInputSchema._zod.processJSONSchema =
|
||||
evidenceSchema._zod.processJSONSchema;
|
||||
|
||||
/** Exact same-session retained reference, authenticated by the application. */
|
||||
export const retainedAnalysisViewSourceSchema = z.strictObject({
|
||||
kind: z.literal("retained-evidence"),
|
||||
evidence_id: prefixedDigestSchema("ev"),
|
||||
});
|
||||
|
||||
/** Unauthenticated inline input or an exact same-session retained reference. */
|
||||
export const analysisViewSourceSchema = z.discriminatedUnion("kind", [
|
||||
z.strictObject({
|
||||
kind: z.literal("retained-evidence"),
|
||||
evidence_id: prefixedDigestSchema("ev"),
|
||||
}),
|
||||
retainedAnalysisViewSourceSchema,
|
||||
z.strictObject({
|
||||
kind: z.literal("inline"),
|
||||
evidence: inlineEvidenceInputSchema,
|
||||
@@ -379,6 +388,16 @@ export const javascriptApplicationSummaryViewResultSchema = z.strictObject({
|
||||
parent_operation: z.literal("analyze_javascript_application"),
|
||||
});
|
||||
|
||||
/** Typed reference page; full item observations remain available separately. */
|
||||
export const javascriptModuleReferencesViewResultSchema = z.strictObject({
|
||||
...viewResultBase,
|
||||
kind: z.literal("javascript"),
|
||||
view: javascriptModuleReferencesRequestSchema,
|
||||
parent_operation: z.literal("analyze_javascript_application"),
|
||||
rows: z.array(javascriptModuleReferenceSchema),
|
||||
source_coverage: javascriptModuleSourceCoverageSchema,
|
||||
});
|
||||
|
||||
/** Exact summary carrier for artifact inspection's optional delivery contract. */
|
||||
export const artifactInventorySummaryViewResultSchema = z.strictObject({
|
||||
...summaryViewResultBase,
|
||||
@@ -527,6 +546,7 @@ export const analysisViewResultSchema = z.discriminatedUnion("kind", [
|
||||
items: z.array(jsonValueSchema),
|
||||
...viewResultBase,
|
||||
}),
|
||||
javascriptModuleReferencesViewResultSchema,
|
||||
z.strictObject({
|
||||
kind: z.literal("native"),
|
||||
view: nativeViewSchema,
|
||||
@@ -647,6 +667,10 @@ export type UnsignedAnalysisView =
|
||||
| Omit<Extract<AnalysisViewResult, { readonly kind: "facet" }>, "view_digest">
|
||||
| Omit<Extract<AnalysisViewResult, { readonly kind: "item" }>, "view_digest">
|
||||
| Omit<Extract<AnalysisViewResult, { readonly kind: "page" }>, "view_digest">
|
||||
| Omit<
|
||||
Extract<AnalysisViewResult, { readonly kind: "javascript" }>,
|
||||
"view_digest"
|
||||
>
|
||||
| Omit<
|
||||
Extract<AnalysisViewResult, { readonly kind: "native" }>,
|
||||
"view_digest"
|
||||
|
||||
@@ -7,6 +7,7 @@ import { jsonObjectSchema, type JsonValue } from "../jsonValue.js";
|
||||
import type { JavaScriptApplicationAnalysisResult } from "../javascript/javascriptApplicationAnalysis.js";
|
||||
import type { ApplicationNode } from "../javascript/javascriptApplicationGraphSchemas.js";
|
||||
import { err, ok, type Result } from "../result.js";
|
||||
import type { JavaScriptModuleReference } from "./javascriptModuleReferences.js";
|
||||
import {
|
||||
boundedViewMessages,
|
||||
completeWithinViewCoverage as completeCoverage,
|
||||
@@ -128,6 +129,36 @@ const moduleItem = (node: ApplicationNode): JsonValue => ({
|
||||
})),
|
||||
});
|
||||
|
||||
const moduleReference = (
|
||||
node: ApplicationNode,
|
||||
kind: JavaScriptModuleReference["kind"],
|
||||
path: string | null,
|
||||
): JavaScriptModuleReference => {
|
||||
let ranges = 0;
|
||||
const support = new Map<string, JavaScriptModuleReference["basis"][number]>();
|
||||
for (const { evidence } of node.observations) {
|
||||
if (
|
||||
evidence.location.available &&
|
||||
evidence.location.value.kind === "source-range"
|
||||
)
|
||||
ranges += 1;
|
||||
const { authority, state, confidence } = evidence;
|
||||
support.set(`${authority}:${state}:${confidence}`, {
|
||||
authority,
|
||||
state,
|
||||
confidence,
|
||||
});
|
||||
}
|
||||
return {
|
||||
node_id: node.node_id,
|
||||
kind,
|
||||
path,
|
||||
identity: node.identity,
|
||||
retained_source_range_count: ranges,
|
||||
basis: [...support.values()],
|
||||
};
|
||||
};
|
||||
|
||||
const applicationUnknownCount = (
|
||||
analysis: JavaScriptApplicationAnalysisResult,
|
||||
): number =>
|
||||
@@ -249,13 +280,57 @@ export const projectJavaScriptApplicationView = (
|
||||
analysis: JavaScriptApplicationAnalysisResult,
|
||||
view: Exclude<AnalysisViewRequest, { kind: "api-surface" }>,
|
||||
): Result<UnsignedAnalysisView, AnalysisError> => {
|
||||
if (view.kind !== "summary" && view.kind !== "item" && view.kind !== "page")
|
||||
if (
|
||||
view.kind !== "summary" &&
|
||||
view.kind !== "item" &&
|
||||
view.kind !== "page" &&
|
||||
view.kind !== "javascript"
|
||||
)
|
||||
return err(
|
||||
jsIncompatible(
|
||||
"JavaScript application Evidence supports summary, module item or module page views.",
|
||||
"JavaScript application Evidence supports summary, module item, module page or typed JavaScript reference views.",
|
||||
),
|
||||
);
|
||||
const shared = parentFields(parent, analysis);
|
||||
if (view.kind === "javascript") {
|
||||
// Scan once and allocate only the requested page, not all matching modules
|
||||
// or source-range arrays. Retained graph order is immutable and canonical.
|
||||
const rows: JavaScriptModuleReference[] = [];
|
||||
let total = 0;
|
||||
for (const node of analysis.graph.nodes) {
|
||||
if (
|
||||
node.kind !== "javascript-asset" &&
|
||||
node.kind !== "javascript-module" &&
|
||||
node.kind !== "source-module"
|
||||
)
|
||||
continue;
|
||||
if (view.where.kind !== undefined && node.kind !== view.where.kind)
|
||||
continue;
|
||||
const path = javascriptModulePath(node);
|
||||
if (view.where.path !== undefined && path !== view.where.path) continue;
|
||||
if (total >= view.offset && rows.length < view.limit)
|
||||
rows.push(moduleReference(node, node.kind, path));
|
||||
total += 1;
|
||||
}
|
||||
const { families: _families, ...semantic } =
|
||||
analysis.semantic_graph.coverage;
|
||||
return ok({
|
||||
...shared,
|
||||
kind: "javascript",
|
||||
view,
|
||||
rows,
|
||||
source_coverage: {
|
||||
...(analysis.source_selection === undefined
|
||||
? {}
|
||||
: { source_selection: analysis.source_selection }),
|
||||
application: analysis.graph.coverage,
|
||||
semantic,
|
||||
application_unknown_count: applicationUnknownCount(analysis),
|
||||
semantic_unknown_count: analysis.semantic_graph.unknowns.length,
|
||||
},
|
||||
coverage: pageCoverage(view.offset, rows.length, total),
|
||||
});
|
||||
}
|
||||
const modules = moduleEntries(analysis.graph.nodes);
|
||||
if (view.kind === "summary")
|
||||
return ok({
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
import { z } from "zod";
|
||||
import { prefixedDigestSchema } from "../digests.js";
|
||||
import {
|
||||
applicationCoverageSchema,
|
||||
applicationGraphEvidenceSchema,
|
||||
applicationNodeIdentitySchema,
|
||||
} from "../javascript/javascriptApplicationEvidenceSchemas.js";
|
||||
import { javaScriptSemanticGraphInputSchema } from "../javascript/javascriptSemanticGraphSchemas.js";
|
||||
import { javaScriptSourceSelectionSchema } from "../javascript/javascriptSourceSelection.js";
|
||||
|
||||
const moduleKindSchema = z.enum([
|
||||
"javascript-asset",
|
||||
"javascript-module",
|
||||
"source-module",
|
||||
]);
|
||||
|
||||
/** Exact filters over retained owner facts; paths are not filesystem lookups. */
|
||||
export const javascriptModuleReferencesRequestSchema = z.strictObject({
|
||||
kind: z.literal("javascript"),
|
||||
collection: z.literal("modules"),
|
||||
projection: z.literal("references"),
|
||||
where: z
|
||||
.strictObject({
|
||||
path: z.string().nullable().optional(),
|
||||
kind: moduleKindSchema.optional(),
|
||||
})
|
||||
.default({}),
|
||||
offset: z.number().int().nonnegative().default(0),
|
||||
limit: z.number().int().positive().default(64),
|
||||
});
|
||||
|
||||
/** Unique support states, without promoting mixed observations to one fact. */
|
||||
const basisSchema = z.strictObject({
|
||||
authority: applicationGraphEvidenceSchema.shape.authority,
|
||||
state: applicationGraphEvidenceSchema.shape.state,
|
||||
confidence: applicationGraphEvidenceSchema.shape.confidence,
|
||||
});
|
||||
|
||||
/** Reusable facts rather than task-specific dependency interpretations. */
|
||||
export const javascriptModuleReferenceSchema = z.strictObject({
|
||||
node_id: prefixedDigestSchema("jag_node"),
|
||||
kind: moduleKindSchema,
|
||||
path: z.string().nullable(),
|
||||
identity: applicationNodeIdentitySchema,
|
||||
retained_source_range_count: z.number().int().nonnegative(),
|
||||
basis: z.array(basisSchema).min(1),
|
||||
});
|
||||
|
||||
export const javascriptModuleSourceCoverageSchema = z.strictObject({
|
||||
source_selection: javaScriptSourceSelectionSchema.exactOptional(),
|
||||
application: applicationCoverageSchema,
|
||||
semantic: javaScriptSemanticGraphInputSchema.shape.coverage.omit({
|
||||
families: true,
|
||||
}),
|
||||
application_unknown_count: z.number().int().nonnegative(),
|
||||
semantic_unknown_count: z.number().int().nonnegative(),
|
||||
});
|
||||
|
||||
export type JavaScriptModuleReference = z.infer<
|
||||
typeof javascriptModuleReferenceSchema
|
||||
>;
|
||||
@@ -1,4 +1,9 @@
|
||||
import { apiSurfaceHar } from "../../fixtures/historicalHar.js";
|
||||
import {
|
||||
analysisViewJavaScriptEvidence,
|
||||
analysisViewJavaScriptAnalysisWithSource,
|
||||
} from "../../fixtures/analysisView.js";
|
||||
import { inspectAnalysisView } from "../../../src/application/analysisView/AnalysisViewService.js";
|
||||
import { createHash } from "node:crypto";
|
||||
import { mkdir, unlink, writeFile } from "node:fs/promises";
|
||||
import { join } from "node:path";
|
||||
@@ -16,6 +21,40 @@ import {
|
||||
analysisViewObjectDenseCapture,
|
||||
} from "../../fixtures/analysisView.js";
|
||||
import { createEvidence, parseEvidence } from "../../../src/domain/evidence.js";
|
||||
|
||||
cliTest(
|
||||
"reads typed module references through the public CLI with canonical Evidence",
|
||||
async ({ cli }) => {
|
||||
const root = await createTestTempDirectory("rea-module-reference-cli-");
|
||||
const request = join(root, "request.json");
|
||||
const parent = analysisViewJavaScriptEvidence(
|
||||
analysisViewJavaScriptAnalysisWithSource(),
|
||||
);
|
||||
const input = {
|
||||
source: { kind: "inline", evidence: parent },
|
||||
view: {
|
||||
kind: "javascript",
|
||||
collection: "modules",
|
||||
projection: "references",
|
||||
where: { path: "renderer.js" },
|
||||
limit: 1,
|
||||
},
|
||||
};
|
||||
const expected = inspectAnalysisView(input);
|
||||
if (!expected.ok) throw expected.error;
|
||||
await writeFile(request, JSON.stringify(input));
|
||||
const response = await cli.run({
|
||||
arguments: ["inspect-analysis-view", request, "--json"],
|
||||
});
|
||||
expect(response.exitCode).toBe(0);
|
||||
const evidence = parseEvidence(response.json);
|
||||
expect(evidence.normalized_result).toEqual(
|
||||
expected.value.normalized_result,
|
||||
);
|
||||
expect(evidence.evidence_id).toBe(expected.value.evidence_id);
|
||||
expect(evidence.evidence_links).toEqual([parent.evidence_id]);
|
||||
},
|
||||
);
|
||||
import { ghidraFunctionDossier } from "../../../src/domain/ghidraValues.fixture.js";
|
||||
import { createEvidenceBundle } from "../../../src/domain/evidenceBundle.js";
|
||||
import { inspectEvidenceBundle } from "../../../src/application/investigation/InspectEvidenceBundle.js";
|
||||
|
||||
@@ -70,6 +70,66 @@ const connect = async (
|
||||
return { client, session };
|
||||
};
|
||||
|
||||
it("advertises typed module references and preserves portable/retained Evidence parity", async () => {
|
||||
const { client, session } = await connect();
|
||||
const parent = analysisViewJavaScriptEvidence(
|
||||
analysisViewJavaScriptAnalysisWithSource(),
|
||||
);
|
||||
const recorded = session.recordEvidence(parent);
|
||||
if (!recorded.ok) throw recorded.error;
|
||||
const { ajv, inputSchema, outputSchema } = await advertisedMcpToolSchemas(
|
||||
client,
|
||||
"inspect_analysis_view",
|
||||
);
|
||||
const view = {
|
||||
kind: "javascript",
|
||||
collection: "modules",
|
||||
projection: "references",
|
||||
where: { path: "renderer.js" },
|
||||
limit: 1,
|
||||
};
|
||||
const outputs = [];
|
||||
for (const source of [
|
||||
{ kind: "inline", evidence: parent },
|
||||
{ kind: "retained-evidence", evidence_id: parent.evidence_id },
|
||||
]) {
|
||||
expect(ajv.validate(inputSchema, { source, view })).toBe(true);
|
||||
expect(
|
||||
ajv.validate(inputSchema, {
|
||||
source,
|
||||
view: { ...view, where: { glob: "*" } },
|
||||
}),
|
||||
).toBe(false);
|
||||
const response = await client.callTool({
|
||||
name: "inspect_analysis_view",
|
||||
arguments: { source, view },
|
||||
});
|
||||
expect(response.isError).not.toBe(true);
|
||||
expect(
|
||||
ajv.validate(outputSchema, response.structuredContent),
|
||||
JSON.stringify(ajv.errors),
|
||||
).toBe(true);
|
||||
const evidence = parseEvidence(response.structuredContent);
|
||||
expect(evidence).toMatchObject({
|
||||
evidence_links: [parent.evidence_id],
|
||||
normalized_result: {
|
||||
kind: "javascript",
|
||||
rows: [
|
||||
{
|
||||
path: "renderer.js",
|
||||
identity: expect.any(Object),
|
||||
basis: expect.any(Array),
|
||||
},
|
||||
],
|
||||
coverage: { exhausted: true },
|
||||
},
|
||||
});
|
||||
expect(session.evidenceById(evidence.evidence_id)).toEqual(evidence);
|
||||
outputs.push(evidence.normalized_result);
|
||||
}
|
||||
expect(outputs[0]).toEqual(outputs[1]);
|
||||
});
|
||||
|
||||
it("projects opted-in query names identically from retained and portable MCP Evidence", async () => {
|
||||
const { client, session } = await connect();
|
||||
const capture = analysisViewCaptureFixture();
|
||||
|
||||
Reference in New Issue
Block a user