Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ annotated Git tags from the canonical repository.
## [Unreleased]

### Compatibility
- qualify `oh-my-pi.rpc` through official stable `18.13.2` on the existing
`oh-my-pi.rpc-v2-v18.0.0` revision (Research 461). npm `latest` and GitHub
latest stable agree. Maintained `18.0.0..=18.13.2` keeps claim id
`oh-my-pi.rpc.package-window-2` and `AllowUnverified`. The retained
`17.2.9..=17.4.2` segment, unpublished gaps `18.0.2`, `18.1.7`, `18.4.7`,
and `18.6.2`, incompatible `17.4.3`/`17.4.4`, and the frozen `17.2.9`
decoder corpus stay. `18.13.3` is `UnverifiedNewer`. The selected 14
commands, tool schemas, frame caps, schemes, and startup fields stay.
`18.13.2` adds unselected `abort_branch_summary`, `dictation_start`,
`dictation_stop`, `navigate_tree`, and `set_label`. Optional `input.secret`
and `PromptError.code` `cost_cap` stay unmapped. `pi.rpc` and
`pi.sdk-sidecar` are untouched.
- qualify `qwen.headless` through official stable `@qwen-code/qwen-code`
`0.26.2` on the existing `qwen-code.headless.package-window-2` claim and
`qwen-code.headless.v0.21.15-reasoning-control` behavior. The maintained
Expand Down
15 changes: 9 additions & 6 deletions crates/swallowtail-adapter-oh-my-pi/src/selection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const OH_MY_PI_PACKAGE_17X_LATEST_QUALIFIED_VERSION: &str = "17.4.2";
/// Oldest `18.x` Oh My Pi package version, opening the private major segment.
const OH_MY_PI_PACKAGE_18_BASELINE_VERSION: &str = "18.0.0";
/// Newest Oh My Pi package version behaviorally qualified for RPC v2.
pub const OH_MY_PI_PACKAGE_LATEST_QUALIFIED_VERSION: &str = "18.12.6";
pub const OH_MY_PI_PACKAGE_LATEST_QUALIFIED_VERSION: &str = "18.13.2";

/// Behavior revision for the retained `17.2.9..=17.4.2` segment.
///
Expand All @@ -34,11 +34,11 @@ const RETAINED_17X_BEHAVIOR: &str = "oh-my-pi.rpc-v2-v17.2.9";
///
/// The selected `--mode rpc` flags, commands, framing, response shape,
/// lifecycle, usage, terminal, failure, retention, cancellation, and cleanup
/// behavior are unchanged through `18.12.6`, but the `17` to `18` boundary is
/// behavior are unchanged through `18.13.2`, but the `17` to `18` boundary is
/// a major-line reset. Contract 029 and the g05.079 task require a distinct
/// adapter-private behavior revision and segment rather than silent
/// inheritance of the prior major window. The later published `18.x` hops
/// through `18.12.6` are compatible extensions of this same revision.
/// through `18.13.2` are compatible extensions of this same revision.
const MAJOR_18X_BEHAVIOR: &str = "oh-my-pi.rpc-v2-v18.0.0";
/// npm-unpublished stable points inside the admitted `18.x` segment.
///
Expand Down Expand Up @@ -166,13 +166,14 @@ mod tests {
"18.4.2", "18.4.3", "18.4.4", "18.4.5", "18.4.6", "18.4.8", "18.4.9", "18.4.10",
"18.4.11", "18.4.12", "18.5.0", "18.5.1", "18.6.0", "18.6.1", "18.6.3", "18.7.0",
"18.8.0", "18.8.1", "18.8.2", "18.8.3", "18.8.4", "18.8.9", "18.9.0", "18.9.2",
"18.10.0", "18.10.4", "18.11.0", "18.11.1", "18.12.0", "18.12.4", "18.12.6",
"18.10.0", "18.10.4", "18.11.0", "18.11.1", "18.12.0", "18.12.4", "18.12.6", "18.12.7",
"18.13.0", "18.13.1", "18.13.2",
] {
assert!(claim.supports(&version(candidate)), "missing {candidate}");
}

assert_eq!(OH_MY_PI_PACKAGE_18_BASELINE_VERSION, "18.0.0");
assert_eq!(OH_MY_PI_PACKAGE_LATEST_QUALIFIED_VERSION, "18.12.6");
assert_eq!(OH_MY_PI_PACKAGE_LATEST_QUALIFIED_VERSION, "18.13.2");

// The 17.x segment is retained but deprecated by the newest revision.
for candidate in ["17.2.9", "17.4.0", "17.4.2"] {
Expand Down Expand Up @@ -215,13 +216,14 @@ mod tests {
}

let InterfaceCompatibilityAssessment::UnverifiedNewer(newer) =
claim.assess(&version("18.12.7"))
claim.assess(&version("18.13.3"))
else {
panic!("later stable OhMyPi remains unverified");
};
assert_eq!(newer.behavior_revision().as_str(), MAJOR_18X_BEHAVIOR);
assert!(!claim.permits(&version("18.8.4-rc.1")));
assert!(!claim.permits(&version("18.12.7-rc.1")));
assert!(!claim.permits(&version("18.13.3-rc.1")));
}

#[test]
Expand All @@ -230,6 +232,7 @@ mod tests {
assert!(oh_my_pi_package_binding("18.1.22").is_some());
assert!(oh_my_pi_package_binding("18.8.3").is_some());
assert!(oh_my_pi_package_binding("18.12.6").is_some());
assert!(oh_my_pi_package_binding("18.13.2").is_some());
for value in ["", " 17.2.9", "omp 17.2.9", "latest"] {
assert!(oh_my_pi_package_binding(value).is_none());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ fn exact_package_identity_and_release_evidence_are_frozen() {

#[test]
fn production_claim_permits_the_qualified_window() {
assert_eq!(OH_MY_PI_PACKAGE_LATEST_QUALIFIED_VERSION, "18.12.6");
assert_eq!(OH_MY_PI_PACKAGE_LATEST_QUALIFIED_VERSION, "18.13.2");
let claim = oh_my_pi_rpc_claim();
assert!(claim.supports(&version("17.2.9")));
assert!(claim.supports(&version("17.3.7")));
Expand All @@ -41,6 +41,9 @@ fn production_claim_permits_the_qualified_window() {
assert!(claim.supports(&version("18.2.7")));
assert!(claim.supports(&version("18.8.3")));
assert!(claim.supports(&version("18.12.6")));
assert!(claim.supports(&version("18.13.0")));
assert!(claim.supports(&version("18.13.1")));
assert!(claim.supports(&version("18.13.2")));
assert!(!claim.permits(&version("17.2.8")));
for incompatible in ["17.4.3", "17.4.4", "18.0.2", "18.1.7", "18.4.7", "18.6.2"] {
assert!(
Expand All @@ -49,7 +52,7 @@ fn production_claim_permits_the_qualified_window() {
);
}
assert!(matches!(
claim.assess(&version("18.12.7")),
claim.assess(&version("18.13.3")),
InterfaceCompatibilityAssessment::UnverifiedNewer(_)
));
assert!(!claim.permits(&version("18.8.4-rc.1")));
Expand Down
8 changes: 7 additions & 1 deletion crates/swallowtail-adapter-oh-my-pi/tests/driver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@ fn descriptor_is_a_distinct_exact_oh_my_pi_rpc_driver() {
InterfaceVersion::new("18.12.6").expect("valid version"),
))
);
assert!(
descriptor.supports_interface_version(&InterfaceVersionBinding::new(
axis.clone(),
InterfaceVersion::new("18.13.2").expect("valid version"),
))
);
assert!(
!descriptor.supports_interface_version(&InterfaceVersionBinding::new(
axis.clone(),
Expand All @@ -75,7 +81,7 @@ fn descriptor_is_a_distinct_exact_oh_my_pi_rpc_driver() {
assert!(
!descriptor.supports_interface_version(&InterfaceVersionBinding::new(
axis,
InterfaceVersion::new("18.12.7").expect("valid version"),
InterfaceVersion::new("18.13.3").expect("valid version"),
))
);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Oh My Pi RPC 18.13.2 identity

Secret-free identity and per-hop source/tree ledger for `@oh-my-pi/pi-coding-agent` from the qualified `18.12.6` ceiling through official stable `18.13.2`. The npm package inventory records every path and SHA-256 for the ceiling plus the published hops `18.13.0`, `18.13.1`, and `18.13.2`. The hop ledger recomputes complete added, removed, and changed paths and classifies every selected-source change.

`18.12.6` tree digest matches Research 447. `gitHead` is null, so the npm tarball is the artifact authority. GitHub tags corroborate the same versions. No artifact was installed or executed.

The selected tools remain `read`, `grep`, `glob`, `todo`, and `ask`. The 14 selected RPC commands are unchanged. `18.13.2` adds unselected `abort_branch_summary`, `dictation_start`, `dictation_stop`, `navigate_tree`, and `set_label`. Optional `input.secret` and `PromptError.code` `cost_cap` stay unmapped. `mr://` stays inside ambient `read`. `18.13.3` is the synthetic later stable.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"all_18x_exclusions":["18.0.2","18.1.7","18.4.7","18.6.2"],"artifact":{"bin":{"omp":"dist/cli.js"},"dist_cli_sha256":"0b7355fb5489a0bdec1289353093ac51e015f438e5c89e8a036bcf955752cfeb","dist_cli_size_bytes":18137288,"engines":{"bun":">=1.3.14"},"main":"./src/index.ts","name":"@oh-my-pi/pi-coding-agent","npm_git_head":null,"package_file_count":3366,"package_json_sha256":"8a40270f5c6f2d0736ae5c7690d2147725da4aef58d673c3ca6c5447e62fc681","package_json_version":"18.13.2","runtime_dependency_versions":{"@oh-my-pi/omp-stats":"18.13.2","@oh-my-pi/omptype":"18.13.2","@oh-my-pi/pi-agent-core":"18.13.2","@oh-my-pi/pi-ai":"18.13.2","@oh-my-pi/pi-catalog":"18.13.2","@oh-my-pi/pi-mnemopi":"18.13.2","@oh-my-pi/pi-natives":"18.13.2","@oh-my-pi/pi-tui":"18.13.2","@oh-my-pi/pi-utils":"18.13.2","@oh-my-pi/pi-wire":"18.13.2","@oh-my-pi/snapcompact":"18.13.2"},"tarball_integrity":"sha512-RNaGEOpLtG5GgPYP9ssOxtWKAVIVEF2frSjd2tLbmK43uXGoohIm+pXIVKPsxK+sonJ8blXM+bPYyvG+eMauCA==","tarball_sha256":"0a2e716dafea4d7e49964ae344db662f92491bb1bd4c9fbde63d2df4d83a16b5","tarball_shasum":"8555c89e7630696ceb5b6c1358345860936055a9","tarball_size_bytes":15513557,"tarball_url":"https://registry.npmjs.org/@oh-my-pi/pi-coding-agent/-/pi-coding-agent-18.13.2.tgz","type":"module","unpacked_size_bytes":50022292,"version":"18.13.2"},"artifact_ledger":[{"dist_cli_sha256":"4475566bfd0a89b045d4b41c7efe905360aac9662d84746a3e8ad5e735542078","dist_cli_size_bytes":17895119,"github_release_published_at":"2026-10-21T21:02:53Z","github_tag":"v18.12.6","github_tag_commit":"45c35e40c46166dc726ccc52f5d27f40f2449f99","npm_git_head":null,"npm_integrity":"sha512-Wo+FcJ7A3RY/OFuafj4hcdIAXc/W7NMxbanwQh3Cmy8s57+ihLOLgAv+HROxHBkssEMg0MaScwkQ9xwqLPiC/g==","npm_shasum":"7762bf3888fa4a841545ea2e13f6e22e74f24792","package_file_count":3342,"package_json_sha256":"7ec74356133c0c75a38f33aa38d998fd0da884fd17a6ba7d7e5341ee54820c6e","package_json_version":"18.12.6","published_at":"2026-10-21T21:21:39.454Z","runtime_dependency_versions":{"@oh-my-pi/omp-stats":"18.12.6","@oh-my-pi/omptype":"18.12.6","@oh-my-pi/pi-agent-core":"18.12.6","@oh-my-pi/pi-ai":"18.12.6","@oh-my-pi/pi-catalog":"18.12.6","@oh-my-pi/pi-mnemopi":"18.12.6","@oh-my-pi/pi-natives":"18.12.6","@oh-my-pi/pi-tui":"18.12.6","@oh-my-pi/pi-utils":"18.12.6","@oh-my-pi/pi-wire":"18.12.6","@oh-my-pi/snapcompact":"18.12.6"},"selected_rpc_command_case_count":67,"tarball_sha256":"8088b050a405cc4073c8f4b32d338ebb0ecc2f0d18be05852f20960b73e819e1","tarball_size_bytes":15233742,"tarball_url":"https://registry.npmjs.org/@oh-my-pi/pi-coding-agent/-/pi-coding-agent-18.12.6.tgz","tree_sha256":"13057a74c47625b83d803e0b401789685a11a77c646233ff4cec571568a9de32","unpacked_size_bytes":49180942,"version":"18.12.6"},{"dist_cli_sha256":"9c28fdf7b1b9c9b5ea2eccc0d91744a7e5ad0581ce5306d154230ca886271f1e","dist_cli_size_bytes":18013520,"github_release_published_at":"2026-10-26T20:29:17Z","github_tag":"v18.13.0","github_tag_commit":"011ab732fa2d8657203d17f6af80d57809eb24f4","npm_git_head":null,"npm_integrity":"sha512-bqPNgav8vEag7zSnTLt7ZUh9VtL9HYboG/s5OBeMaDvy2Ylzit9ZWgGMPk+hRH3aUVETeXnUa6dS4znWuLHfdg==","npm_shasum":"8120df166601126c5c2bfcc6d91d62a2718bc99b","package_file_count":3352,"package_json_sha256":"39756d7ec8d888460710b24f171d1b6412f1cc4d44d4465f2c0e4f88288b1051","package_json_version":"18.13.0","published_at":"2026-10-26T20:40:11.413Z","runtime_dependency_versions":{"@oh-my-pi/omp-stats":"18.13.0","@oh-my-pi/omptype":"18.13.0","@oh-my-pi/pi-agent-core":"18.13.0","@oh-my-pi/pi-ai":"18.13.0","@oh-my-pi/pi-catalog":"18.13.0","@oh-my-pi/pi-mnemopi":"18.13.0","@oh-my-pi/pi-natives":"18.13.0","@oh-my-pi/pi-tui":"18.13.0","@oh-my-pi/pi-utils":"18.13.0","@oh-my-pi/pi-wire":"18.13.0","@oh-my-pi/snapcompact":"18.13.0"},"selected_rpc_command_case_count":67,"tarball_sha256":"7bf2a37a79d1de1301ad5a2184265f424e56f560eb4b86b5fdbb02e3a1964171","tarball_size_bytes":15360451,"tarball_url":"https://registry.npmjs.org/@oh-my-pi/pi-coding-agent/-/pi-coding-agent-18.13.0.tgz","tree_sha256":"54e8b4c064d2ae5185e3bf415d154ceb07c264aa80327d80972f4b09ccb7b3c5","unpacked_size_bytes":49567275,"version":"18.13.0"},{"dist_cli_sha256":"d362f66bcd9601c80aaf97d1056f8679411298e5e555fbc8de8781d87b8cd5b6","dist_cli_size_bytes":18022650,"github_release_published_at":"2026-10-27T00:56:37Z","github_tag":"v18.13.1","github_tag_commit":"0838d2ab4407b74e870de07e1a6780a13c7d542c","npm_git_head":null,"npm_integrity":"sha512-zIorqOvC72/KgvNLvnnlBYLekIN7cx+r/Jds8dvQsOZViS/n0lLK2ZeWyt8zeziYX59Hwy6I7jz9UE+ekwdRdA==","npm_shasum":"fe9d0dad66e298cd7a705fb03202a7462292861a","package_file_count":3352,"package_json_sha256":"12f8ddf92830629c28a46ac9437a71d364b819d00ef472cb6f084d87e8f874dd","package_json_version":"18.13.1","published_at":"2026-10-27T01:04:47.127Z","runtime_dependency_versions":{"@oh-my-pi/omp-stats":"18.13.1","@oh-my-pi/omptype":"18.13.1","@oh-my-pi/pi-agent-core":"18.13.1","@oh-my-pi/pi-ai":"18.13.1","@oh-my-pi/pi-catalog":"18.13.1","@oh-my-pi/pi-mnemopi":"18.13.1","@oh-my-pi/pi-natives":"18.13.1","@oh-my-pi/pi-tui":"18.13.1","@oh-my-pi/pi-utils":"18.13.1","@oh-my-pi/pi-wire":"18.13.1","@oh-my-pi/snapcompact":"18.13.1"},"selected_rpc_command_case_count":67,"tarball_sha256":"186ffca3d727c181819167493ea3abfb92ceed48b7a3953ad172b5bcb5e2b0a3","tarball_size_bytes":15371443,"tarball_url":"https://registry.npmjs.org/@oh-my-pi/pi-coding-agent/-/pi-coding-agent-18.13.1.tgz","tree_sha256":"38b009f9638bd50a05ad036a4e67f3cf0a787b2c6d3964ebaf7ad678d0e8e01e","unpacked_size_bytes":49599489,"version":"18.13.1"},{"dist_cli_sha256":"0b7355fb5489a0bdec1289353093ac51e015f438e5c89e8a036bcf955752cfeb","dist_cli_size_bytes":18137288,"github_release_published_at":"2026-10-27T18:07:53Z","github_tag":"v18.13.2","github_tag_commit":"e996e1c7ac476f60e02b8ed9764cf30fa8c00a8e","npm_git_head":null,"npm_integrity":"sha512-RNaGEOpLtG5GgPYP9ssOxtWKAVIVEF2frSjd2tLbmK43uXGoohIm+pXIVKPsxK+sonJ8blXM+bPYyvG+eMauCA==","npm_shasum":"8555c89e7630696ceb5b6c1358345860936055a9","package_file_count":3366,"package_json_sha256":"8a40270f5c6f2d0736ae5c7690d2147725da4aef58d673c3ca6c5447e62fc681","package_json_version":"18.13.2","published_at":"2026-10-27T18:17:00.689Z","runtime_dependency_versions":{"@oh-my-pi/omp-stats":"18.13.2","@oh-my-pi/omptype":"18.13.2","@oh-my-pi/pi-agent-core":"18.13.2","@oh-my-pi/pi-ai":"18.13.2","@oh-my-pi/pi-catalog":"18.13.2","@oh-my-pi/pi-mnemopi":"18.13.2","@oh-my-pi/pi-natives":"18.13.2","@oh-my-pi/pi-tui":"18.13.2","@oh-my-pi/pi-utils":"18.13.2","@oh-my-pi/pi-wire":"18.13.2","@oh-my-pi/snapcompact":"18.13.2"},"selected_rpc_command_case_count":72,"tarball_sha256":"0a2e716dafea4d7e49964ae344db662f92491bb1bd4c9fbde63d2df4d83a16b5","tarball_size_bytes":15513557,"tarball_url":"https://registry.npmjs.org/@oh-my-pi/pi-coding-agent/-/pi-coding-agent-18.13.2.tgz","tree_sha256":"ffd81f9fcd5b79fca84ae993cfc7953dd889d2be9172d9a78e762fece8c6cb75","unpacked_size_bytes":50022292,"version":"18.13.2"}],"axis":"oh-my-pi.package","claim_at_observation":{"axis":"oh-my-pi.package","claim_id":"oh-my-pi.rpc.package-window-2","exclusions":["18.0.2","18.1.7","18.4.7","18.6.2"],"posture":"allow_unverified","segments":[{"behavior_revision":"oh-my-pi.rpc-v2-v17.2.9","range":"17.2.9..=17.4.2","status":"deprecated"},{"behavior_revision":"oh-my-pi.rpc-v2-v18.0.0","range":"18.0.0..=18.12.6","status":"maintained"}]},"compared_versions":["18.12.6","18.13.0","18.13.1","18.13.2"],"evidence_controls":{"artifacts_executed":false,"credentials_used":false,"host_updated_or_mutated":false,"live_catalogue_or_session_used":false,"package_installed":false,"provider_prompt_sent":false,"selected_command_case_set_stable":false,"selected_fourteen_commands_unchanged":true,"selected_tool_schemas_identical":true,"source_hash_mismatches":0},"github_only_unpublished_stable_tag_gaps":[{"commit":"b214f5a1b6ddda185c618f1339d5fd4ccd45f7c0","github_tag":"v18.0.2","version":"18.0.2"},{"commit":"c4da0d08e8275659f3e09cf381c7df7018a19025","github_tag":"v18.1.7","version":"18.1.7"},{"commit":"d462f4b99626b7ddae1a686982986ec5dfea739c","github_tag":"v18.4.7","version":"18.4.7"},{"commit":"1c0993c3d12e70042169a951663bb2702e2c0a9e","github_tag":"v18.6.2","version":"18.6.2"}],"host_observation":{"note":"omp was not on PATH. Missing local install is not a gap. No artifact was installed or executed.","present":false},"identity_decision":{"17x_segment_unchanged":"17.2.9..=17.4.2 (deprecated)","18x_exclusions":["18.0.2","18.1.7","18.4.7","18.6.2"],"behavior_revision":"oh-my-pi.rpc-v2-v18.0.0","claim_id_stays":"oh-my-pi.rpc.package-window-2","live_provider_proof_required":false,"new_18x_range":"18.0.0..=18.13.2","new_driver_or_facade":false,"new_public_operation_required":false,"pi_rpc_or_sdk_evidence_transferred":false,"provider_internal_read_resource_extension":"No new scheme. mr:// stays the ambient glab read resource. cfg:// still redacts credentials. ssh stays exec.","public_lifecycle_break":false,"qualify_all_published_intermediates":true,"security_or_authority_tier_change":false,"shape":"compatible-extension","unselected_rpc_additions":["abort_branch_summary","dictation_start","dictation_stop","navigate_tree","set_label"]},"npm_only_published_stables_without_github_tag":[],"npm_package":"@oh-my-pi/pi-coding-agent","observed_at":"2026-10-28T09:40:00Z","official_channels":{"channel_agreement":true,"github_releases":{"latest_release_published_at":"2026-10-27T18:07:53Z","latest_release_tag":"v18.13.2","latest_release_url":"https://github.com/can1357/oh-my-pi/releases/tag/v18.13.2","latest_tag_commit":"e996e1c7ac476f60e02b8ed9764cf30fa8c00a8e","prerelease":false,"url":"https://api.github.com/repos/can1357/oh-my-pi/releases/latest"},"npm":{"attestations":{"provenance":{"predicateType":"https://slsa.dev/provenance/v1"},"url":"https://registry.npmjs.org/-/npm/v1/attestations/@oh-my-pi%2fpi-coding-agent@18.13.2"},"dist_tag":"latest","gitHead":null,"integrity":"sha512-RNaGEOpLtG5GgPYP9ssOxtWKAVIVEF2frSjd2tLbmK43uXGoohIm+pXIVKPsxK+sonJ8blXM+bPYyvG+eMauCA==","latest":"18.13.2","published_at":"2026-10-27T18:17:00.689Z","shasum":"8555c89e7630696ceb5b6c1358345860936055a9","signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEqGGrdt/gSljKu6IhsJg0Q3o+QkMjboL9KEZRbfW8LYAiEAmC452Ez016hSW5N0OAAuy88VSduoi8q4U2XcmiJm/i8="},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE37t7kt9rJCHbvbnl+TPu9l8gSK9eFPivewkSD9Km+LAiAb/WXHg82WyrZDO6iLZ4Z82SZmum2LbzAO05l+SJx3ww=="}],"tarball_url":"https://registry.npmjs.org/@oh-my-pi/pi-coding-agent/-/pi-coding-agent-18.13.2.tgz","url":"https://registry.npmjs.org/@oh-my-pi%2fpi-coding-agent"}},"official_latest_at_identity":"18.13.2","oldest_17x_segment":{"behavior_revision":"oh-my-pi.rpc-v2-v17.2.9","range":"17.2.9..=17.4.2","status":"deprecated"},"previous_historical_exclusions":["18.0.2","18.1.7","18.4.7","18.6.2"],"previous_qualified_ceiling":"18.12.6","published_stable_hop_count":3,"published_stable_hops":["18.13.0","18.13.1","18.13.2"],"runtime_observations":{"required_runtime":{"bun":">=1.3.14"}},"schema_version":"1.0.0","source_identity":{"artifact_source_authority":"Exact published npm package tree. Registry gitHead is null on every hop. GitHub stable tags match the npm versions and are corroboration, not substitutes for the package tree.","baseline_tree_sha256_matches_research_447":"13057a74c47625b83d803e0b401789685a11a77c646233ff4cec571568a9de32","npm_gitHead":null,"target_github_commit":"e996e1c7ac476f60e02b8ed9764cf30fa8c00a8e","target_github_tag":"v18.13.2","target_tree_sha256":"ffd81f9fcd5b79fca84ae993cfc7953dd889d2be9172d9a78e762fece8c6cb75"},"synthetic_later_stable_after_official":"18.13.3","synthetic_later_stable_note":"No npm version or GitHub tag v18.13.3 was observed. This is the first UnverifiedNewer fixture point."}
Loading
Loading