Files
2026-09-30 16:46:21 +08:00

97 lines
21 KiB
JSON

{
"ast": {
"base": {
"added_runtime_callbacks": [
"_runtime.install(weights, graph, apl_out_mask, upload, out_dir, source_provenance, device)",
"_runtime.finish(ring, apl_ring, apl, steps, out_dir)",
"_runtime.timing(steps, pending)",
"_runtime.after_tick(tick, v, g, ref, drive, apl_state, h, applied_h)",
"_runtime.arrivals(expanded, destination, ref)"
],
"admission_edit": "0 < steps <= 1000 -> 0 < steps <= spec.max_steps",
"aj_source_sha256": "af1975ba5e5e700208c0a598d3cbe648a3cf10885c6231239b6e4b28f76d173b",
"derived_math_ast_sha256": "e46b7d037862b54c0000381ea50df3ba416c7c2c134e3cea78fa90ddf549f710",
"derived_module_ast_sha256": "4572043a15a53b3874766b40b4521422567761dbc75db57535ab44b817210429",
"math_ast_sha256": "e46b7d037862b54c0000381ea50df3ba416c7c2c134e3cea78fa90ddf549f710",
"mathematical_ast_identical": true,
"mode": "light",
"old_globals_patched": false,
"post_loop_terminal_recording": "_runtime.finish(ring, apl_ring, apl, steps, out_dir)",
"pre_loop_installation": "_runtime.install(weights, graph, apl_out_mask, upload, out_dir, source_provenance, device)",
"reference_entire_tick_loop_identical": false,
"removed_diagnostic_statements": [
"Assign(targets=[Subscript(value=Name(id='maps', ctx=Load()), slice=Constant(value='apl_applied'), ctx=Store())], value=Call(func=Name(id='new_array', ctx=Load()), args=[BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=Constant(value='apl-applied.float32.npy')), Attribute(value=Name(id='np', ctx=Load()), attr='float32', ctx=Load()), Tuple(elts=[Name(id='steps', ctx=Load()), Constant(value=4064)], ctx=Load())], keywords=[]))",
"For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='width', ctx=Store())], ctx=Store()), iter=Tuple(elts=[Tuple(elts=[Constant(value='drive'), Constant(value=2)], ctx=Load()), Tuple(elts=[Constant(value='state'), Constant(value=2)], ctx=Load()), Tuple(elts=[Constant(value='inhibition'), Constant(value=4064)], ctx=Load())], ctx=Load()), body=[Assign(targets=[Subscript(value=Name(id='maps', ctx=Load()), slice=BinOp(left=Constant(value='apl_'), op=Add(), right=Name(id='name', ctx=Load())), ctx=Store())], value=Call(func=Name(id='new_array', ctx=Load()), args=[BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=BinOp(left=BinOp(left=Constant(value='apl-'), op=Add(), right=Name(id='name', ctx=Load())), op=Add(), right=Constant(value='.float32.npy'))), Attribute(value=Name(id='np', ctx=Load()), attr='float32', ctx=Load()), Tuple(elts=[Name(id='steps', ctx=Load()), Name(id='width', ctx=Load())], ctx=Load())], keywords=[]))], orelse=[])",
"If(test=Subscript(value=Name(id='spec', ctx=Load()), slice=Constant(value='record_history'), ctx=Load()), body=[For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='dtype', ctx=Store())], ctx=Store()), iter=Tuple(elts=[Tuple(elts=[Constant(value='v'), Attribute(value=Name(id='np', ctx=Load()), attr='float64', ctx=Load())], ctx=Load()), Tuple(elts=[Constant(value='g'), Attribute(value=Name(id='np', ctx=Load()), attr='float64', ctx=Load())], ctx=Load()), Tuple(elts=[Constant(value='ref'), Attribute(value=Name(id='np', ctx=Load()), attr='int32', ctx=Load())], ctx=Load())], ctx=Load()), body=[Assign(targets=[Subscript(value=Name(id='maps', ctx=Load()), slice=Name(id='name', ctx=Load()), ctx=Store())], value=Call(func=Name(id='new_array', ctx=Load()), args=[BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=BinOp(left=BinOp(left=BinOp(left=Name(id='name', ctx=Load()), op=Add(), right=Constant(value='-history.')), op=Add(), right=Attribute(value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='dtype', ctx=Load()), args=[Name(id='dtype', ctx=Load())], keywords=[]), attr='name', ctx=Load())), op=Add(), right=Constant(value='.npy'))), Name(id='dtype', ctx=Load()), Tuple(elts=[Name(id='steps', ctx=Load()), Name(id='n', ctx=Load())], ctx=Load())], keywords=[])), Assign(targets=[Subscript(value=Name(id='maps', ctx=Load()), slice=BinOp(left=Constant(value='pre_'), op=Add(), right=Name(id='name', ctx=Load())), ctx=Store())], value=Call(func=Name(id='new_array', ctx=Load()), args=[BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=BinOp(left=BinOp(left=BinOp(left=BinOp(left=Constant(value='preAPL-'), op=Add(), right=Name(id='name', ctx=Load())), op=Add(), right=Constant(value='.')), op=Add(), right=Attribute(value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='dtype', ctx=Load()), args=[Name(id='dtype', ctx=Load())], keywords=[]), attr='name', ctx=Load())), op=Add(), right=Constant(value='.npy'))), Name(id='dtype', ctx=Load()), Tuple(elts=[Name(id='steps', ctx=Load()), Name(id='n', ctx=Load())], ctx=Load())], keywords=[]))], orelse=[])], orelse=[])",
"Assign(targets=[Name(id='expanded_global', ctx=Store())], value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='empty', ctx=Load()), args=[Constant(value=0)], keywords=[keyword(arg='dtype', value=Attribute(value=Name(id='np', ctx=Load()), attr='int64', ctx=Load()))]))",
"Assign(targets=[Name(id='accepted_cpu', ctx=Store())], value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='empty', ctx=Load()), args=[Constant(value=0)], keywords=[keyword(arg='dtype', value=Attribute(value=Name(id='np', ctx=Load()), attr='uint8', ctx=Load()))]))",
"Assign(targets=[Name(id='expanded_global', ctx=Store())], value=Call(func=Attribute(value=Subscript(value=Subscript(value=Name(id='graph', ctx=Load()), slice=Constant(value='edge_id'), ctx=Load()), slice=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='expanded', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), ctx=Load()), attr='copy', ctx=Load()), args=[], keywords=[]))",
"Assign(targets=[Name(id='accepted_cpu', ctx=Store())], value=Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Compare(left=Subscript(value=Name(id='ref', ctx=Load()), slice=Call(func=Attribute(value=Name(id='destination', ctx=Load()), attr='long', ctx=Load()), args=[], keywords=[]), ctx=Load()), ops=[Eq()], comparators=[Constant(value=0)]), attr='to', ctx=Load()), args=[Attribute(value=Name(id='torch', ctx=Load()), attr='uint8', ctx=Load())], keywords=[]), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]))",
"Assign(targets=[Name(id='queue', ctx=Store())], value=Call(func=Name(id='queue_summary', ctx=Load()), args=[Name(id='tick', ctx=Load()), Name(id='expanded_global', ctx=Load()), Name(id='accepted_cpu', ctx=Load())], keywords=[]))",
"Expr(value=Call(func=Attribute(value=Name(id='queue_output', ctx=Load()), attr='write', ctx=Load()), args=[BinOp(left=Call(func=Attribute(value=Name(id='json', ctx=Load()), attr='dumps', ctx=Load()), args=[Name(id='queue', ctx=Load())], keywords=[keyword(arg='allow_nan', value=Constant(value=False))]), op=Add(), right=Constant(value='\\n'))], keywords=[]))",
"AugAssign(target=Name(id='due_total', ctx=Store()), op=Add(), value=Subscript(value=Name(id='queue', ctx=Load()), slice=Constant(value='count'), ctx=Load()))",
"AugAssign(target=Name(id='accepted_due_total', ctx=Store()), op=Add(), value=Subscript(value=Name(id='queue', ctx=Load()), slice=Constant(value='accepted_count'), ctx=Load()))",
"If(test=Subscript(value=Name(id='spec', ctx=Load()), slice=Constant(value='record_history'), ctx=Load()), body=[For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Tuple(elts=[Tuple(elts=[Constant(value='v'), Name(id='v', ctx=Load())], ctx=Load()), Tuple(elts=[Constant(value='g'), Name(id='g', ctx=Load())], ctx=Load()), Tuple(elts=[Constant(value='ref'), Name(id='ref', ctx=Load())], ctx=Load())], ctx=Load()), body=[Assign(targets=[Subscript(value=Subscript(value=Name(id='maps', ctx=Load()), slice=BinOp(left=Constant(value='pre_'), op=Add(), right=Name(id='name', ctx=Load())), ctx=Load()), slice=Name(id='tick', ctx=Load()), ctx=Store())], value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='value', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]))], orelse=[])], orelse=[])",
"Assign(targets=[Name(id='apl_cpu', ctx=Store())], value=Dict(keys=[Constant(value='drive'), Constant(value='state'), Constant(value='inhibition'), Constant(value='applied')], values=[Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='drive', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='apl_state', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='h', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='applied_h', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[])]))",
"For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Call(func=Attribute(value=Name(id='apl_cpu', ctx=Load()), attr='items', ctx=Load()), args=[], keywords=[]), body=[Assign(targets=[Subscript(value=Subscript(value=Name(id='maps', ctx=Load()), slice=BinOp(left=Constant(value='apl_'), op=Add(), right=Name(id='name', ctx=Load())), ctx=Load()), slice=Name(id='tick', ctx=Load()), ctx=Store())], value=Name(id='value', ctx=Load()))], orelse=[])",
"Assign(targets=[Name(id='actual', ctx=Store())], value=Dict(keys=[Constant(value='v'), Constant(value='g'), Constant(value='ref')], values=[Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='v', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='g', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[]), Call(func=Attribute(value=Call(func=Attribute(value=Call(func=Attribute(value=Name(id='ref', ctx=Load()), attr='cpu', ctx=Load()), args=[], keywords=[]), attr='numpy', ctx=Load()), args=[], keywords=[]), attr='copy', ctx=Load()), args=[], keywords=[])]))",
"Assign(targets=[Name(id='finite', ctx=Store())], value=Call(func=Name(id='all', ctx=Load()), args=[GeneratorExp(elt=Call(func=Name(id='bool', ctx=Load()), args=[Call(func=Attribute(value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='isfinite', ctx=Load()), args=[Name(id='value', ctx=Load())], keywords=[]), attr='all', ctx=Load()), args=[], keywords=[])], keywords=[]), generators=[comprehension(target=Name(id='value', ctx=Store()), iter=BinOp(left=Call(func=Name(id='list', ctx=Load()), args=[Call(func=Attribute(value=Name(id='actual', ctx=Load()), attr='values', ctx=Load()), args=[], keywords=[])], keywords=[]), op=Add(), right=Call(func=Name(id='list', ctx=Load()), args=[Call(func=Attribute(value=Name(id='apl_cpu', ctx=Load()), attr='values', ctx=Load()), args=[], keywords=[])], keywords=[])), ifs=[], is_async=0)])], keywords=[]))",
"Assign(targets=[Name(id='row', ctx=Store())], value=Dict(keys=[Constant(value='tick'), None], values=[Name(id='tick', ctx=Load()), DictComp(key=BinOp(left=Name(id='name', ctx=Load()), op=Add(), right=Constant(value='_sha256')), value=Call(func=Name(id='raw_hash', ctx=Load()), args=[Name(id='value', ctx=Load()), IfExp(test=Compare(left=Name(id='name', ctx=Load()), ops=[Eq()], comparators=[Constant(value='ref')]), body=Constant(value='<i4'), orelse=Constant(value='<f8'))], keywords=[]), generators=[comprehension(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Call(func=Attribute(value=Name(id='actual', ctx=Load()), attr='items', ctx=Load()), args=[], keywords=[]), ifs=[], is_async=0)])]))",
"Expr(value=Call(func=Attribute(value=Name(id='hash_output', ctx=Load()), attr='write', ctx=Load()), args=[BinOp(left=Call(func=Attribute(value=Name(id='json', ctx=Load()), attr='dumps', ctx=Load()), args=[Name(id='row', ctx=Load())], keywords=[keyword(arg='allow_nan', value=Constant(value=False))]), op=Add(), right=Constant(value='\\n'))], keywords=[]))",
"If(test=Subscript(value=Name(id='spec', ctx=Load()), slice=Constant(value='record_history'), ctx=Load()), body=[For(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Call(func=Attribute(value=Name(id='actual', ctx=Load()), attr='items', ctx=Load()), args=[], keywords=[]), body=[Assign(targets=[Subscript(value=Subscript(value=Name(id='maps', ctx=Load()), slice=Name(id='name', ctx=Load()), ctx=Load()), slice=Name(id='tick', ctx=Load()), ctx=Store())], value=Name(id='value', ctx=Load()))], orelse=[])], orelse=[])",
"If(test=UnaryOp(op=Not(), operand=Name(id='finite', ctx=Load())), body=[With(items=[withitem(context_expr=Call(func=Attribute(value=BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=Constant(value='first-failure-state.npz')), attr='open', ctx=Load()), args=[Constant(value='xb')], keywords=[]), optional_vars=Name(id='target', ctx=Store()))], body=[Expr(value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='savez_compressed', ctx=Load()), args=[Name(id='target', ctx=Load())], keywords=[keyword(arg='tick', value=Call(func=Attribute(value=Name(id='np', ctx=Load()), attr='array', ctx=Load()), args=[Name(id='tick', ctx=Load())], keywords=[keyword(arg='dtype', value=Attribute(value=Name(id='np', ctx=Load()), attr='int32', ctx=Load()))])), keyword(value=Name(id='actual', ctx=Load())), keyword(value=DictComp(key=BinOp(left=Constant(value='apl_'), op=Add(), right=Name(id='name', ctx=Load())), value=Name(id='value', ctx=Load()), generators=[comprehension(target=Tuple(elts=[Name(id='name', ctx=Store()), Name(id='value', ctx=Store())], ctx=Store()), iter=Call(func=Attribute(value=Name(id='apl_cpu', ctx=Load()), attr='items', ctx=Load()), args=[], keywords=[]), ifs=[], is_async=0)]))]))]), Expr(value=Call(func=Name(id='require', ctx=Load()), args=[Constant(value=False), Constant(value='Nonfinite state; first failure saved')], keywords=[]))], orelse=[])"
],
"replaced_diagnostic_nodes": [
"withitem(context_expr=Call(func=Attribute(value=BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=Constant(value='queue.jsonl')), attr='open', ctx=Load()), args=[Constant(value='x')], keywords=[keyword(arg='encoding', value=Constant(value='utf-8')), keyword(arg='buffering', value=Constant(value=1))]), optional_vars=Name(id='queue_output', ctx=Store()))",
"withitem(context_expr=Call(func=Attribute(value=BinOp(left=Name(id='out_dir', ctx=Load()), op=Div(), right=Constant(value='tick-state-hashes.jsonl')), attr='open', ctx=Load()), args=[Constant(value='x')], keywords=[keyword(arg='encoding', value=Constant(value='utf-8')), keyword(arg='buffering', value=Constant(value=1))]), optional_vars=Name(id='hash_output', ctx=Store()))",
"Assign(targets=[Name(id='timing', ctx=Store())], value=Call(func=Name(id='audit_sequence', ctx=Load()), args=[Subscript(value=Name(id='maps', ctx=Load()), slice=Constant(value='apl_inhibition'), ctx=Load()), Subscript(value=Name(id='maps', ctx=Load()), slice=Constant(value='apl_applied'), ctx=Load()), Name(id='pending', ctx=Load()), Name(id='apl_delay', ctx=Load())], keywords=[]))"
]
},
"clock_admission_new": "tick + _continuation.global_offset >= 18",
"clock_admission_old": "tick >= 18",
"derived_module_ast_sha256": "f6a9a518081089a4be9692178688663cfb39f9d44c92c4abb119620149f54007",
"diagnostic_namespace_binding": "audit_sequence checks parent_pending + generated, not an assumed zero-initial queue",
"full_AST_rollback_identical": true,
"kernels_sorting_and_local_ring_math_unchanged": true,
"restore_hook": "_continuation.restore(v, g, ref, counts, ring, apl_ring, apl, upload)"
},
"complete": true,
"finite_audit_sha256": "78de62547a9d43e37543dedb92ef79687676c58a031269f447d5f1545cf08c9c",
"fresh_runtime_sha256": "522b8c31ea938890fe15364fccd25ccc5bded54101754909f255532e7ad01aae",
"global_next_tick": 500,
"global_tick_offset": 19,
"input_sha256": {
"/data/digital-drosophila/experiments/phase4af-author-fullgraph/oracle/no_input/coefficients.json": "bde79d95ef0097b827d5faf4d5658eafc009d8e9fcef1fddd645c953823e3f64",
"/data/digital-drosophila/experiments/phase4ag-author-apl-r2/graphs/full/weights.npy": "462839ffc3feb8f6c278044488082b1c8e410e7f23229d6b5e29d1b7042416a1",
"/data/digital-drosophila/experiments/phase4am-wholebrain-plastic-interface/overlays/static25.npz": "7805bd2f86de91777bca86c52870607a2e091ed74b901319b896055ad3463f6d",
"/data/digital-drosophila/experiments/phase4am-wholebrain-plastic-interface/protocol/base-candidate.float32-mV.npy": "1218d1b328f29a7afefb0ca0b7b6421247f14ad598aa1957a6a7aacbc8cebcae",
"/data/digital-drosophila/experiments/phase4an-engineering-validation/cases/static25--chain--light-s03/requests.npz": "be049a344735ad19157ea86c6e911ea9042127ace736fe98bcdddf6b3c1425d1",
"/data/digital-drosophila/experiments/phase4an-engineering-validation/cases/static25--chain--light-s03/spec.json": "3256a11c89da8ad99d2504bacf02c7b8ca8dba0679b5697250f3d071e6074d55",
"/data/digital-drosophila/experiments/phase4an-engineering-validation/overlays/static25.json": "b0ee003192fbdfd869f8b23c9bbab0ff99079b7bd2bf1dc33b7afef40785a143",
"/data/digital-drosophila/experiments/phase4an-engineering-validation/runs/static25--chain--light-s02/checkpoint-manifest.json": "ba542fc65ca165c6d1027ce0c056bf8f0b6360b0ad98f4f909240e34419655a8",
"/data/digital-drosophila/experiments/phase4h-dopamine-plasticity/plastic-mask/plastic-edge-ids.int64.npy": "8b0fb6eb2e6c31da4d17dc20d890aa3f367e514f05642de5bad6b42a1611c05b",
"/data/digital-drosophila/models/male-cns-lif/apl-timing-lab-v1/gpu_timing.py": "af1975ba5e5e700208c0a598d3cbe648a3cf10885c6231239b6e4b28f76d173b",
"/data/digital-drosophila/models/male-cns-lif/apl-timing-lab-v1/timing_queue.py": "54df6d4818e2a0c26e96fb0aaf5d9b71cd964981706da937562d48af79aca14e",
"/data/digital-drosophila/models/male-cns-lif/author-apl-lab-v2/gpu_apl.py": "69f5d893f47dafff4ef7c3186c3df0b9014666b32c8f4e943b57016bec92b18a",
"/data/digital-drosophila/models/male-cns-lif/author-apl-lab-v2/legacy_apl_worker.py": "21ceec65fe42581dc55872010e0025d660e80358905f1cf4df1dadf341a3b291",
"/data/digital-drosophila/models/male-cns-lif/author-fullgraph-lab-v1/oracle_full.py": "d72003d98f0f1624b12126eff50bd361c43d888f4a64d90ba9247a58976f1961",
"/data/digital-drosophila/models/male-cns-lif/author-runtime-lab-v1/author_ext.cpp": "208a937d17bbb041b9bf6b25b89264ee566830b60609e58491b44583d8541f15",
"/data/digital-drosophila/models/male-cns-lif/author-runtime-lab-v1/author_ext.cu": "669f166e18ce9a3f63fc723db8b0a8b74f7fa4757194b1bd65b4cf6008a7787e",
"/data/digital-drosophila/models/male-cns-lif/author-runtime-lab-v1/gpu_backend.py": "03758d07572f4b44d272059d9308fac534268ad201b57bdd77d69fee95e67278",
"/data/digital-drosophila/models/male-cns-lif/olfactory-conditioning-lab-v1/runtime_light.py": "522b8c31ea938890fe15364fccd25ccc5bded54101754909f255532e7ad01aae",
"/data/digital-drosophila/models/male-cns-lif/wholebrain-plastic-interface-v1/overlay.py": "7f891d0ba79b393c96e75fd2dee2eddc51e57d8213eaac2779703bc2c18712b4"
},
"learning_pass_claimed": false,
"mode": "light",
"old_globals_patched": false,
"overlay_audit_sha256": "03fa596094d386840f2a8e00e59d76eb4dea10b5835a8270e32dce50e7640c38",
"parent_checkpoint_manifest_sha256": "ba542fc65ca165c6d1027ce0c056bf8f0b6360b0ad98f4f909240e34419655a8",
"schema": "phase4an-continuation-runtime-v1",
"source_file": "/data/digital-drosophila/models/male-cns-lif/olfactory-conditioning-lab-v1/runtime_continuation.py",
"source_sha256": "0b8e8e0a6a23a079dc62a88355ce355d53b3ae22f6665519a8f6aef2dcfc5aba",
"state_sha256": "1ac87260cb29f8358e26f9603dcba748833ae597fb848e28169915b2c2ad75cd",
"summary_sha256": "b18796a661d050f5f577750ca9811eb9e34d9dc74cdb7b61d0f45df18cb3e515",
"terminal_queues_sha256": "8faf854dcef4d8ff8c66413fd560313dcbbd9df8cdd386fd491521d492f9298b",
"weights_updated_during_run": false
}