chainlesschain 0.166.71 → 0.166.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/README.md +26 -4
  2. package/package.json +2 -1
  3. package/scripts/pm-exploration-effect.mjs +188 -0
  4. package/src/assets/web-panel/assets/{AIOps-6n6RPfD2.js → AIOps-BlIvP3k1.js} +1 -1
  5. package/src/assets/web-panel/assets/{ActionButton-BRlz1g77.js → ActionButton-DYF7atSV.js} +1 -1
  6. package/src/assets/web-panel/assets/{Analytics-BFx6_nNR.js → Analytics-LZYaYek6.js} +3 -3
  7. package/src/assets/web-panel/assets/{AppLayout-CcbKe_m4.js → AppLayout-BJxrjNbj.js} +5 -5
  8. package/src/assets/web-panel/assets/{Artifacts-DlBMxBaf.js → Artifacts-gEDhxhmE.js} +1 -1
  9. package/src/assets/web-panel/assets/{Audit-aqQRi1IW.js → Audit-B0MR950Q.js} +1 -1
  10. package/src/assets/web-panel/assets/{BackgroundAgents-tzAQeiAS.js → BackgroundAgents-3e6Os_Kl.js} +1 -1
  11. package/src/assets/web-panel/assets/{Backup-C3sLPZvj.js → Backup-DB_X8KUg.js} +1 -1
  12. package/src/assets/web-panel/assets/{BaseInput-BdqG7xax.js → BaseInput-DTNcvNeG.js} +1 -1
  13. package/src/assets/web-panel/assets/{Chat-DXjdkR-r.js → Chat-SnqdA62j.js} +6 -6
  14. package/src/assets/web-panel/assets/{ChatBubbleRenderer-B-3SVP-4.js → ChatBubbleRenderer-BaiWNH_V.js} +1 -1
  15. package/src/assets/web-panel/assets/{Checkbox-CACOSDhS.js → Checkbox-Dj0O4dyP.js} +1 -1
  16. package/src/assets/web-panel/assets/{Codegen-ZY0zbHvS.js → Codegen-BeelW3dx.js} +1 -1
  17. package/src/assets/web-panel/assets/{Col-C511kzpa.js → Col-BmstiyBM.js} +1 -1
  18. package/src/assets/web-panel/assets/{Community-CIM5EtmR.js → Community-CrbmFk3f.js} +1 -1
  19. package/src/assets/web-panel/assets/{Compact-DpTxu8E7.js → Compact-DCg5ZPIw.js} +1 -1
  20. package/src/assets/web-panel/assets/{Compliance-Cu42ksf-.js → Compliance-B3sajhq7.js} +1 -1
  21. package/src/assets/web-panel/assets/{Cowork-BqUbCW9U.js → Cowork-DWcdvrDK.js} +4 -4
  22. package/src/assets/web-panel/assets/{Cron-OXYE4gRs.js → Cron-Bjwp_NDf.js} +2 -2
  23. package/src/assets/web-panel/assets/{Crosschain-DPqmhSi6.js → Crosschain-BXTLC9o8.js} +1 -1
  24. package/src/assets/web-panel/assets/{DID-CPp_yj85.js → DID-Di62M46b.js} +2 -2
  25. package/src/assets/web-panel/assets/{Dashboard-pki3T5PE.js → Dashboard-BQED8Rkt.js} +2 -2
  26. package/src/assets/web-panel/assets/{Dropdown-IyL1RsjP.js → Dropdown-DEf9VYaj.js} +1 -1
  27. package/src/assets/web-panel/assets/{EmailListRenderer-6Kbwb4Ux.js → EmailListRenderer-DhFpPMAM.js} +1 -1
  28. package/src/assets/web-panel/assets/{EvolutionSettings-DGBMs24I.js → EvolutionSettings-BOqmzkpS.js} +1 -1
  29. package/src/assets/web-panel/assets/{FamilyGuardDashboard-CLz3KJvw.js → FamilyGuardDashboard-BxBnJ4fe.js} +1 -1
  30. package/src/assets/web-panel/assets/{Federation-gMDCbNjS.js → Federation-BN9Q8nsZ.js} +1 -1
  31. package/src/assets/web-panel/assets/{FormItemContext-bSzQnHE6.js → FormItemContext-CGeqFEd-.js} +1 -1
  32. package/src/assets/web-panel/assets/{GenericCardRenderer-DCyBnm6B.js → GenericCardRenderer-DElmWQTc.js} +1 -1
  33. package/src/assets/web-panel/assets/{Git-BKqZtZMD.js → Git-BHBSgKck.js} +2 -2
  34. package/src/assets/web-panel/assets/{Governance-nZDU4Gz2.js → Governance-Breo3NTU.js} +1 -1
  35. package/src/assets/web-panel/assets/{Inference-VodzHgdz.js → Inference-CCABy4E0.js} +1 -1
  36. package/src/assets/web-panel/assets/{KnowledgeGraph-DHjlnyh4.js → KnowledgeGraph-B6_ryn-X.js} +1 -1
  37. package/src/assets/web-panel/assets/{Logs-CPsAssGM.js → Logs-CkmJjJok.js} +2 -2
  38. package/src/assets/web-panel/assets/{MarkdownRenderer-ChogLgLv.js → MarkdownRenderer-DQEQBaRu.js} +1 -1
  39. package/src/assets/web-panel/assets/{Marketplace-Df7Cr8cW.js → Marketplace-iip65jxv.js} +1 -1
  40. package/src/assets/web-panel/assets/{McpTools-Dy_V6M2q.js → McpTools-DDwp_QLb.js} +2 -2
  41. package/src/assets/web-panel/assets/{Memory-DjYWvH5O.js → Memory-2ZmNDRkC.js} +2 -2
  42. package/src/assets/web-panel/assets/{MobileBridge-qYw4QwQh.js → MobileBridge-C6HilwZl.js} +1 -1
  43. package/src/assets/web-panel/assets/MobileProjects-BeMtYRhx.js +1 -0
  44. package/src/assets/web-panel/assets/{Mtc-BQ2fg2aQ.js → Mtc-Bp-FEcoo.js} +5 -5
  45. package/src/assets/web-panel/assets/{MtcAudit-CaBVA8Cu.js → MtcAudit-DNdkTCe5.js} +2 -2
  46. package/src/assets/web-panel/assets/{Multisig-DsTt5nuM.js → Multisig-PnKg2_Eo.js} +3 -3
  47. package/src/assets/web-panel/assets/{NLProgramming-CqpsGgiz.js → NLProgramming-DDp4lZeG.js} +1 -1
  48. package/src/assets/web-panel/assets/{Notes-DpRTGRs9.js → Notes-DEjFktcO.js} +4 -4
  49. package/src/assets/web-panel/assets/{NotificationSettings-CmHeyjUS.js → NotificationSettings-FR8fJDAn.js} +1 -1
  50. package/src/assets/web-panel/assets/{OrderTableRenderer-D-JBdzGf.js → OrderTableRenderer-Cyc-XI0L.js} +1 -1
  51. package/src/assets/web-panel/assets/{Organization-QL01Gu7d.js → Organization-DNW2E_JU.js} +4 -4
  52. package/src/assets/web-panel/assets/{Overflow-DjUeTZ69.js → Overflow-BHfd6wk6.js} +1 -1
  53. package/src/assets/web-panel/assets/{P2P-DuM6UaEh.js → P2P-COIkaXH4.js} +2 -2
  54. package/src/assets/web-panel/assets/{PdhVaultBrowser-BsL5CbMs.js → PdhVaultBrowser-DuRP0UeX.js} +3 -3
  55. package/src/assets/web-panel/assets/{Permissions-Cfu4vMf9.js → Permissions-BfVRGMy8.js} +4 -4
  56. package/src/assets/web-panel/assets/{PersonalDataHub-HvEGAMl5.js → PersonalDataHub-BWYjO6Aa.js} +5 -5
  57. package/src/assets/web-panel/assets/{Pipeline-_CZIYXJs.js → Pipeline-C0e0fPBW.js} +1 -1
  58. package/src/assets/web-panel/assets/{Privacy-C6bTNjwi.js → Privacy-CnId4Jv-.js} +1 -1
  59. package/src/assets/web-panel/assets/{ProjectInit-D64UJRfZ.js → ProjectInit-CYf1grXg.js} +2 -2
  60. package/src/assets/web-panel/assets/{ProjectSettings-CSTAzKVe.js → ProjectSettings-HsXgJdiH.js} +2 -2
  61. package/src/assets/web-panel/assets/{Projects-BudNMgcm.js → Projects-Bi0r9QcC.js} +1 -1
  62. package/src/assets/web-panel/assets/{Providers-C7ddN75H.js → Providers-B-Tu_-_4.js} +1 -1
  63. package/src/assets/web-panel/assets/{QrScannerModal-CtsMC0eH.js → QrScannerModal-CPDqYT2F.js} +1 -1
  64. package/src/assets/web-panel/assets/{QuickAsk-iE7xKI4P.js → QuickAsk-Df6qcjXy.js} +1 -1
  65. package/src/assets/web-panel/assets/{Recommend-5FCqoy3g.js → Recommend-dP6sfGSY.js} +1 -1
  66. package/src/assets/web-panel/assets/{RemoteSession-DtX0VARB.js → RemoteSession-VAt9-tM3.js} +2 -2
  67. package/src/assets/web-panel/assets/{Reputation-Hd4dH5ci.js → Reputation-DtRVRiLI.js} +1 -1
  68. package/src/assets/web-panel/assets/{Row-CnLRjeGC.js → Row-B6Ukqvli.js} +1 -1
  69. package/src/assets/web-panel/assets/{RssFeed-Ds43ubF9.js → RssFeed-DfVRQMrZ.js} +3 -3
  70. package/src/assets/web-panel/assets/{Search-BmXOdvpt.js → Search-CyncAiqQ.js} +1 -1
  71. package/src/assets/web-panel/assets/{Security--yQqv9yt.js → Security-DEO7nrkb.js} +4 -4
  72. package/src/assets/web-panel/assets/{Services-CNNPxlyA.js → Services-CkusQEhN.js} +2 -2
  73. package/src/assets/web-panel/assets/{Skeleton-DPmZAdDN.js → Skeleton-CbGtO3kc.js} +1 -1
  74. package/src/assets/web-panel/assets/{Skills-Va_WxW7s.js → Skills-diOh0gAr.js} +1 -1
  75. package/src/assets/web-panel/assets/{Sla-BZoRsy3v.js → Sla-CIu9Ahak.js} +1 -1
  76. package/src/assets/web-panel/assets/{SpeechSettings-XgRV95VE.js → SpeechSettings-_Nzyi4K9.js} +1 -1
  77. package/src/assets/web-panel/assets/{SyncSettings-Dr7NXCEw.js → SyncSettings-BAOLFlRq.js} +2 -2
  78. package/src/assets/web-panel/assets/{Tasks-j-xRo5_-.js → Tasks-BpmvL1Eq.js} +1 -1
  79. package/src/assets/web-panel/assets/{Templates-BJSqGQuB.js → Templates-Dkr_vRdJ.js} +1 -1
  80. package/src/assets/web-panel/assets/{Tenant-zuVl_JY7.js → Tenant-kM7lHUFR.js} +1 -1
  81. package/src/assets/web-panel/assets/{Terminal-B-xNbgfG.js → Terminal-9zfc41aU.js} +2 -2
  82. package/src/assets/web-panel/assets/{TimelineRenderer-BtZQpa0b.js → TimelineRenderer-Cg_7j6cj.js} +1 -1
  83. package/src/assets/web-panel/assets/{Tokens-CXGqGXWd.js → Tokens-Cs1aikaM.js} +1 -1
  84. package/src/assets/web-panel/assets/{Trigger-CtDmejyH.js → Trigger-DKYPJ9gl.js} +1 -1
  85. package/src/assets/web-panel/assets/{Trust-BfDvBu2B.js → Trust-BFy1Sm8B.js} +1 -1
  86. package/src/assets/web-panel/assets/{UkeySign-CgHq72xW.js → UkeySign-B31L9NBH.js} +1 -1
  87. package/src/assets/web-panel/assets/{VideoEditing-pRBMqiGT.js → VideoEditing-OMmUYdIC.js} +1 -1
  88. package/src/assets/web-panel/assets/{Wallet-DHhZSHFo.js → Wallet-y3aE7oru.js} +4 -4
  89. package/src/assets/web-panel/assets/{WebAuthn-C-PDGO1-.js → WebAuthn-C0ICKvpu.js} +4 -4
  90. package/src/assets/web-panel/assets/{WorkflowEditor-Dqrh4ooE.js → WorkflowEditor-Cq5UYbr5.js} +1 -1
  91. package/src/assets/web-panel/assets/{chat-Du4rhkgo.js → chat-B1ijaKFv.js} +1 -1
  92. package/src/assets/web-panel/assets/{colors-CVVon0Yw.js → colors-CHkI8PDg.js} +1 -1
  93. package/src/assets/web-panel/assets/{compact-item-zcQv_R_9.js → compact-item-1BYvgWEs.js} +1 -1
  94. package/src/assets/web-panel/assets/{createContext-UfW2PpZM.js → createContext-BGti56u4.js} +1 -1
  95. package/src/assets/web-panel/assets/devWarning-Isft1nEX.js +1 -0
  96. package/src/assets/web-panel/assets/{hasIn-Dko6kq4D.js → hasIn-Cr87Fph1.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-DMdBtncl.js → index-1WxCzqYq.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DwXm_6Df.js → index-6Ta8Pg47.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-Dgu3vko5.js → index-B1yur8MU.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-jjgfplWj.js → index-B4BSM3BK.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-ija7mc1b.js → index-B8Jb_cGt.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-Cs4qAz6z.js → index-BA0FMuDX.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-BwcE8uKT.js → index-BKb16YKp.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-5UfwyzQV.js → index-BOjTRSHE.js} +3 -3
  105. package/src/assets/web-panel/assets/{index-BPE8w-x1.js → index-BYpqBWlt.js} +1 -1
  106. package/src/assets/web-panel/assets/index-B_T9NUk7.js +1 -0
  107. package/src/assets/web-panel/assets/{index-DMxhURG4.js → index-Bdkrut2A.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-CJ72HeXg.js → index-BjgtiMdY.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-BoQJIWkq.js → index-BkFXPrdx.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-BolCTH1Q.js → index-Bni5GodE.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-DqQhty7h.js → index-CDTNnQDz.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-BEOOJevs.js → index-CQWMHlY7.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-CoXowCMA.js → index-CS0MIE2C.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-7aNfa1q3.js → index-C_lEztok.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DhYE_jVw.js → index-CbkGda_k.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-CV8kORgq.js → index-CevUJTXd.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-DIFh_pNy.js → index-CjBkVrq9.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-CrURt95p.js → index-CkcWhgLB.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-BXqsNksk.js → index-CmmSJBNi.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-Dkc1L9vQ.js → index-CvcpesEZ.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-Dviw8PsD.js → index-Cvu95WPI.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-Dh1USRx7.js → index-D6g4jxdE.js} +1 -1
  123. package/src/assets/web-panel/assets/index-DBqUxaat.js +1 -0
  124. package/src/assets/web-panel/assets/{index-BR5eNU_w.js → index-DCkvhzaY.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-CPqtDZE1.js → index-DHJtAEx8.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-0d3V2fKV.js → index-DJjnXDAD.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-4YoVVwaY.js → index-Dam-LB_J.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-BHq5RTAk.js → index-DcoI3ENn.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-CrbxgYRx.js → index-Dnp-4yPc.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-ubMuGX5r.js → index-Duv0TfJa.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-B8nu6_LV.js → index-DzevrmLK.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-UzXoeYbz.js → index-fhpMyq0u.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-BPTQ-SUp.js → index-rO6VKJv5.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-D4-E1s34.js → index-rVnXNFST.js} +1 -1
  135. package/src/assets/web-panel/assets/{index-DKAB6MRs.js → index-tY479EoQ.js} +1 -1
  136. package/src/assets/web-panel/assets/{initDefaultProps-DvSMOW2m.js → initDefaultProps-DAGtnwoX.js} +1 -1
  137. package/src/assets/web-panel/assets/{motion-C7PjuFda.js → motion-02FXBi5C.js} +1 -1
  138. package/src/assets/web-panel/assets/{move-qsgDmMqu.js → move-BLf7rhzJ.js} +1 -1
  139. package/src/assets/web-panel/assets/{mtc-parser-D7qHulCC.js → mtc-parser-Ct6i1vqQ.js} +1 -1
  140. package/src/assets/web-panel/assets/{omit-g_tGmcIM.js → omit-DKvTU8IT.js} +1 -1
  141. package/src/assets/web-panel/assets/{pickAttrs-DGs-br4p.js → pickAttrs-DqDsKoMe.js} +1 -1
  142. package/src/assets/web-panel/assets/{placementArrow-A1KZT5yH.js → placementArrow-kae6Cnwx.js} +1 -1
  143. package/src/assets/web-panel/assets/{responsiveObserve-B98U6Yi5.js → responsiveObserve-DzFM_TQf.js} +1 -1
  144. package/src/assets/web-panel/assets/{slide-Y5Q6ixV9.js → slide-qDjNFPuM.js} +1 -1
  145. package/src/assets/web-panel/assets/{statusUtils-CVC7D579.js → statusUtils-BihSr7G3.js} +1 -1
  146. package/src/assets/web-panel/assets/{styleChecker-CDWAgZKa.js → styleChecker-BzoT0TfJ.js} +1 -1
  147. package/src/assets/web-panel/assets/{useFlexGapSupport-C0UFofSm.js → useFlexGapSupport-CjXXcU1j.js} +1 -1
  148. package/src/assets/web-panel/assets/{useFs-BHEf6SSo.js → useFs-DrWcbDJ1.js} +1 -1
  149. package/src/assets/web-panel/assets/{usePersonalDataHub-Bb2M_BPj.js → usePersonalDataHub-DO1oBNTE.js} +1 -1
  150. package/src/assets/web-panel/assets/{vnode-DENyLaXR.js → vnode-BR6crWko.js} +1 -1
  151. package/src/assets/web-panel/assets/{zoom-BUOUP8-I.js → zoom-DmKLfw6W.js} +1 -1
  152. package/src/assets/web-panel/index.html +1 -1
  153. package/src/data/changelog.json +39 -0
  154. package/src/lib/decision-layer/benchmark.js +64 -3
  155. package/src/lib/decision-layer/runtime.js +18 -5
  156. package/src/lib/evolution/evolution-eval-gate.js +289 -32
  157. package/src/lib/evolution/pm-exploration-benchmark.js +2014 -49
  158. package/src/lib/evolution/skill-writer-inventory-manifest.js +4 -1
  159. package/src/lib/task-progress-tracker.js +47 -4
  160. package/src/runtime/agent-core.js +18 -7
  161. package/src/assets/web-panel/assets/MobileProjects-DDA7pzJd.js +0 -1
  162. package/src/assets/web-panel/assets/devWarning-CoA1apwL.js +0 -1
  163. package/src/assets/web-panel/assets/index-CsR4S29Z.js +0 -1
  164. package/src/assets/web-panel/assets/index-DvcAyRFh.js +0 -1
@@ -166,7 +166,10 @@ export const SKILL_WRITER_INVENTORY = Object.freeze({
166
166
  symbol: "_executeRunCode",
167
167
  evidence: [
168
168
  "async function _executeRunCode(args, cwd)",
169
- "output = runCodeProcess(interpreter, [scriptPath]",
169
+ "output = runCodeProcess(",
170
+ 'bashStdin ? ["-s", "--"] : [scriptPath]',
171
+ "...(bashStdin ? { input: code } : {})",
172
+ "...pluginBinSandboxOptions",
170
173
  ],
171
174
  },
172
175
  }),
@@ -47,11 +47,13 @@ function isGitInspection(result, args) {
47
47
  .trim()
48
48
  .replace(/^git\s+/i, "");
49
49
  return (
50
- /^(?:merge-base|grep|rev-list|ls-files|ls-tree|ls-remote|cat-file|describe|name-rev)\b/i.test(
50
+ /^(?:status|diff|log|show|rev-parse|merge-base|grep|rev-list|ls-files|ls-tree|ls-remote|cat-file|describe|name-rev|fetch)\b/i.test(
51
51
  command,
52
52
  ) ||
53
53
  /^remote\s*(?:-v|--verbose)?\s*$/i.test(command) ||
54
- /^(?:branch|tag)\s+(?:--list|-l)(?:\s|$)/i.test(command)
54
+ /^(?:branch|tag)\s*(?:$|(?:--list|-l|--show-current|--contains|--no-merged|--merged|-a|-r|--all|--sort)(?:[=\s]|$))/i.test(
55
+ command,
56
+ )
55
57
  );
56
58
  }
57
59
 
@@ -61,7 +63,7 @@ function isGitInspection(result, args) {
61
63
  function isRemoteInspectionCommand(command) {
62
64
  if (typeof command !== "string") return false;
63
65
  if (
64
- /(?:^|[\s;&|])gh(?:\.exe)?\s+(?:run\s+(?:view|list|watch)|pr\s+(?:view|list|diff|checks)|auth\s+status)\b/i.test(
66
+ /(?:^|[\s;&|])gh(?:\.exe)?\s+(?:run\s+(?:view|list|watch)|pr\s+(?:view|list|diff|checks)|workflow\s+(?:view|list)|auth\s+status)\b/i.test(
65
67
  command,
66
68
  )
67
69
  )
@@ -76,6 +78,43 @@ function isRemoteInspectionCommand(command) {
76
78
  );
77
79
  }
78
80
 
81
+ // Advisory classification, never execution parsing or permission approval.
82
+ // A retry wrapper or JSON filter is still investigation, even when each call
83
+ // prints a different small result. Unknown computations remain available.
84
+ function isInspectionScript(code) {
85
+ if (typeof code !== "string") return false;
86
+ // Keep actual changes and focused verification eligible to advance the task.
87
+ if (
88
+ /\b(?:writeFile(?:Sync)?|appendFile(?:Sync)?|unlink(?:Sync)?|rename(?:Sync)?|mkdir(?:Sync)?|rmSync|rmdirSync|assert|pytest|vitest|unittest)\b/.test(
89
+ code,
90
+ ) ||
91
+ /\b(?:npm\s+(?:test|run|publish)|git\s+(?:commit|merge|cherry-pick|push)|gh\s+(?:pr\s+(?:create|merge|close)|run\s+rerun))\b/i.test(
92
+ code,
93
+ )
94
+ )
95
+ return false;
96
+ // Direct exec("gh ...") and helpers such as gh("run view ...") both occur
97
+ // in recovery loops. Do not execute/extract these strings as commands.
98
+ const literals = [...code.matchAll(/["'`]([^"'`\r\n]+)["'`]/g)].map(
99
+ (match) => match[1],
100
+ );
101
+ if (literals.some((value) => isRemoteInspectionCommand(value))) return true;
102
+ if (
103
+ /\bgh\s*\(/.test(code) &&
104
+ literals.some((value) => isRemoteInspectionCommand(`gh ${value}`))
105
+ )
106
+ return true;
107
+ // Parsing previously saved logs/metadata is evidence collection too.
108
+ return (
109
+ /\b(?:readFileSync|readFile|readdirSync|readdir|read_text|read_bytes|json\.load)\s*\(/.test(
110
+ code,
111
+ ) &&
112
+ !/\b(?:execSync|execFileSync|spawnSync|exec|spawn|subprocess|system)\s*[.(]/.test(
113
+ code,
114
+ )
115
+ );
116
+ }
117
+
79
118
  function remember(map, key, value, limit) {
80
119
  map.delete(key);
81
120
  map.set(key, value);
@@ -180,7 +219,9 @@ export class TaskProgressTracker {
180
219
  ? "git-inspection"
181
220
  : remoteTarget?.github || isRemoteInspectionCommand(command)
182
221
  ? "remote-inspection"
183
- : "local-execution"),
222
+ : tool === "run_code" && isInspectionScript(command)
223
+ ? "script-inspection"
224
+ : "local-execution"),
184
225
  invocation: boundedText(command || previous?.invocation, 1000),
185
226
  invocationTruncated: command
186
227
  ? command.length > 1000
@@ -293,6 +334,7 @@ export class TaskProgressTracker {
293
334
  exploration =
294
335
  !!remoteReadTarget(tool, args) ||
295
336
  remoteInspection ||
337
+ (tool === "run_code" && isInspectionScript(args.code)) ||
296
338
  output.length >= 8000 ||
297
339
  this.commandOutputs.has(digest);
298
340
  if (!failed) remember(this.commandOutputs, digest, true, 64);
@@ -356,6 +398,7 @@ export class TaskProgressTracker {
356
398
  "For research/review, synthesize evidence-backed findings; do not write files merely to clear this warning. " +
357
399
  "If evidence is insufficient, name the exact missing fact and use a focused search or bounded computation. " +
358
400
  "Do not restart general investigation, rewrite the plan, or delegate the same research. " +
401
+ "Re-reading the same commit, completed CI run or saved metadata through a different script is still investigation. Once a failure and candidate fix are established, run the focused validation or perform the next authorized action; do not repeatedly announce that the root cause is confirmed. For monitoring, poll a compact status at a reasonable interval and investigate again only when the state changes. " +
359
402
  "A child exhausting its budget is not task completion. Preserve useful partial findings and continue the original task. " +
360
403
  "During recovery, broad discovery stays paused until an actionable tool outcome; a focused search, another status query or a failed command does not end recovery. " +
361
404
  "Use search_files for an exact missing local fact, read_file with an explicit offset and limit of at most 80 lines for a known target section, or run a bounded computation/verification, then act on the result. " +
@@ -1128,6 +1128,8 @@ Key behaviors:
1128
1128
  - For CI log retrieval, inspect command stderr before retrying. Match syntax to the actual shell: Windows PowerShell 5 does not support &&, cmd treats single quotes literally, and head is not a Windows builtin. Prefer a plain gh metadata/log command without jq or pipelines first, then inspect the saved output. Never switch shells to bypass a policy denial.
1129
1129
  - For long-running commands (builds, full test suites, dev servers) set run_shell { run_in_background: true } to get a task_id back immediately, then poll output and completion with check_shell { task_id }. Kill a backgrounded server with check_shell { task_id, kill: true } when finished
1130
1130
  - When asked about git status, diff, log, or other repository operations, use the git tool instead of run_shell
1131
+ - The git tool accepts ONE Git argument list, without pipes, redirects, &&, semicolons or echo. Use log -n 5 instead of piping to head; inspect the returned exitCode for predicates such as merge-base --is-ancestor (1 means false). Discover remote names with remote -v; do not assume origin exists.
1132
+ - On Windows, run_shell defaults to cmd unless configured otherwise. Set shell: "powershell" for PowerShell syntax or shell: "pwsh" for PowerShell 7. Parse saved JSON after stripping an initial UTF-8 BOM; a BOM parse error is not a JavaScript syntax defect.
1131
1133
  - When asked about files or code, use search_files to locate relevant sections, then read_file with offset/limit. Follow nextRead for large files. Reuse unchanged content already in context instead of repeatedly reading the same page; re-read when the file changes or the earlier content is no longer available.
1132
1134
  - For long text files, use search_files with path and pattern to find matching lines/columns and nearby text; read the returned nextRead location instead of paging from the top.
1133
1135
  - For online discovery without a known URL, use web_search with keywords. Return relevant source links and snippets; use web_fetch only when the source needs closer reading. For a known URL, fetch it directly. Download large pages once, then use snapshotId to search or read local chunks. Never invent URLs or claim a blocked search returned no results.
@@ -9396,13 +9398,22 @@ async function _executeRunCode(args, cwd) {
9396
9398
  const start = Date.now();
9397
9399
  let output;
9398
9400
  try {
9399
- output = runCodeProcess(interpreter, [scriptPath], {
9400
- cwd,
9401
- encoding: "utf8",
9402
- timeout: timeoutSec * 1000,
9403
- maxBuffer: 5 * 1024 * 1024,
9404
- ...pluginBinSandboxOptions,
9405
- });
9401
+ // Windows may resolve bash to Git Bash or WSL. Neither should receive a
9402
+ // native temp pathname as a shell token. Stdin preserves the script bytes
9403
+ // across both path dialects, without an extra shell or path conversion.
9404
+ const bashStdin = lang === "bash" && process.platform === "win32";
9405
+ output = runCodeProcess(
9406
+ interpreter,
9407
+ bashStdin ? ["-s", "--"] : [scriptPath],
9408
+ {
9409
+ cwd,
9410
+ ...(bashStdin ? { input: code } : {}),
9411
+ encoding: "utf8",
9412
+ timeout: timeoutSec * 1000,
9413
+ maxBuffer: 5 * 1024 * 1024,
9414
+ ...pluginBinSandboxOptions,
9415
+ },
9416
+ );
9406
9417
  } catch (err) {
9407
9418
  // Broker boundary errors carry the required/actual/missing guarantees and
9408
9419
  // backend attestation. Preserve that exact structured error for callers
@@ -1 +0,0 @@
1
- import{I as n,J as g,c as l,K as r,N as u,P as h,U as o,R as t,Q as b}from"./vendor-Bn1JzzAn.js";import{_ as v,b as m}from"./index-5UfwyzQV.js";import{a8 as M,M as y}from"./icons-DG5UD-6K.js";const B={__name:"MobileProjects",setup(p,{expose:i}){i();const c=u(),{t:e}=m();function a(){c.push("/projects")}function _(){c.push("/mobile-bridge")}const s={router:c,t:e,goToProjects:a,goToMobileBridge:_,get useRouter(){return u},get useI18n(){return m},get MobileOutlined(){return y},get FolderOutlined(){return M}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}},x={class:"mobile-projects-placeholder"},O={class:"title"},k={class:"subtitle"},w={class:"explainer"};function T(p,i,c,e,a,_){const s=n("a-alert"),d=n("a-button"),f=n("a-space"),P=n("a-empty"),j=n("a-card");return h(),g("div",x,[l(j,null,{default:r(()=>[l(P,{description:!1},{image:r(()=>[l(e.MobileOutlined,{style:{fontSize:"64px",color:"#bfbfbf"}})]),default:r(()=>[o("h2",O,t(e.t("mobileProjects.title")),1),o("p",k,t(e.t("mobileProjects.subtitle")),1),l(s,{message:e.t("mobileProjects.v02Banner"),type:"info","show-icon":"",class:"banner"},null,8,["message"]),o("div",w,[o("h3",null,t(e.t("mobileProjects.currentDirection")),1),o("p",null,t(e.t("mobileProjects.currentDirectionBody")),1),o("ul",null,[o("li",null,t(e.t("mobileProjects.stepPhone")),1),o("li",null,t(e.t("mobileProjects.stepTap")),1),o("li",null,t(e.t("mobileProjects.stepPull")),1)]),o("h3",null,t(e.t("mobileProjects.reverseDirection")),1),o("p",null,t(e.t("mobileProjects.reverseDirectionBody")),1)]),l(f,{class:"actions"},{default:r(()=>[l(d,{type:"primary",onClick:e.goToProjects},{default:r(()=>[l(e.FolderOutlined),b(" "+t(e.t("mobileProjects.viewLocalProjects")),1)]),_:1}),l(d,{onClick:e.goToMobileBridge},{default:r(()=>[l(e.MobileOutlined),b(" "+t(e.t("mobileProjects.checkBridge")),1)]),_:1})]),_:1})]),_:1})]),_:1})])}const N=v(B,[["render",T],["__scopeId","data-v-9262cc45"],["__file","/tmp/cc-web-panel-pMJBYK/repo/packages/web-panel/src/views/MobileProjects.vue"]]);export{N as default};
@@ -1 +0,0 @@
1
- import{Q as r}from"./index-5UfwyzQV.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-CnLRjeGC.js";import{a0 as t}from"./index-5UfwyzQV.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-B98U6Yi5.js";import"./useFlexGapSupport-C0UFofSm.js";import"./styleChecker-CDWAgZKa.js";import"./index-Cs4qAz6z.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
@@ -1 +0,0 @@
1
- import{C as o}from"./Col-C511kzpa.js";import{a0 as t}from"./index-5UfwyzQV.js";import"./vendor-Bn1JzzAn.js";import"./index-Cs4qAz6z.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};