@aria-cli/tools 1.0.14 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # @aria-cli/tools
2
+
3
+
4
+
5
+ Part of [ARIA](https://www.npmjs.com/package/@aria-cli/cli) — Adaptive Reasoning Intelligence Agent.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm i @aria-cli/tools
11
+ ```
12
+
13
+ See the main [`@aria-cli/cli`](https://www.npmjs.com/package/@aria-cli/cli) package for full documentation.
14
+
15
+ ## License
16
+
17
+ MIT
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "label": "@aria-cli/tools",
3
- "fingerprint": "f962b9997bedffd42414e1f906e5d95461c101635b9b08bac233bc44457c6319"
3
+ "fingerprint": "23dd7ad113ef94286fb8ad12906576774b7d6544029c6f279d39ec891e747245"
4
4
  }
@@ -0,0 +1 @@
1
+ import{kc as V,lc as W,mc as X}from"./index-syg9gyvy.js";import{sc as J}from"./index-6qew5tp1.js";import"./index-a2fr1b3x.js";import*as Y from"node:dns";import{Agent as _}from"undici";async function $(q){let w;try{let B=await Y.promises.lookup(q,{all:!0,verbatim:!0});w=V(B)}catch(B){throw Error(`DNS resolution failed for ${q}: ${J(B)}`)}if(w.length===0)throw Error(`DNS resolution failed for ${q}: no addresses returned`);let G=w.find((B)=>X(B.address));if(G)throw Error(`SSRF protection: ${q} resolves to private network address ${G.address}`);return w}function x(q){return q instanceof Error&&q.name==="AbortError"}function C(q){if(typeof q==="object"&&q!==null&&"code"in q&&typeof q.code==="string")return`${q.code}: ${J(q)}`;if(q instanceof Error&&q.cause){let w=q.cause;if(typeof w.code==="string")return`${w.code}: ${J(q.cause)}`}return J(q)}function L(q,w){return new _({connect:{lookup:(G,B,K)=>{K(null,[{address:q,family:w}])}}})}async function R(q,w){let G=W(q);if(G)throw Error(G);let B=new URL(q),K=await $(B.hostname),N=[],O;for(let{address:Q,family:T}of K){let H=L(Q,T);try{let D=globalThis.fetch;if(typeof D!=="function")throw Error("Global fetch is unavailable");return await D(q,{...w,dispatcher:H})}catch(D){if(x(D))throw D;O=D,N.push(`${Q}/${T}: ${C(D)}`)}finally{if(H&&"close"in H&&typeof H.close==="function")await H.close()}}let Z=N.length>0?` Attempted addresses: ${N.join("; ")}`:"";throw Error(`Fetch failed for ${B.hostname}.${Z}`,{cause:O})}export{R as fetchWithDnsPinning,L as createPinnedAgent};
@@ -0,0 +1,2 @@
1
+ import*as f from"node:path";import{getErrorMessage as J}from"@aria-cli/types";function C(j,k){return{success:!0,message:j,data:k}}function E(j,k){return{success:!1,message:j,data:k}}function F(j,k){let x=f.normalize(j),q=f.normalize(k),A=q.endsWith(f.sep)?q:q+f.sep;return x===q||x.startsWith(A)}
2
+ export{C as pc,E as qc,F as rc,J as sc};
@@ -0,0 +1,6 @@
1
+ import{pc as U,qc as Q,sc as C}from"./index-6qew5tp1.js";import{uc as F}from"./index-a2fr1b3x.js";import*as G from"node:os";import*as X from"node:path";var T=2000,j,O=null;async function M(){if(j!==void 0)return j;if(O)return O;return O=(async()=>{try{let B=(await import("@aria-cli/cli")).SessionHistory,J=process.env.ARIA_HOME??X.join(G.homedir(),".aria"),V="ARIA";try{let{readFileSync:W,existsSync:Y}=await import("node:fs"),K=X.join(J,"config.json");if(Y(K)){let D=JSON.parse(W(K,"utf-8"));if(D.activeArion)V=D.activeArion}}catch{}let R=B.resolvePerArionPath(J,V);return j=new B(R),j}catch{return j=null,null}})(),O}async function N(q){if(q.sessionHistory)return q.sessionHistory;return M()}function E(q){return q.map((z)=>({id:z.id,title:z.title,arion:z.arion,model:z.model,messageCount:z.messageCount,updatedAt:z.updatedAt.toISOString(),completedAt:z.completedAt?.toISOString(),preview:z.preview}))}function L(q,z){if(q.length<=z)return q;return q.slice(0,z-3)+"..."}function A(q,z){if(z.length===36)return q.getSession(z)?z:null;return q.findSessionByPrefix(z)}async function v(q,z){if(z.abortSignal?.aborted)return Q("Operation cancelled");if(!q.action)return Q("action is required. Valid actions: list, search, get, current, stats, delete, set_title");let B=await N(z);if(!B)return Q("Session history is not available in this context");try{switch(q.action){case"list":return P(q,B);case"search":return g(q,B);case"get":return k(q,B);case"current":return b(z,B);case"stats":return w(B);case"delete":return H(q,B);case"set_title":return _(q,B);default:return Q(`Unknown action "${q.action}". Valid actions: list, search, get, current, stats, delete, set_title`)}}catch(J){return Q(C(J))}}function P(q,z){let B=q.limit??20,J=q.offset??0,V=z.listSessions(B,J),R=E(V),W={sessions:R,total:R.length,limit:B,offset:J};if(R.length===0)return U("No sessions found",W);let Y=R.map((K)=>`• ${K.id.slice(0,8)}… | ${K.title||"(untitled)"} | ${K.messageCount} msgs | ${K.arion} | ${K.updatedAt.slice(0,10)}`);return U(`Found ${R.length} session(s):
2
+ ${Y.join(`
3
+ `)}`,W)}function g(q,z){if(!q.query||q.query.trim()==="")return Q("query is required for 'search' action");let B=q.limit??20,J=q.offset??0,V=z.searchSessionsFts(q.query,B,J),R=E(V),W={sessions:R,total:R.length,limit:B,offset:J};if(R.length===0)return U(`No sessions found matching "${q.query}"`,W);let Y=R.map((K)=>`• ${K.id.slice(0,8)}… | ${K.title||"(untitled)"} | ${K.messageCount} msgs | ${K.arion} | ${K.updatedAt.slice(0,10)}`);return U(`Found ${R.length} session(s) matching "${q.query}":
4
+ ${Y.join(`
5
+ `)}`,W)}function k(q,z){if(!q.sessionId||q.sessionId.trim()==="")return Q("sessionId is required for 'get' action");let B=A(z,q.sessionId);if(!B)return Q(`Session not found for ID/prefix "${q.sessionId}"`);let J=z.getSession(B);if(!J)return Q(`Session ${B} not found`);let V=q.messageLimit??50,W=J.messages.slice(-V).map((Z)=>({role:Z.role,content:L(Z.content,T),createdAt:Z.createdAt.toISOString(),toolCallId:Z.toolCallId})),Y;try{let Z=z.getRunMetrics?.(B)??[];Y=Z.length>0?Z.map(($)=>({turnCount:$.turnCount,inputTokens:$.inputTokens,outputTokens:$.outputTokens,estimatedCost:$.estimatedCost,wallTimeMs:$.wallTimeMs})):void 0}catch{}let K={id:J.id,arion:J.arion,model:J.model,messageCount:J.messages.length,messages:W,metrics:Y},D=J.messages.length>V?` (showing last ${V} of ${J.messages.length})`:"";return U(`Session ${J.id.slice(0,8)}… | ${J.arion} | ${J.model} | ${J.messages.length} messages${D}`,K)}function b(q,z){if(!q.currentSessionId)return Q("No current session ID available");let B={sessionId:q.currentSessionId},J=z.getSession(q.currentSessionId);if(J)return U(`Current session: ${J.id.slice(0,8)}… | ${J.arion} | ${J.model} | ${J.messages.length} messages`,{...B,arion:J.arion,model:J.model,messageCount:J.messages.length});return U(`Current session: ${q.currentSessionId}`,B)}function w(q){let z=q.getSessionCount?.()??0,B=(q.getIncompleteSessions?.(1000)??[]).length,J={totalSessions:z,incompleteSessions:B};return U(`Session stats: ${z} total, ${B} incomplete, ${z-B} completed`,J)}function H(q,z){if(!q.sessionId||q.sessionId.trim()==="")return Q("sessionId is required for 'delete' action");let B=A(z,q.sessionId);if(!B)return Q(`Session not found for ID/prefix "${q.sessionId}"`);return z.deleteSession(B),U(`Deleted session ${B}`)}function _(q,z){if(!q.sessionId||q.sessionId.trim()==="")return Q("sessionId is required for 'set_title' action");if(!q.title||q.title.trim()==="")return Q("title is required for 'set_title' action");let B=A(z,q.sessionId);if(!B)return Q(`Session not found for ID/prefix "${q.sessionId}"`);return z.setSessionTitle(B,q.title),U(`Set title of session ${B.slice(0,8)}… to "${q.title}"`)}
6
+ export{N as ic,v as jc};
@@ -0,0 +1,2 @@
1
+ import{createRequire as c}from"node:module";var d=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var f=c(import.meta.url);
2
+ export{d as tc,f as uc};
@@ -0,0 +1,8 @@
1
+ import{z as y}from"zod";var T=y.enum(["in_process","local_runtime","tunnel","relay"]),B=y.enum(["accepted","queued_for_route","dispatching","sent","acked","expired","failed","rejected"]),g=y.enum(["none","handshaking","connected","reconnecting","dead"]),H=y.enum(["cannot_address","can_queue_only","can_send_now"]),E=y.enum(["route_not_established","awaiting_remote_ack","transport_unavailable"]),tt=y.enum(["queued_for_route","dispatching","acked","expired"]),pe=y.object({transport:T,delivered:y.boolean(),queued:y.boolean(),accepted:y.boolean().optional(),deliveryState:B.optional(),sessionState:g.optional(),deliveryReadiness:H.optional(),queuedReason:E.optional()}).strict(),se={rejected:0,failed:1,expired:2,queued_for_route:3,dispatching:4,accepted:5,sent:6,acked:7},Re={dead:0,none:1,handshaking:2,reconnecting:3,connected:4},ue={cannot_address:0,can_queue_only:1,can_send_now:2};function nt(t,n){if(!n)return t.deliveryState==="rejected"?"rejected":"failed";if(t.delivered)return"acked";if(t.queued){if(t.queuedReason==="awaiting_remote_ack"||t.deliveryState==="dispatching"||t.deliveryState==="sent")return"dispatching";return"queued_for_route"}if(t.deliveryState==="expired")return"expired";return"sent"}function ot(t){if(!t.deliveryState)return;if(t.deliveryState==="sent"&&t.queued&&t.queuedReason==="awaiting_remote_ack")return"dispatching";return t.deliveryState}function rt(t,n){return se[t]<=se[n]?t:n}function it(t,n){if(t==="local_runtime")return"none";switch(n){case"queued_for_route":return"handshaking";case"dispatching":return"connected";case"failed":case"rejected":case"expired":return"none";case"acked":return"connected";case"accepted":case"sent":return"connected";default:return"none"}}function at(t,n,a){if(t==="local_runtime")return"none";if(!n)return a;return Re[n]<=Re[a]?n:a}function ct(t,n,a){if(n==="failed"||n==="rejected")return"cannot_address";if(t==="local_runtime"&&n==="acked")return"can_queue_only";if(n==="queued_for_route")return"can_queue_only";if(n==="dispatching")return a==="reconnecting"?"can_queue_only":"can_send_now";if(n==="expired")return"cannot_address";return a==="connected"?"can_send_now":"can_queue_only"}function st(t,n){if(!t)return n;return ue[t]<=ue[n]?t:n}function Rt(t,n){if(n==="rejected")return!1;return t.accepted??!0}function ut(t){return t==="queued_for_route"||t==="dispatching"}function pt(t,n,a){if(!a)return;if(t.queuedReason)return t.queuedReason;if(n==="dispatching")return"awaiting_remote_ack";if(n==="queued_for_route")return"route_not_established";return}function b(t){let n=nt(t,t.accepted??!0),a=ot(t),d=a?rt(a,n):n,w=Rt(t,d),$=d==="acked",ie=ut(d),We=it(t.transport,d),ae=at(t.transport,t.sessionState,We),Ne=ct(t.transport,d,ae),et=st(t.deliveryReadiness,Ne),ce=pt(t,d,ie);return{transport:t.transport,delivered:$,queued:ie,accepted:w,deliveryState:d,sessionState:ae,deliveryReadiness:et,...ce?{queuedReason:ce}:{}}}function dt(t){return b({transport:t.transport,delivered:!0,queued:!1,accepted:!0,deliveryState:"acked",...t.sessionState?{sessionState:t.sessionState}:{},...t.deliveryReadiness?{deliveryReadiness:t.deliveryReadiness}:{}})}function mt(t){return b({transport:t.transport,delivered:!1,queued:!0,accepted:!0,deliveryState:"queued_for_route",queuedReason:"route_not_established",...t.sessionState?{sessionState:t.sessionState}:{},...t.deliveryReadiness?{deliveryReadiness:t.deliveryReadiness}:{}})}function Pt(t){return b({transport:t.transport,delivered:!1,queued:!0,accepted:!0,deliveryState:"dispatching",queuedReason:"awaiting_remote_ack",...t.sessionState?{sessionState:t.sessionState}:{},...t.deliveryReadiness?{deliveryReadiness:t.deliveryReadiness}:{}})}function lt(t){return b({transport:t.transport,delivered:!1,queued:!1,accepted:!0,deliveryState:"sent",...t.sessionState?{sessionState:t.sessionState}:{},...t.deliveryReadiness?{deliveryReadiness:t.deliveryReadiness}:{}})}function St(t){switch(t){case"queued":case"queued_for_route":return"queued_for_route";case"dispatching":case"acked":case"expired":return t;default:throw Error(`[delivery-receipts] Unsupported outbox status: ${t}`)}}import{z as r}from"zod";var p=r.string().trim().min(1),i=p.brand(),k=p.brand(),ht=r.object({nodeId:i,createdAt:p,schemaVersion:r.number().int().positive(),migratedFromLegacy:r.boolean()}),j=r.number().int().nonnegative(),x=r.number().int().nonnegative(),I=r.number().int().nonnegative(),V=r.number().int().nonnegative(),de=r.enum(["local_operator_confirmed","remote_capability_authenticated"]),yt=r.object({localNodeId:i,targetNodeId:i,revocationGeneration:V,operatorConfirmation:de}),M=r.number().int().positive(),ft=r.number().int().nonnegative(),me=r.object({schemaVersion:r.number().int().positive(),nodeId:i,ariaHome:p,runtimePid:r.number().int().positive(),runtimeId:k,displayNameSnapshot:p.optional(),runtimeSocket:p,startedAt:p,lastHeartbeat:p,ownerGeneration:M}).strict(),A=p.brand(),u=p.brand(),m=p.brand(),D=p.brand(),Z=p.brand(),P=p.brand(),h=r.object({host:p,port:r.number().int().min(1).max(65535)}),J=r.discriminatedUnion("kind",[r.object({kind:r.literal("node"),nodeId:i}),r.object({kind:r.literal("client"),clientId:A})]),l=r.object({host:p,port:r.number().int().min(1).max(65535),tlsCaFingerprint:D,tlsServerIdentity:u,protocolVersion:r.number().int().positive(),endpointRevision:x.optional()}),X=r.object({nodeId:i,principalFingerprint:u,transportPublicKey:m,publicationRevision:j.optional(),controlEndpoint:l.optional(),displayNameSnapshot:p.optional()}),vt=r.object({nodeId:i,runtimeId:k,lastHeartbeat:p.optional(),controlEndpoint:l.optional(),displayNameSnapshot:p.optional()}),Pe=p.brand(),kt=r.discriminatedUnion("status",[r.object({status:r.literal("pending"),queuedAt:r.string(),nextAttemptAt:r.string().optional(),attemptCount:r.number()}),r.object({status:r.literal("delivered"),deliveredAt:r.string()}),r.object({status:r.literal("expired"),reason:r.literal("ttl_exceeded"),queuedAt:r.string(),expiredAt:r.string()}),r.object({status:r.literal("rejected"),reason:r.enum(["recipient_revoked","recipient_unknown","envelope_invalid"])})]),Ct=r.discriminatedUnion("status",[r.object({status:r.literal("accepted"),operationId:Pe,queuedAt:r.string()}),r.object({status:r.literal("rejected"),reason:r.enum(["recipient_revoked","recipient_unknown","envelope_invalid"])})]);import{z as le}from"zod";var bt=le.string().trim().min(1),K=le.object({nodeId:i,principalFingerprint:u,transportPublicKey:m,bindingGeneration:I,displayNameSnapshot:bt.optional()}).strict();import{z as R}from"zod";import{z as c}from"zod";import{z as L}from"zod";var Se=L.string().trim().min(1),xt=L.record(L.string(),L.unknown()),U=L.enum(["client_attached","client_detached","runtime_started","runtime_stopped","runtime_stale","runtime_restarted","pair_proposed","proof_committed","continuity_bound","revocation_committed","ingress_accepted","ingress_rejected","durable_send_queued","durable_send_dispatching","durable_send_acked","durable_send_expired"]),he=L.object({eventId:Se,nodeId:i,runtimeId:k,kind:U,revision:L.number().int().nonnegative().optional(),recordedAt:Se,payload:xt}).strict();var s=c.string().trim().min(1),Lt=c.string().min(1).refine((t)=>t.trim().length>0),ye=c.record(c.string(),c.unknown());function fe(t){let n=c.toJSONSchema(t);return delete n.$schema,n}var F=1,S=c.literal(F);function ve(t){return t===F}function wt(t,n="network runtime"){if(!ve(t))throw Error(`Unsupported ${n} protocol version ${String(t)}. Supported: ${F}`);return t}var ke=c.object({protocolVersion:S,messageId:s,senderNodeId:i,recipientNodeId:i,storedAt:c.number().int().nonnegative()}).strict(),At=c.object({nodeId:i,audienceNodeId:i.optional(),publicKey:m,leaderDisplayNameSnapshot:s.optional(),host:s,port:c.number().int().min(1).max(65535),controlEndpoint:l.optional(),psk:s,displayNameSnapshot:s.optional(),signingPublicKey:P.optional(),caCert:Lt.optional(),createdAt:c.number().int().nonnegative(),expiresAt:c.number().int().nonnegative(),tokenNonce:s,coordinationUrl:s.optional(),networkId:s.optional()}).strict(),W=c.object({protocolVersion:S,nodeId:i,principalFingerprint:u,peerPublicKey:m,signingPublicKey:P,transportEndpoint:h,controlEndpoint:l.optional(),displayNameSnapshot:s.optional(),inviteTokenNonce:s}).strict(),Ce=W.extend({proofOfWork:s}).strict(),Dt=fe(Ce),_t=c.union([c.object({protocolVersion:S,deliveryAck:ke}).strict(),c.object({protocolVersion:S,ariaMessage:c.unknown()}).strict(),c.object({protocolVersion:S,joinRequest:W}).strict()]),It=X.extend({protocolVersion:S,publicationRevision:j,signingPublicKey:P,transportEndpoint:h,advertisedHosts:c.array(s).min(1).optional()}).strict(),qt=c.object({protocolVersion:S,nodeId:i,displayNameSnapshot:s,principalFingerprint:u,controlPort:c.number().int().min(1).max(65535),advertisedHosts:c.array(s).min(1),tlsCaFingerprint:c.string().trim().min(1).optional()}).strict(),Tt=c.object({protocolVersion:S,nodeId:i,transportPublicKey:m,principalFingerprint:u,endpointRevision:x,controlEndpoint:l.optional(),displayNameSnapshot:s.optional()}).strict(),Bt=c.object({protocolVersion:S,nodeId:i,principalFingerprint:u,transportPublicKey:m,controlEndpoint:l.optional(),displayNameSnapshot:s.optional(),presharedKey:s}).strict(),be=c.object({nodeId:i,previousPrincipalFingerprint:u,newPrincipalFingerprint:u,newTransportPublicKey:m.optional(),bindingGeneration:I,revocationGeneration:V.optional(),createdAt:s}).strict(),N=c.object({statement:be,delegationSignature:s,acceptanceSignature:s,previousPublicKey:s,newPublicKey:s}).strict(),xe=c.enum(["network.register","network.revoke","network.list_peers","pair.direct","pair.relay","pair.relay_response","peer.update_capabilities","peer.update_trust_tier"]),Le=c.object({version:S,id:s,operation:xe,principal:K,target:K,namespace:s,policyEpoch:c.number().int().nonnegative(),nonce:s,timestamp:c.number().int().nonnegative(),ttl:c.number().int().positive(),contextHash:s,payload:ye,signature:s,method:s.optional(),path:s.optional(),metadata:ye.optional(),reason:s.optional(),parentEnvelopeId:s.optional()}).strict(),we=c.object({nodeId:i,envelope:Le}).strict(),gt=fe(we);var f=R.string().trim().min(1);function G(t){let n=R.toJSONSchema(t);return delete n.$schema,n}var Ae=R.object({displayNameSnapshot:f,nodeId:i,signingPublicKey:P,port:R.number().int().min(1).max(65535),ephemeralPublicKey:R.string().max(512),ephemeralKeySignature:R.string().max(512),caCert:R.string().max(4096).optional(),protocolVersion:R.number().min(1).max(100).optional(),wait:R.boolean().optional()}).strict(),Ht=G(Ae),ee=R.object({inviteToken:f,nodeId:i,displayNameSnapshot:f.optional(),transportEndpoint:h,controlEndpoint:l,continuity:N.optional()}).strict(),Et=G(ee),De=R.object({targetNodeId:i,displayNameSnapshot:f,nodeId:i,signingPublicKey:P,port:R.number().int().min(1).max(65535),ephemeralPublicKey:R.string().max(512),ephemeralKeySignature:R.string().max(512),caCert:R.string().max(4096).optional()}).strict(),jt=G(De),_e=R.object({targetNodeId:i,signingPublicKey:P,signature:f.max(512),timestamp:f.max(20)}).strict(),Vt=G(_e),Ie=R.object({id:f,nodeId:i,displayNameSnapshot:f.optional(),principalFingerprint:u,signingPublicKey:P,port:R.number().int().min(1).max(65535),ingressHost:f,responderControlHostHint:f.optional(),ephemeralPublicKey:R.string().max(512).optional(),ephemeralKeySignature:R.string().max(512).optional(),caCert:R.string().max(4096).optional(),expiresAt:R.number().int().nonnegative()}).strict(),Mt=R.object({requests:Ie.array()}).strict();import{z as e}from"zod";import{z as v}from"zod";var Te=v.enum(["active","pending","pending_tunnel","pending_verification","revoked"]),O=v.enum(["invited","joining","paired_unverified","verified","revoked"]),Q=v.enum(["unknown","endpoint_known","connecting","connected","degraded","disconnected"]),Jt=v.enum(["repair","continuity","revocation"]),Be=v.object({status:Te,endpointHost:v.string().nullable().optional(),endpointPort:v.number().int().nullable().optional(),lastHandshake:v.number().int().nullable().optional()}),Kt={invited:["unknown","endpoint_known"],joining:["unknown","endpoint_known","connecting"],paired_unverified:["unknown","endpoint_known","connecting","connected","degraded","disconnected"],verified:["unknown","endpoint_known","connecting","connected","degraded","disconnected"],revoked:["unknown","disconnected"]};function ge(t,n){return Kt[t].includes(n)}var He=v.object({identityState:O,transportState:Q}).superRefine((t,n)=>{if(!ge(t.identityState,t.transportState))n.addIssue({code:v.ZodIssueCode.custom,message:`invalid peer state combination: ${t.identityState}/${t.transportState}`})});function Ft(t){let n=Be.parse(t),a=Boolean(n.endpointHost&&n.endpointPort),d=typeof n.lastHandshake==="number"&&Number.isFinite(n.lastHandshake)&&n.lastHandshake>0,w=n.status==="pending"?"invited":n.status==="revoked"?"revoked":n.status==="active"?"verified":"paired_unverified",$=(()=>{switch(n.status){case"active":return d?"connected":a?"endpoint_known":"disconnected";case"pending_tunnel":return d?"connected":a?"connecting":"unknown";case"pending_verification":return d?"connected":a?"endpoint_known":"unknown";case"pending":return a?"endpoint_known":"unknown";case"revoked":return a?"disconnected":"unknown"}})();return He.parse({identityState:w,transportState:$})}var Gt={invited:["invited","joining","revoked"],joining:["joining","paired_unverified","revoked"],paired_unverified:["paired_unverified","verified","revoked"],verified:["verified","revoked"],revoked:["revoked"]};function Ot(t,n,a={}){if(t==="verified"&&n==="paired_unverified")return a.viaContinuity===!0;return Gt[t].includes(n)}var Qt={unknown:["unknown","endpoint_known"],endpoint_known:["endpoint_known","connecting","disconnected"],connecting:["connecting","connected","endpoint_known","disconnected"],connected:["connected","degraded","disconnected"],degraded:["degraded","connected","disconnected"],disconnected:["disconnected","endpoint_known"]};function Yt(t,n){return Qt[t].includes(n)}var qe={repair:0,continuity:1,revocation:2};function zt(t,n){return qe[t]-qe[n]}var o=e.string().trim().min(1),Ee=e.enum(["minimal","balanced","high","full"]),Y=e.array(e.string()).optional(),$t=e.array(e.custom()).optional();function Zt(t){let n=e.toJSONSchema(t);return delete n.$schema,n}var Xt=e.object({task:o,arion:o.optional(),cwd:o.optional(),history:$t,requestedModel:o.optional(),preferredTier:e.enum(["fast","balanced","powerful","ensemble"]).optional(),budget:e.number().positive().optional(),maxTurns:e.number().int().positive().optional(),autonomy:Ee.optional(),allowedTools:Y,deniedTools:Y,noMemory:e.boolean().optional(),systemPrompt:e.string().optional(),approvalMode:e.enum(["pause","approve","deny"]).optional(),askUserAnswers:e.array(e.string()).optional()}).strict(),q=e.lazy(()=>e.object({message:e.string(),name:e.string().optional(),stack:e.string().optional(),cause:q.optional()}).catchall(e.unknown()));function Ut(t){if(!t||typeof t!=="object")return;let n=t.message;if(typeof n!=="string")return;let a=n.trim();return a.length>0?a:void 0}function Wt(t){let n=t.trim().toLowerCase();return n==="internal server error"||n.startsWith("internal server error:")||n.startsWith("http 500")}function je(t,n){let a=typeof t==="string"&&t.trim().length>0?t:void 0,d=Ut(n);if(!d)return a;if(!a||Wt(a))return d;return a}function Nt(t,n){let a=je(t,n)??"Trusted runtime error";return Object.assign(Error(a),{...n===void 0?{}:{diagnostic:n},...typeof t==="string"&&t.trim().length>0&&t!==a?{publicMessage:t}:{}})}var en=e.object({success:e.boolean(),output:e.string().optional(),messages:e.array(e.unknown()).optional(),toolCalls:e.array(e.unknown()).optional(),usage:e.unknown().optional(),turnCount:e.number().int().nonnegative().optional(),thinking:e.array(e.unknown()).optional(),nativeToolResults:e.array(e.unknown()).optional(),traces:e.array(e.unknown()).optional(),pipelineTiming:e.unknown().optional(),guardrailEvents:e.array(e.unknown()).optional(),handoffs:e.array(e.unknown()).optional(),state:e.unknown().optional(),error:e.string().optional(),diagnostic:q.optional()}).strict(),tn=e.object({state:e.unknown(),arion:o.optional(),cwd:o.optional(),requestedModel:o.optional(),preferredTier:e.enum(["fast","balanced","powerful","ensemble"]).optional(),budget:e.number().positive().optional(),maxTurns:e.number().int().positive().optional(),autonomy:Ee.optional(),allowedTools:Y,deniedTools:Y,noMemory:e.boolean().optional(),systemPrompt:e.string().optional(),approvalMode:e.enum(["pause","approve","deny"]).optional(),askUserAnswers:e.array(e.string()).optional()}).strict(),nn=e.discriminatedUnion("type",[e.object({type:e.literal("text_delta"),content:e.string()}),e.object({type:e.literal("tool_start"),id:o,name:o,input:e.unknown().optional()}),e.object({type:e.literal("approval_needed"),toolName:o,toolInput:e.unknown().optional(),riskLevel:e.string().optional(),issues:e.array(e.string()).optional()}),e.object({type:e.literal("tool_result"),id:o,name:o,durationMs:e.number().nonnegative(),result:e.unknown(),input:e.unknown().optional()}),e.object({type:e.literal("usage_update"),usage:e.unknown()}),e.object({type:e.literal("turn_complete"),turnNumber:e.number().int().nonnegative()}),e.object({type:e.literal("guardrail_rejected"),stage:e.enum(["input","output"]),message:e.string()}),e.object({type:e.literal("pipeline_timing"),report:e.unknown()}),e.object({type:e.literal("messages_snapshot"),messages:e.array(e.unknown())}),e.object({type:e.literal("error"),error:e.object({message:e.string(),diagnostic:q.optional()})}),e.object({type:e.literal("native_tool_result"),metadata:e.unknown()}),e.object({type:e.literal("thinking_start")}),e.object({type:e.literal("thinking_delta"),content:e.string()}),e.object({type:e.literal("thinking_end"),blocks:e.array(e.unknown()),durationMs:e.number().nonnegative()}),e.object({type:e.literal("tool_args_delta"),id:o,args:e.string()}),e.object({type:e.literal("span_start"),spanId:o,spanType:o,name:o}),e.object({type:e.literal("span_end"),spanId:o,durationMs:e.number().nonnegative()}),e.object({type:e.literal("handoff_start"),target:o,id:o}),e.object({type:e.literal("handoff_result"),target:o,result:e.string(),id:o}),e.object({type:e.literal("paused"),state:e.unknown()})]),on=e.object(pe.shape).strict().transform((t)=>b(t)),rn=e.object({transport:T,delivered:e.boolean(),queued:e.boolean(),accepted:e.boolean().optional(),deliveryState:B.optional(),sessionState:g.optional(),deliveryReadiness:H.optional(),queuedReason:E.optional(),storedAt:e.number().int().nonnegative().optional()}).strict().transform(({storedAt:t,...n})=>({...b(n),...t!==void 0?{storedAt:t}:{}})),an=e.object({rawMessage:e.record(e.string(),e.unknown()),recipientInbox:J.optional(),to:o.optional(),content:e.string().optional(),type:o.optional(),priority:e.number().int().optional(),correlationId:e.string().optional(),metadata:e.record(e.string(),e.unknown()).optional()}).strict().superRefine((t,n)=>{if(!t.recipientInbox||t.to===void 0)return;if(t.recipientInbox.kind==="client"){n.addIssue({code:e.ZodIssueCode.custom,message:'OutboundMessage.to is a compatibility alias for node recipients only; omit it for recipientInbox.kind === "client"',path:["to"]});return}if(t.recipientInbox.nodeId!==t.to)n.addIssue({code:e.ZodIssueCode.custom,message:"OutboundMessage.recipientInbox.nodeId must match OutboundMessage.to when both are provided",path:["to"]})}),cn=e.object({afterRevision:e.number().int().nonnegative().optional()}).strict(),Ve=e.object({afterCreatedAt:e.number().int().nonnegative().optional()}).strict(),sn=e.object({cursor:Ve.optional(),limit:e.number().int().positive().max(1000).optional(),unreadOnly:e.boolean().optional()}).strict(),Rn=e.object({id:o,senderNodeId:i,senderDisplayNameSnapshot:o.optional(),senderType:o.optional(),senderClientId:e.string().nullable().optional(),recipientClientId:e.string().nullable().optional(),inboxAddress:J,type:o,content:e.string(),priority:e.number().int(),createdAt:e.number().int().nonnegative(),correlationId:e.string().nullable().optional(),replyTo:e.string().nullable().optional()}).strict(),un=e.object({nodeId:i,transportPublicKey:m,displayNameSnapshot:o.optional(),identityState:O,transportState:Q,endpointRevision:x,updatedAt:e.string(),lastSeenAt:e.string().optional()}).strict(),pn=e.object({displayNameSnapshot:o,nodeId:i,host:o,port:e.number().int().min(1).max(65535),principalFingerprint:u,version:o,tlsCaFingerprint:D.optional(),transport:e.enum(["lan","wan"]).optional(),status:e.enum(["discovered","connected"]).optional()}).strict(),te=e.object({allowedToolCategories:e.array(o).optional(),allowedShellCommands:e.array(o).optional(),maxWriteOpsPerMinute:e.number().int().positive().optional(),maxGitPushesPerHour:e.number().int().positive().optional()}).strict(),Me=e.object({status:e.enum(["running","stopped"]),intervalMs:e.number().int().positive().nullable(),lastWakeTickAt:e.string().nullable(),lastCheckpointResult:e.enum(["success","error","never"]),safetyPolicySummary:te,ownerClientKind:o.nullable()}).strict();function dn(){return{status:"stopped",intervalMs:null,lastWakeTickAt:null,lastCheckpointResult:"never",safetyPolicySummary:{},ownerClientKind:null}}var mn=e.object({nodeId:i,runtimeId:k,port:e.number().int().min(1).max(65535),attachedClients:e.number().int().nonnegative().optional(),autonomousLoop:Me.optional().default(dn())}).strict(),Pn=e.object({intervalMs:e.number().int().positive().optional(),safetyPolicy:te.optional()}).strict(),ln=e.object({id:o,nodeId:i,displayNameSnapshot:o.optional(),principalFingerprint:u}).strict(),Je=e.object({inviteId:o,inviteLabel:o.optional(),createdAt:o,expiresAt:o.nullable().optional()}).strict(),Sn=e.object({requestId:o,accepted:e.boolean()}).strict(),hn=e.object({accepted:e.boolean().optional(),inviteToken:e.string().optional(),error:e.string().optional()}).strict(),yn=e.object({inviteLabel:o.optional(),durationMs:e.number().int().min(0).optional()}).strict(),fn=e.object({inviteToken:o,pendingInvite:Je}).strict(),vn=e.object({nodeId:i,displayName:o,principalFingerprint:u.optional(),controlEndpoint:l,transportEndpoint:h.optional(),transport:e.enum(["lan","wan"]).optional()}).strict(),_o=e.enum(["pending_verification"]),kn=e.discriminatedUnion("mode",[e.object({nodeId:i,displayNameSnapshot:o.optional(),mode:e.literal("lan_direct"),pairingProofState:e.literal("pending_verification")}).strict(),e.object({nodeId:i,displayNameSnapshot:o.optional(),mode:e.literal("wan_pair"),pairingProofState:e.literal("pending_verification")}).strict()]),Ke=e.object({success:e.boolean(),nodeId:i,displayNameSnapshot:o.optional()}).strict(),Cn=e.object({inviteToken:o}).strict(),bn=Ke,xn=e.object({inviteId:o}).strict(),Ln=e.object({cancelled:e.boolean(),inviteId:o}).strict(),Fe=e.object({peerNodeId:i,principalFingerprint:u,peerDisplayName:o.optional(),peerWgPubkey:m,peerSigningPubkey:o,transportEndpoint:h,controlEndpoint:l,psk:o}).strict(),wn=Zt(Fe),An=e.object({received:e.literal(!0),pairingProofState:e.literal("pending_verification")}).strict(),Dn=e.object({nodeId:i,envelope:e.record(e.string(),e.unknown()).optional()}).strict(),_n=e.object({revoked:e.boolean(),nodeId:i,displayNameSnapshot:o.optional()}).strict(),In=e.object({nodeId:i,endpointHost:o,endpointPort:e.number().int().min(1).max(65535),endpointRevision:x}).strict(),qn=e.object({repaired:e.boolean(),nodeId:i,endpointHost:o,endpointPort:e.number().int().min(1).max(65535),endpointRevision:x}).strict(),ne=e.enum(["tui","daemon-launcher","pipe","local-api"]),Tn=e.object({clientId:A,clientKind:ne,displayLabel:o,self:e.boolean(),attachedAt:o,lastSeenAt:o}).strict(),oe=e.object({clientId:A,clientAuthToken:o}).strict(),Ge=oe,Bn=e.object({clientKind:ne,lease:e.boolean().optional(),pid:e.number().optional(),displayName:e.string().optional()}).strict(),gn=oe,Hn=e.object({clientId:A}).strict(),En=e.object({detached:e.boolean()}).strict(),Oe=e.enum(["submitRun","resumeRun","streamRun","subscribeRuntimeEvents","sendBestEffort","sendDurable","listInbox","listDirectClientInbox","listPeers","listNearbyPeers","listAttachedClients","subscribeDirectClientInbox","getRuntimeStatus","startAutonomousLoop","stopAutonomousLoop","getRuntimeBootstrap","listPendingPairRequests","respondToPairRequest","createInvite","listPendingInvites","acceptInviteToken","cancelInvite","invitePeer","acceptInvite","directPair","revokePeer","repairPeer","attachClient","detachClient","watchInbox"]),jn=new Set(["listAttachedClients","listDirectClientInbox","subscribeDirectClientInbox"]),Vn=e.object({id:o,method:Oe,payload:e.unknown().optional(),auth:Ge.optional()}).strict().superRefine((t,n)=>{if(jn.has(t.method)&&t.auth===void 0)n.addIssue({code:e.ZodIssueCode.custom,message:`Local control socket method ${t.method} requires attached-client auth`,path:["auth"]})}),Qe=e.object({id:o,ok:e.literal(!0),payload:e.unknown().optional()}).strict(),Ye=e.object({id:o,ok:e.literal(!1),error:o,reason:e.string().optional(),diagnostic:q.optional()}).strict(),Mn=e.discriminatedUnion("ok",[Qe,Ye]);import{z as C}from"zod";var _=C.string().trim().min(1),Jn=C.string().min(1).refine((t)=>t.trim().length>0),ze=C.number().int().nonnegative(),re=C.enum(["starting","tls_bound","control_ready","network_ready","mesh_ready","degraded","stopped"]),$e=C.object({host:_,port:C.number().int().min(1).max(65535)}).strict(),Ze=C.object({caFingerprint:D,caCertPem:Jn,principalIdentity:u,loopbackIdentity:Z}).strict(),Kn=C.object({signingPublicKey:P,transportPublicKey:m,transportEndpoint:h,displayNameSnapshot:_.optional()}).strict(),Fn=C.object({nodeId:i,runtimeId:k,arionName:_.optional(),ownerGeneration:M,bootstrapRevision:ze,phase:re,protocolVersion:S,controlEndpoint:$e,displayNameSnapshot:_.optional(),signingPublicKey:P,transportPublicKey:m,transportEndpoint:h,tls:Ze,publishedAt:_,degradedReason:_.optional(),failedPhase:re.optional()}).strict();function Gn(t){return t==="invited"||t==="joining"}function On(t,n){return t==="paired_unverified"&&n.proofValid}function Qn(t){return t==="joining"||t==="paired_unverified"||t==="verified"}function Yn(t){return t==="paired_unverified"||t==="verified"}function zn(t,n){if(t==="revoked")return!1;return n==="endpoint_known"||n==="connecting"||n==="connected"||n==="degraded"}function $n(t,n){return t==="verified"&&n==="connected"}function Zn(t){return t==="verified"}function Xn(t){return t.trim().toLowerCase()}function Xe(t){let n=Xn(t);return n==="localhost"||n==="::1"||n==="[::1]"||n.endsWith(".localhost")||/^127\./.test(n)}function Un(t){let n=t.endpointHost?.trim(),a=t.endpointPort;if(!n||typeof a!=="number"||!Number.isFinite(a))return{};if(Xe(n))return{};return{endpointHost:n,endpointPort:a}}class z extends Error{kind="StaleOwnerError";claimedGeneration;currentGeneration;constructor(t,n){super(`StaleOwnerError: runtime claims generation ${t} but store is at generation ${n}. This runtime has been superseded and must shut down immediately.`);this.name="StaleOwnerError",this.claimedGeneration=t,this.currentGeneration=n}}function Ue(t){t.exec(`
2
+ CREATE TABLE IF NOT EXISTS owner_epoch (
3
+ scope TEXT PRIMARY KEY DEFAULT 'runtime',
4
+ owner_generation INTEGER NOT NULL
5
+ )
6
+ `)}function Wn(t,n){if(Ue(t),t.prepare(`INSERT INTO owner_epoch (scope, owner_generation) VALUES ('runtime', ?)
7
+ ON CONFLICT(scope) DO UPDATE SET owner_generation = excluded.owner_generation
8
+ WHERE excluded.owner_generation > owner_epoch.owner_generation`).run(n).changes===0){let w=t.prepare("SELECT owner_generation FROM owner_epoch WHERE scope = 'runtime'").get()?.owner_generation??0;if(w>n)throw new z(n,w)}}function Nn(t,n){let d=t.prepare("SELECT owner_generation FROM owner_epoch WHERE scope = 'runtime'").get()?.owner_generation??0;if(d>n)throw new z(n,d)}export{i as a,k as b,ht as c,j as d,x as e,I as f,V as g,de as h,yt as i,M as j,ft as k,me as l,A as m,u as n,m as o,D as p,Z as q,P as r,h as s,J as t,l as u,X as v,vt as w,Pe as x,kt as y,Ct as z,T as A,B,g as C,H as D,E,tt as F,b as G,dt as H,mt as I,Pt as J,lt as K,St as L,U as M,he as N,K as O,F as P,S as Q,ve as R,wt as S,ke as T,At as U,W as V,Ce as W,Dt as X,_t as Y,It as Z,qt as _,Tt as $,Bt as aa,be as ba,N as ca,xe as da,Le as ea,we as fa,gt as ga,Ae as ha,Ht as ia,ee as ja,Et as ka,De as la,jt as ma,_e as na,Vt as oa,Ie as pa,Mt as qa,Te as ra,O as sa,Q as ta,Jt as ua,Be as va,ge as wa,He as xa,Ft as ya,Ot as za,Yt as Aa,zt as Ba,Xt as Ca,q as Da,je as Ea,Nt as Fa,en as Ga,tn as Ha,nn as Ia,on as Ja,rn as Ka,an as La,cn as Ma,Ve as Na,sn as Oa,Rn as Pa,un as Qa,pn as Ra,te as Sa,Me as Ta,mn as Ua,Pn as Va,ln as Wa,Je as Xa,Sn as Ya,hn as Za,yn as _a,fn as $a,vn as ab,kn as bb,Ke as cb,Cn as db,bn as eb,xn as fb,Ln as gb,Fe as hb,wn as ib,An as jb,Dn as kb,_n as lb,In as mb,qn as nb,ne as ob,Tn as pb,oe as qb,Ge as rb,Bn as sb,gn as tb,Hn as ub,En as vb,Oe as wb,Vn as xb,Qe as yb,Ye as zb,Mn as Ab,ze as Bb,re as Cb,$e as Db,Ze as Eb,Kn as Fb,Fn as Gb,Gn as Hb,On as Ib,Qn as Jb,Yn as Kb,zn as Lb,$n as Mb,Zn as Nb,Xe as Ob,Un as Pb,z as Qb,Ue as Rb,Wn as Sb,Nn as Tb};
@@ -0,0 +1,2 @@
1
+ import{sc as Y}from"./index-6qew5tp1.js";function Q(f){if(typeof f!=="object"||f===null)return!1;let m=f;return typeof m.address==="string"&&(m.family===4||m.family===6)}function W(f){if(Array.isArray(f))return f.filter(Q).map((m)=>({address:m.address,family:m.family}));if(Q(f))return[{address:f.address,family:f.family}];return[]}import*as Z from"node:dns";import*as $ from"node:net";var C=5;function D(f){try{let m=new URL(f);if(m.protocol!=="http:"&&m.protocol!=="https:")return`Invalid URL protocol: ${m.protocol}. Only http: and https: are allowed.`}catch{return`Invalid URL format: ${f}`}return null}function j(f){if(f.startsWith("::ffff:"))return j(f.slice(7));if(f==="0.0.0.0"||f==="::"||f==="[::]")return!0;if(f==="::1")return!0;if(/^f[cd]/i.test(f))return!0;if(/^fe[89ab]/i.test(f))return!0;if($.isIPv4(f)){let m=f.split(".").map(Number),k=m[0],w=m[1];if(k===127)return!0;if(k===10)return!0;if(k===172&&w>=16&&w<=31)return!0;if(k===192&&w===168)return!0;if(k===169&&w===254)return!0;if(k===0)return!0;if(k===100&&w>=64&&w<=127)return!0;if(k===192&&w===0&&m[2]===0)return!0;if(k===198&&(w===18||w===19))return!0;if(k>=240)return!0}return!1}async function O(f){let m=D(f);if(m)return m;let k=new URL(f);try{let w=await Z.promises.lookup(k.hostname,{all:!0,verbatim:!0}),N=W(w).map((y)=>y.address);if(N.length===0)return`DNS resolution failed for ${k.hostname}: no addresses returned`;let z=N.find((y)=>j(y));if(z)return`Access to private network address denied: ${k.hostname} resolved to ${z}`}catch(w){return`DNS resolution failed for ${k.hostname}: ${Y(w)}`}return null}async function J(f){let m=f?.body;if(!m||m.locked)return;try{await m.cancel()}catch{}}async function g(f,m,k={}){let w=k.maxHops??C,N=k.fetchFn??fetch,z=k.validateRedirectUrl??O,y=f,x=y.url||k.baseUrl||"",G=0;while(G<w&&y.status>=300&&y.status<400){let L=y.headers.get("Location");if(!L)break;let A;try{if(x)A=new URL(L,x).toString();else A=new URL(L).toString()}catch{throw await J(y),Error(`Invalid redirect URL: ${L}`)}let K=await z(A);if(K)throw await J(y),Error(`Redirect blocked (hop ${G+1}): ${K}`);await J(y),y=await N(A,{...m,redirect:"manual"}),x=y.url||A,G++}return y}
2
+ export{W as kc,D as lc,j as mc,J as nc,g as oc};
@@ -0,0 +1,4 @@
1
+ import{pc as _,qc as X,sc as M}from"./index-6qew5tp1.js";import{uc as Wq}from"./index-a2fr1b3x.js";import*as a from"node-pty";import{spawn as m}from"node:child_process";import{constants as l}from"node:os";var r=new Set(["ls","cat","head","tail","wc","file","stat","grep","rg","find","which","whereis","echo","date","whoami","pwd","printenv","uname","hostname"]),n=["git stash list","git status","git log","git diff","git show","git blame","git branch","git remote","git tag","node --version","npm --version","pnpm --version","python --version","pnpm list","npm list"],s=[/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\/(?:\s|$)/,/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\/\*(?:\s|$)/,/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\.(?:\s|$)/,/rm\s+(?:--?[A-Za-z0-9-]+\s+)*~(?:[a-zA-Z]\w*)?(?:\/\*)?(?:\s|$)/,/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\$HOME\b/,/rm\s+(?:--?[A-Za-z0-9-]+\s+)*\*(?:\s|$)/,/>\s*\/dev\/(?:sd[a-z]|nvme\d+|vd[a-z])\b/,/mkfs/,/dd\s+.*(?:if=|of=)/,/chmod\s+(?:-R\s+)?777\b/,/curl[\s\S]*\|\s*(ba)?sh/,/wget[\s\S]*\|\s*(ba)?sh/,/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*eval\b/,/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*shutdown\b/,/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*reboot\b/,/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*halt\b/,/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*init\s+0\b/,/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*systemctl\s+(?:poweroff|halt|reboot)\b/,/(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*kill\s+(?:-\d+\s+|-[A-Z]+\s+)*\b1\b/,/:\(\)\{\s*:\|:&\s*\};:/,/\bsudo\b/,/git\s+push\s+.*--force(?!-with-lease)\b/,/git\s+push(?:\s+-[A-Za-z]*f[A-Za-z]*\b|\s+.*\s-[A-Za-z]*f[A-Za-z]*\b)/,/git\s+reset\s+--hard/];function y(q){let J=v(q),Z=i(J);return s.some(($)=>$.test(Z))}function v(q){let J=/<<-?\s*(?:'([^']+)'|"([^"]+)"|(\w+))/g,Z=q,$,U=[];while(($=J.exec(q))!==null){let W=$[1]??$[2]??$[3]??"";if(!W)continue;let Q=q.indexOf(`
2
+ `,$.index);if(Q===-1)continue;let F=Q+1,H=new RegExp(`^\\s*${W.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*$`,"m"),K=q.slice(F),j=H.exec(K);if(!j)continue;let L=F+j.index;U.push({delimiter:W,bodyStart:F,bodyEnd:L})}for(let W=U.length-1;W>=0;W--){let{bodyStart:Q,bodyEnd:F}=U[W],H=Z.slice(Q,F);Z=Z.slice(0,Q)+H.replace(/[^\n]/g," ")+Z.slice(F)}return Z}function i(q){let J="",Z=!1,$=!1,U=!1;for(let W=0;W<q.length;W++){let Q=q[W];if(Z){if(Q==="'")Z=!1,J+=" ";else J+=" ";continue}if($){if(U){U=!1,J+=" ";continue}if(Q==="\\"){U=!0,J+=" ";continue}if(Q==='"')$=!1,J+=" ";else J+=" ";continue}if(Q==="'"){Z=!0,J+=" ";continue}if(Q==='"'){$=!0,J+=" ";continue}J+=Q}return J}function x(q){let J=q.lastIndexOf("/");return J===-1?q:q.slice(J+1)}function t(q){let J=!1,Z=!1,$=!1;for(let U=0;U<q.length;U++){let W=q[U],Q=q[U+1];if(J){if(W==="'")J=!1;continue}if(Z){if($){$=!1;continue}if(W==="\\"){$=!0;continue}if(W==='"'){Z=!1;continue}if(W==="`"||W==="$"&&Q==="(")return!0;continue}if($){$=!1;continue}if(W==="\\"){$=!0;continue}if(W==="'"){J=!0;continue}if(W==='"'){Z=!0;continue}if(W==="`"||W==="$"&&Q==="(")return!0}return!1}function e(q){let J=[],Z="",$=!1,U=!1,W=!1;for(let Q=0;Q<q.length;Q++){let F=q[Q],H=q[Q+1];if($){if(Z+=F,F==="'")$=!1;continue}if(U){if(Z+=F,W){W=!1;continue}if(F==="\\"){W=!0;continue}if(F==='"')U=!1;continue}if(W){Z+=F,W=!1;continue}if(F==="\\"){Z+=F,W=!0;continue}if(F==="'"){Z+=F,$=!0;continue}if(F==='"'){Z+=F,U=!0;continue}if(F===";"||F===`
3
+ `||F==="\r"||F==="&"&&H==="&"||F==="|"&&H==="|"){if(J.push(Z.trim()),Z="",(F==="&"||F==="|")&&H===F)Q+=1;continue}Z+=F}return J.push(Z.trim()),J}function qq(q){let J=[],Z="",$=!1,U=!1,W=!1;for(let Q=0;Q<q.length;Q++){let F=q[Q],H=q[Q+1],K=Q>0?q[Q-1]:"";if($){if(Z+=F,F==="'")$=!1;continue}if(U){if(Z+=F,W){W=!1;continue}if(F==="\\"){W=!0;continue}if(F==='"')U=!1;continue}if(W){Z+=F,W=!1;continue}if(F==="\\"){Z+=F,W=!0;continue}if(F==="'"){Z+=F,$=!0;continue}if(F==='"'){Z+=F,U=!0;continue}if(F==="|"&&H!=="|"&&K!=="|"){J.push(Z.trim()),Z="";continue}Z+=F}return J.push(Z.trim()),J}var Jq=/(?:>>|(?:^|[^2])>(?!&)|2>(?!&)|&>)/;function Zq(q){let J=q.trim();if(J==="")return!1;if(Jq.test(J))return!1;for(let $ of n)if(J===$||J.startsWith($+" "))return!0;let Z=J.split(/\s+/)[0]??"";return r.has(x(Z))}function C(q){let J=q.trim();if(J==="")return"moderate";let Z=v(J);if(y(Z))return"blocked";if(t(Z))return"moderate";let $=e(Z);for(let Q of $)if(y(Q))return"blocked";let U=[];for(let Q of $){let F=qq(Q);for(let H of F){if(y(H))return"blocked";U.push(H)}}if(/^[A-Za-z_]\w*=/.test(J))return"moderate";let W=U.filter((Q)=>Q.trim()!=="");if(W.length>0&&W.every(Zq))return"safe";return"moderate"}var $q=new Set(["sh","bash","zsh","ksh","dash","ash","fish"]);function S(q,J=[]){let Z=x(q).toLowerCase();if($q.has(Z)&&J[0]==="-c"&&typeof J[1]==="string")return C(J[1]);return C([q,...J].join(" "))}var u=new Set(["LD_PRELOAD","LD_LIBRARY_PATH","DYLD_INSERT_LIBRARIES","DYLD_FRAMEWORK_PATH","DYLD_LIBRARY_PATH","BASH_ENV","ENV","CDPATH","GLOBIGNORE","PROMPT_COMMAND","SHELLOPTS","BASHOPTS","GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_PREFIX","GIT_INTERNAL_SUPER_PREFIX","GIT_CONFIG","GIT_CONFIG_GLOBAL","GIT_CONFIG_SYSTEM","GIT_CONFIG_COUNT","GIT_CEILING_DIRECTORIES"]),Fq=new Set(["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_INDEX_VERSION","GIT_COMMON_DIR","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_CEILING_DIRECTORIES","GIT_DISCOVERY_ACROSS_FILESYSTEM","GIT_NAMESPACE","GIT_CONFIG","GIT_CONFIG_GLOBAL","GIT_CONFIG_SYSTEM","GIT_CONFIG_NOSYSTEM","GIT_CONFIG_COUNT","GIT_CONFIG_PARAMETERS"]),Qq=["GIT_CONFIG_KEY_","GIT_CONFIG_VALUE_","GIT_AUTHOR_","GIT_COMMITTER_"];function f(q){let J=q.toUpperCase();if(Fq.has(J))return!0;return Qq.some((Z)=>J.startsWith(Z))}function Cq(q=process.env){let J={};for(let[Z,$]of Object.entries(q)){if($===void 0)continue;if(f(Z))continue;J[Z]=$}return J}var Uq=new Set([...u,"PATH","NODE_OPTIONS","NODE_PATH","PYTHONPATH","IFS","HOME","SHELL","EDITOR","VISUAL","JAVA_TOOL_OPTIONS","_JAVA_OPTIONS","CLASSPATH","RUBYOPT","GEM_HOME","GEM_PATH","PERL5OPT","PERL5LIB","PYTHONSTARTUP"]);function d(q){return u.has(q.toUpperCase())||f(q)}function w(q){return Uq.has(q.toUpperCase())||f(q)}function R(q,J){let Z=J;if(J){Z={};for(let[W,Q]of Object.entries(J)){if(w(W))continue;Z[W]=Q}}let $=q.env;if(q.env){$={};for(let[W,Q]of Object.entries(q.env)){if(w(W))continue;$[W]=Q}}let U={};for(let[W,Q]of Object.entries(process.env)){if(Q===void 0)continue;if(d(W))continue;U[W]=Q}return{...U,...$,...Z}}function p(q){let J={};for(let[$,U]of Object.entries(process.env)){if(U===void 0)continue;if(d($))continue;J[$]=U}let Z;if(q){Z={};for(let[$,U]of Object.entries(q)){if(w($))continue;Z[$]=U}}return{...J,...Z}}async function Rq(q,J){if(C(q.command)==="blocked")return X(`Command blocked by shell safety policy: ${q.command}`);if(J.abortSignal?.aborted)return X("Command cancelled");let $=q.cwd??J.workingDir,U=R(J,q.env),W=q.timeout??120000;return Hq({program:"/bin/bash",args:["-lc",q.command],cwd:$,env:q.env,timeout:W},{...J,workingDir:$,env:U})}function G(q,J,Z){if(!q)return;if(Z)try{process.kill(-q,J);return}catch{}try{process.kill(q,J)}catch{}}function I(q,J){if(!q)return!1;if(J)try{return process.kill(-q,0),!0}catch{}try{return process.kill(q,0),!0}catch{return!1}}async function Xq(q,J,Z=1000){if(!q)return;let $=Date.now()+Z;while(Date.now()<$){if(!I(q,J))return;await new Promise((U)=>setTimeout(U,25))}}async function Hq(q,J){let Z=q.args??[],$=[q.program,...Z].join(" ");if(S(q.program,Z)==="blocked")return X(`Command blocked by shell safety policy: ${$}`,{stdout:"",stderr:"",exitCode:1});if(J.abortSignal?.aborted)return X("Command cancelled",{stdout:"",stderr:"",exitCode:1});let W=q.cwd??J.workingDir,Q=R(J,q.env),F=q.timeout??120000;return new Promise((H)=>{let K=process.platform!=="win32",j=m(q.program,Z,{cwd:W,env:Q,detached:K});if(j.pid&&J.processRegistry)J.processRegistry.add(j.pid,{command:q.program,args:Z,cwd:W,interactive:!1});let L="",z="",B=!1,Y=!1,h=!1,k,D,A=(O,V)=>{if(h)return;if(h=!0,k)clearTimeout(k);if(D)clearTimeout(D);if(J.abortSignal&&b)J.abortSignal.removeEventListener("abort",b);if(J.processRegistry?.recordExitMetadata?.(j.pid??0,V),j.pid&&J.processRegistry&&!(K&&I(j.pid,K)))J.processRegistry.remove(j.pid,V);H(O)},b;if(J.abortSignal)b=()=>{Y=!0,G(j.pid,"SIGTERM",K),D=setTimeout(()=>{G(j.pid,"SIGKILL",K)},1000)},J.abortSignal.addEventListener("abort",b,{once:!0});if(F)k=setTimeout(()=>{B=!0,G(j.pid,"SIGTERM",K),D=setTimeout(()=>{G(j.pid,"SIGKILL",K)},1000)},F);j.stdout?.on("data",(O)=>{L+=O.toString()}),j.stderr?.on("data",(O)=>{z+=O.toString()}),j.on("error",(O)=>{let V=typeof O==="object"&&O&&"code"in O&&O.code==="ENOENT"?127:1;A(X(M(O),{stdout:"",stderr:z,exitCode:V}))}),j.on("close",(O,V)=>{(async()=>{if(Y||B){if(D)clearTimeout(D),D=void 0;G(j.pid,"SIGKILL",K),await Xq(j.pid,K)}if(Y){A(X("Command cancelled",{stdout:L,stderr:z,exitCode:O??1}),{exitCode:O,signal:V});return}if(B){A(X("Command timed out",{stdout:L,stderr:z,exitCode:O??1}),{exitCode:O,signal:V});return}if(V){let c=l.signals[V]??1;A(X(`Command exited due to signal ${V}`,{stdout:L,stderr:z,exitCode:O??c}),{exitCode:O,signal:V});return}let N=O??0;if(N===0)A(_("Command executed successfully",{stdout:L,stderr:z,exitCode:N}),{exitCode:N,signal:V});else A(X(`Command exited with code ${N}`,{stdout:L,stderr:z,exitCode:N}),{exitCode:N,signal:V})})()})})}async function Tq(q,J){let Z=q.args??[],$=[q.program,...Z].join(" ");if(S(q.program,Z)==="blocked")return X(`Command blocked by shell safety policy: ${$}`);if(J.abortSignal?.aborted)return X("Command cancelled");if(q.interactive===!0){if(!J.ptySessionStore)return X("PTY session store not available — interactive mode requires runner wiring");let{createPTYSession:F}=await import("./pty-ff59hy75.js"),H=await F({command:q.program,args:q.args,cwd:q.cwd??J.workingDir,env:R(J,q.env)}),K=H.pid;if(!K)return H.close(),X("Failed to start interactive session: no PID");if(J.ptySessionStore.add(K,H),J.processRegistry)J.processRegistry.add(K,{command:q.program,args:q.args??[],cwd:q.cwd??J.workingDir,interactive:!0});let j=()=>{if(J.ptySessionStore?.remove(K),J.processRegistry?.has(K))J.processRegistry.remove(K,{exitCode:H.exitCode??null})};if(!H.isRunning)j();else{let L=setInterval(()=>{if(!H.isRunning)clearInterval(L),j()},50);if(L.unref?.(),J.abortSignal){let z=()=>{clearInterval(L),H.close(),j()};J.abortSignal.addEventListener("abort",z,{once:!0})}}return _(`Started interactive session with PID ${K}`,{pid:K})}let W=q.cwd??J.workingDir,Q=R(J,q.env);return new Promise((F)=>{let H=!1,K,j=(z)=>{if(H)return;if(H=!0,K)clearTimeout(K);F(z)},L;if(J.abortSignal)J.abortSignal.addEventListener("abort",()=>{if(L)try{process.kill(-L,"SIGTERM")}catch{try{process.kill(L,"SIGTERM")}catch{}}},{once:!0});try{let z=m(q.program,Z,{cwd:W,env:Q,detached:!0,stdio:"ignore"});if(z.on("error",(B)=>{j(X(M(B)))}),z.pid){if(L=z.pid,z.on("exit",(B,Y)=>{if(J.processRegistry?.recordExitMetadata?.(z.pid,{exitCode:B,signal:Y}),J.processRegistry&&!I(z.pid,!0))J.processRegistry.remove(z.pid,{exitCode:B,signal:Y})}),J.processRegistry)J.processRegistry.add(z.pid,{command:q.program,args:Z,cwd:W,interactive:!1});z.unref(),j(_(`Spawned process with PID ${z.pid}`,{pid:z.pid}))}else K=setTimeout(()=>{j(X("Failed to spawn process: no PID returned"))},100)}catch(z){j(X(M(z)))}})}async function Pq(q,J){let Z=q.signal??"SIGTERM";try{let $=zq(Z);if($===void 0)return X(`Invalid signal: ${Z}`);if(J.processRegistry?.has(q.pid))Oq(q.pid,$);else process.kill(q.pid,$);let U=J.processRegistry;if(U?.waitForExit&&Lq($))await U.waitForExit(q.pid,2000);let W=typeof $==="number"?Z:$;return _(`Sent ${W} to process ${q.pid}`,{pid:q.pid,signal:W})}catch($){if($ instanceof Error&&"code"in $){let U=$;if(U.code==="ESRCH")return X(`Process not found: ${q.pid}`);if(U.code==="EPERM")return X(`Permission denied to kill process: ${q.pid}`)}return X(M($))}}var Kq=["SIGHUP","SIGINT","SIGQUIT","SIGILL","SIGTRAP","SIGABRT","SIGBUS","SIGFPE","SIGKILL","SIGUSR1","SIGSEGV","SIGUSR2","SIGPIPE","SIGALRM","SIGTERM","SIGSTKFLT","SIGCHLD","SIGCONT","SIGSTOP","SIGTSTP","SIGTTIN","SIGTTOU","SIGURG","SIGXCPU","SIGXFSZ","SIGVTALRM","SIGPROF","SIGWINCH","SIGIO","SIGPWR","SIGSYS"],g=new Set(["SIGCHLD","SIGCONT","SIGSTOP","SIGTSTP","SIGTTIN","SIGTTOU","SIGURG","SIGWINCH"]);function jq(q){return Kq.includes(q.toUpperCase())}function zq(q){if(/^\d+$/.test(q)){let Z=parseInt(q,10);if(Z>=1&&Z<=31)return Z;return}let J=q.toUpperCase();if(jq(J))return J;return}function Lq(q){if(typeof q==="number"){let J=Vq(q);if(!J)return!1;return!g.has(J)}return!g.has(q)}function Oq(q,J){try{if(q>0){process.kill(-q,J);return}}catch{}process.kill(q,J)}function Vq(q){for(let[J,Z]of Object.entries(l.signals))if(Z===q)return J;return}function Bq(q){return typeof q.getAll==="function"}async function kq(q,J){let Z=o(q),$=typeof Z?.includeExited==="boolean"?Z.includeExited:!1;if(!J.processRegistry)return X("Process registry not available");let U=J.processRegistry,W=typeof U.listProcesses==="function"?U.listProcesses({includeExited:$}):Bq(U)?U.getAll().map((Q)=>({pid:Q,command:null,args:[],cwd:null,interactive:!1,startedAt:new Date().toISOString(),runtimeMs:0,status:"running",exitCode:null,signal:null,endedAt:null})):[];return _(`Found ${W.length} tracked process${W.length===1?"":"es"}`,{processes:W,count:W.length})}async function yq(q,J){let Z=o(q);if(!Z)return X("Invalid input: expected an object");let $=typeof Z.pid==="number"?Z.pid:NaN;if(!$||$<=0||!Number.isInteger($))return X("Invalid PID: must be a positive integer");if($===process.pid)return X("Cannot wait on own process");let U=Z.timeoutMs;if(U!==void 0&&(typeof U!=="number"||Number.isNaN(U)))return X("Invalid timeoutMs: must be a number");let W=Z.timeout;if(W!==void 0&&(typeof W!=="number"||Number.isNaN(W)))return X("Invalid timeout: must be a number");let Q=Math.min(Math.max(0,U??W??30000),300000);if(!J.processRegistry)return X("Process registry not available");if(typeof J.processRegistry.waitForExit!=="function")return X("Process registry does not support waiting");let F=Date.now(),H=await J.processRegistry.waitForExit($,Q),K=Math.max(0,Date.now()-F);if(H.status==="not_found"||!H.process)return X(`Process not tracked: ${$}`,{pid:$,exited:!1,status:"not_found",timedOut:!1,waitedMs:K});let j=Yq(H,K);if(H.status==="running"||H.timedOut)return X(`Timed out waiting for process ${$}`,j);return _(`Process ${$} exited`,j)}function Yq(q,J){let Z=q.process,$=q.status==="exited"?"exited":"running";return{pid:q.pid,status:$,exited:$==="exited",timedOut:q.timedOut,waitedMs:J,command:Z.command,args:Z.args,cwd:Z.cwd,interactive:Z.interactive,startedAt:Z.startedAt,endedAt:Z.endedAt,runtimeMs:Z.runtimeMs,exitCode:Z.exitCode,signal:Z.signal}}function o(q){if(!q||typeof q!=="object")return;return q}async function Sq(q,J){if(!q||typeof q!=="object")return X("Invalid input: expected an object");let Z=q,$=typeof Z.pid==="number"?Z.pid:NaN,U=typeof Z.input==="string"?Z.input:void 0,W=typeof Z.timeout==="number"?Z.timeout:void 0;if(!$||$<=0||!Number.isInteger($))return X("Invalid PID: must be a positive integer");if($===process.pid)return X("Cannot write to own process");if(U===void 0)return X("Input must be a string");if(!J.ptySessionStore)return X("PTY session store not available");if(!J.ptySessionStore.has($))return X(`No interactive session found for PID ${$}. Use spawn with interactive=true first.`);let Q=J.ptySessionStore.get($);if(!Q)return X(`No interactive session found for PID ${$}. Use spawn with interactive=true first.`);if(!Q.isRunning)return X(`Process ${$} has exited (code: ${Q.exitCode??"unknown"})`);try{let F=Q.output.length;if(Q.write(U),W&&W>0){let L=Math.min(W,30000),z=Date.now()+L,B=50;while(Date.now()<z){if(await new Promise((Y)=>setTimeout(Y,50)),Q.output.length>F)break;if(!Q.isRunning)break}}let K=Q.output.slice(F),j=K.length>1e4?K.slice(-1e4):K;return _(`Wrote ${U.length} bytes to PID ${$}`,{output:j})}catch(F){let H=F instanceof Error?F.message:String(F);return X(`Failed to write to PID ${$}: ${H}`)}}class E extends Error{output;constructor(q,J){super(q);this.output=J;this.name="PTYTimeoutError"}}class T extends Error{output;constructor(q,J){super(q);this.output=J;this.name="PTYError"}}class P{static MAX_OUTPUT=10485760;_output="";_isRunning=!0;_exitCode;_exitPromise;_exitResolve;_pty;_dataDisposable;_exitDisposable;constructor(q){this._pty=q,this._exitPromise=new Promise((J)=>{this._exitResolve=J}),this._dataDisposable=q.onData((J)=>{if(this._output+=J,this._output.length>P.MAX_OUTPUT)this._output=this._output.slice(-P.MAX_OUTPUT)}),this._exitDisposable=q.onExit(({exitCode:J})=>{this._isRunning=!1,this._exitCode=J,this._exitResolve(J)})}write(q){if(!this._isRunning)throw new T("Cannot write to a closed PTY session");this._pty.write(q)}resize(q,J){if(!this._isRunning)throw new T("Cannot resize a closed PTY session");this._pty.resize(q,J)}async waitFor(q,J=5000){let Z=Date.now(),$=typeof q==="string"?new RegExp(Dq(q)):q;if($.test(this._output))return this._output;return new Promise((U,W)=>{let Q,F,H=()=>{if(Q)clearInterval(Q);if(F)clearTimeout(F)},K=()=>{if($.test(this._output))return H(),U(this._output),!0;if(!this._isRunning)return H(),W(new T(`Process exited before pattern was found: ${q}`,this._output)),!0;return!1};if(K())return;Q=setInterval(()=>{K()},10),F=setTimeout(()=>{H();let j=Date.now()-Z;W(new E(`Timeout (${j}ms) waiting for pattern: ${q}`,this._output))},J)})}async waitForExit(q=30000){if(!this._isRunning)return this._output;return new Promise((J,Z)=>{let $;$=setTimeout(()=>{Z(new E(`Timeout (${q}ms) waiting for process to exit`,this._output))},q),this._exitPromise.then(()=>{if($)clearTimeout($);J(this._output)}).catch(Z)})}kill(q){if(!this._isRunning)return;try{this._pty.kill(q)}catch{}}close(){if(this._isRunning)this.kill("SIGKILL"),this._isRunning=!1,this._exitResolve(-1);this._dataDisposable.dispose(),this._exitDisposable.dispose()}get output(){return this._output}get isRunning(){return this._isRunning}get pid(){return this._pty.pid}get exitCode(){return this._exitCode}get cols(){return this._pty.cols}get rows(){return this._pty.rows}}async function _q(q){let $=a.spawn(q.command,q.args??[],{name:"xterm-256color",cols:q.cols??80,rows:q.rows??24,cwd:q.cwd??process.cwd(),env:{...p(q.env),TERM:"xterm-256color"}});return new P($)}async function Iq(q){let{timeoutMs:J=30000,...Z}=q,$=await _q(Z);try{return{output:await $.waitForExit(J),exitCode:$.exitCode??0}}finally{$.close()}}function Dq(q){return q.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}
4
+ export{s as Ub,C as Vb,E as Wb,T as Xb,P as Yb,_q as Zb,Iq as _b,Cq as $b,p as ac,Rq as bc,Hq as cc,Tq as dc,Pq as ec,kq as fc,yq as gc,Sq as hc};