grix-connector 3.26.13 → 3.27.0

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 (29) hide show
  1. package/dist/adapter/claude/claude-bridge-server.js +1 -1
  2. package/dist/adapter/claude/claude-tools.js +1 -1
  3. package/dist/adapter/claude/claude-worker-client.js +1 -1
  4. package/dist/adapter/claude/mcp-http-launcher.js +2 -2
  5. package/dist/adapter/claude/result-timeout.js +1 -1
  6. package/dist/adapter/deepseek-harness/catalog-cache.js +1 -0
  7. package/dist/adapter/deepseek-harness/event-mapper.js +1 -1
  8. package/dist/adapter/deepseek-harness/index.js +1 -1
  9. package/dist/adapter/deepseek-harness/jsonrpc-adapter.js +2 -2
  10. package/dist/adapter/deepseek-harness/runtime-ensure.js +1 -0
  11. package/dist/adapter/deepseek-harness/toolbar-state.js +1 -1
  12. package/dist/adapter/deepseek-harness/usage.js +1 -1
  13. package/dist/assets/dsh-bridge/grix-dsh-bridge-3.27.0.tgz +0 -0
  14. package/dist/assets/dsh-bridge/manifest.json +6 -6
  15. package/dist/audit/adapters/deepseek-harness/deepseek-harness-audit-adapter.js +2 -2
  16. package/dist/bridge/bridge.js +7 -7
  17. package/dist/core/access/allowlist-store.js +1 -1
  18. package/dist/core/aibot/binding-card-meta-cache.js +1 -1
  19. package/dist/core/file-ops/list-files.js +1 -1
  20. package/dist/core/persistence/session-binding-store.js +1 -1
  21. package/dist/log.js +2 -2
  22. package/dist/mcp/stream-http/config.js +1 -1
  23. package/dist/mcp/stream-http/connection-binding.js +1 -1
  24. package/dist/mcp/stream-http/security.js +1 -1
  25. package/dist/mcp/stream-http/tool-executor.js +1 -1
  26. package/dist/mcp/stream-http/tool-registry.js +1 -1
  27. package/dist/mcp/stream-http/tool-schemas.js +1 -1
  28. package/package.json +1 -1
  29. package/dist/assets/dsh-bridge/grix-dsh-bridge-3.26.13.tgz +0 -0
@@ -1,2 +1,2 @@
1
- import{closeSync as M,openSync as P,readSync as $}from"node:fs";import{referenceCaptureContent as z}from"../../core/content-reference.js";import{appendUniqueReference as x,assessToolCallCompleteness as B,deduplicateGaps as E}from"../../core/tool-call-audit.js";import{mapDshSessionEvent as U,unwrapDshSessionEvent as F}from"../../../adapter/deepseek-harness/event-mapper.js";import{normalizeDshUsage as H}from"../../../adapter/deepseek-harness/usage.js";const b=Object.freeze({inputOutput:!0,tools:!0,subagents:!0,thinking:!0,rawProviderBody:!1});function O(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function L(e){return e.options?.enabled===!0?e.options.capture:b}function N(e,t){return Number.isFinite(e)?new Date(e).toISOString():t}function D(e){if(typeof e=="string")return e;try{const t=JSON.stringify(e);return t===void 0?"null":t}catch{return String(e)}}function S(e,t){if(t.value!==void 0)return e.push(t),z(t)}class Y{provider="deepseek-harness";async collect(t){const c=String(t.boundary.wirePath??""),i=Number(t.boundary.wireStartOffset??0),s=Number(t.boundary.wireEndOffset??i);if(!c||!Number.isSafeInteger(i)||!Number.isSafeInteger(s)||s<i||s-i>32*1024*1024)return[];let a;try{a=P(c,"r")}catch{return[]}try{const p=Buffer.alloc(s-i),d=$(a,p,0,p.length,i);return p.subarray(0,d).toString("utf8").split(`
2
- `).flatMap(r=>{if(!r.trim())return[];try{return[JSON.parse(r)]}catch{return[]}})}finally{M(a)}}async normalize(t,c){const i=Array.isArray(c)?c:[],s=L(t),a=[],p=[],d=new Map,r=`deepseek-harness:${t.turnId}:turn`,l=[J(t,r)],_=l[0];let u=1,A,g;const R=String(t.boundary.rootSessionId??"");s.inputOutput&&t.input&&x(_.inputRefs,S(a,{...t.input,captureLevel:t.input.captureLevel??"runtime_exact"})),s.inputOutput&&t.finalOutput&&x(_.outputRefs,S(a,{...t.finalOutput,captureLevel:t.finalOutput.captureLevel??"runtime_exact"}));for(const f of i){const v=f.frame??{},k=String(v.method??"");if(f.direction==="out"&&k==="session/prompt"){if(s.inputOutput){const o=O(v.params)?v.params:{},h=(Array.isArray(o.contentBlocks)?o.contentBlocks:[]).map(y=>O(y)?y:{}).filter(y=>y.type==="text").map(y=>String(y.text??"")).join("");x(_.inputRefs,S(a,{role:"user_input",format:"text",value:h,captureLevel:"runtime_exact"}))}continue}if(f.direction!=="in")continue;if(k==="subagent.started"||k==="subagent.finished"){const o=O(v.params)?v.params:{},m=String(o.childSessionId??o.sessionId??u);l.push(C(t,r,u++,"subagent",k,f.at,{nativeId:m})),k==="subagent.finished"&&s.subagents&&o.lastAssistantMessage!==void 0&&S(a,{role:"subagent_result",format:"text",value:String(o.lastAssistantMessage),captureLevel:"runtime_exact"});continue}if(k==="session.status"){const o=O(v.params)?v.params:{};l.push(C(t,r,u++,"agent",`session.status:${String(o.status??"unknown")}`,f.at,{nativeId:String(o.sessionId??u)}));continue}if(k!=="session.event")continue;const I=F(v.params);if(!I)continue;const n=U(I),T=String(I.sessionId??""),w=!!T&&!!R&&T!==R,q=N(f.at,t.startedAt);if(n.kind==="thinking"){s.thinking&&n.text&&S(a,{role:"thinking",format:"text",value:n.text,captureLevel:"runtime_exact"});continue}if(n.kind==="context"){const o=String(n.payload?.provider??""),m=String(n.payload?.model??"");o&&(g=o),m&&(A=m);continue}if(n.kind!=="usage"){if(n.kind==="text"&&n.payload?.committed){s.inputOutput&&!w&&n.text?x(_.outputRefs,S(a,{role:"assistant_text",format:"text",value:n.text,captureLevel:"runtime_exact"})):s.subagents&&w&&n.text&&S(a,{role:"subagent_result",format:"text",value:n.text,captureLevel:"runtime_exact"}),n.usage&&l.push(G(t,r,u++,f.at,n.usage,Number(I.seq??u),A,g));continue}if(n.kind==="tool_call"){const o=n.callId||String(u),m=n.name||"tool",h=C(t,r,u++,"tool_call",m,f.at,{nativeId:o,toolCallId:o});h.status="running",s.tools&&x(h.inputRefs,S(a,{role:"tool_arguments",format:typeof n.input=="string"?"text":"json",value:D(n.input??{}),captureLevel:"runtime_exact"})),d.set(o,{span:h}),l.push(h);continue}if(n.kind==="tool_result"){const o=n.callId||"",m=o?d.get(o):void 0;if(!m){p.push({code:"dsh_tool_result_without_call",message:`No tool/call found for ${o||`seq-${I.seq??u}`}`,providerIds:o?{toolCallId:o}:void 0});continue}m.span.status="completed",m.span.endedAt=q;const h=Date.parse(m.span.startedAt),y=Date.parse(q);Number.isFinite(h)&&Number.isFinite(y)&&(m.span.durationMs=Math.max(0,y-h)),s.tools&&x(m.span.outputRefs,S(a,{role:"tool_result",format:typeof n.output=="string"?"text":"json",value:D(n.output??""),captureLevel:"runtime_exact"}));continue}if(n.kind==="compaction"){l.push(C(t,r,u++,"compaction",String(n.payload?.eventType??I.type),f.at,{nativeId:String(I.seq??u)}));continue}(n.kind==="todo"||n.kind==="turn_end")&&l.push(C(t,r,u++,"agent",n.kind==="todo"?"todo/write":`turn/end:${n.reason??"completed"}`,f.at,{nativeId:String(I.seq??u)}))}}for(const[f,v]of d)v.span.status==="running"&&p.push({code:"dsh_tool_result_missing",message:`Tool call ${f} has no result`,spanId:v.span.spanId,providerIds:{toolCallId:f}});return{spans:l,contents:a,anomalies:p,capture:s,recordCount:i.length}}async correlate(t,c){return c}validate(t,c){const i=c,s=i.capture??L(t),a=i.spans.filter(g=>g.kind==="llm_request"),p=i.spans.filter(g=>g.kind==="tool_call"),d=!s.inputOutput||!!t.input||i.contents.some(g=>g.role==="user_input"),r=!s.inputOutput||!!t.finalOutput||i.contents.some(g=>g.role==="assistant_text"),l=B(p,s.tools),_=a.length>0&&a.every(g=>g.usage?.completeness==="complete"),u=E([...l.gaps]);s.rawProviderBody&&u.push({category:"raw_provider_body",reason:"raw_capture_disabled",detail:"Harness JSON-RPC does not expose provider HTTP raw bodies"});const A=d&&r&&l.complete&&_&&!s.rawProviderBody&&u.length===0;return{status:i.recordCount===0?"metadata_only":A?"complete":"partial",inputComplete:d,outputComplete:r,toolCallsComplete:l.complete,subagentsComplete:!0,usageComplete:_,rawRequestsComplete:!1,gaps:u}}}function J(e,t){return{spanId:t,traceId:e.traceId,turnId:e.turnId,sessionId:e.sessionId,kind:"turn",name:"DeepSeek Harness turn",sequence:0,status:e.outcome==="completed"?"completed":e.outcome==="cancelled"?"cancelled":"failed",startedAt:e.startedAt,endedAt:e.endedAt,inputRefs:[],outputRefs:[],provider:{provider:"deepseek-harness",nativeIds:{runtimeSessionId:String(e.boundary.runtimeSessionId??""),messageId:String(e.boundary.messageId??"")}},provenance:{source:"provider_event",accuracy:"runtime_exact"}}}function C(e,t,c,i,s,a,p){const d=N(a,e.startedAt);return{spanId:`deepseek-harness:${e.turnId}:${c}`,traceId:e.traceId,turnId:e.turnId,sessionId:e.sessionId,parentSpanId:t,kind:i,name:s,sequence:c,status:"completed",startedAt:d,endedAt:d,inputRefs:[],outputRefs:[],provider:{provider:"deepseek-harness",nativeEventType:s,nativeIds:p},provenance:{source:"provider_event",accuracy:"runtime_exact"}}}function G(e,t,c,i,s,a,p,d){const r=H(s),l={input:{total:r.inputTokens,uncached:null,cacheRead:r.cacheReadInputTokens,cacheWrite:r.cacheCreationInputTokens,other:null},output:{total:r.outputTokens,reasoning:r.reasoningTokens,visible:Math.max(0,r.outputTokens-r.reasoningTokens)},totalProcessed:r.inputTokens+r.outputTokens,requestCount:1,accuracy:"provider_reported",completeness:"complete",provider:"deepseek-harness",providerUsageRaw:s,normalization:{adapter:"deepseek-harness-jsonrpc",version:1,formula:"provider committed assistant/message usage"}};return{...C(e,t,c,"llm_request","assistant/message",i,{nativeId:String(a),requestId:String(a),...p?{model:p}:{},...d?{providerId:d}:{}}),...p?{modelId:p}:{},usage:l}}export{Y as DeepSeekHarnessAuditAdapter};
1
+ import{closeSync as L,openSync as P,readSync as F}from"node:fs";import{referenceCaptureContent as z}from"../../core/content-reference.js";import{appendUniqueReference as C,assessToolCallCompleteness as B,deduplicateGaps as E}from"../../core/tool-call-audit.js";import{mapDshSessionEvent as U,unwrapDshSessionEvent as b}from"../../../adapter/deepseek-harness/event-mapper.js";import{normalizeDshUsage as H}from"../../../adapter/deepseek-harness/usage.js";const J=Object.freeze({inputOutput:!0,tools:!0,subagents:!0,thinking:!0,rawProviderBody:!1});function O(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function $(e){return e.options?.enabled===!0?e.options.capture:J}function q(e,t){return Number.isFinite(e)?new Date(e).toISOString():t}function D(e){if(typeof e=="string")return e;try{const t=JSON.stringify(e);return t===void 0?"null":t}catch{return String(e)}}function k(e,t){if(t.value!==void 0)return e.push(t),z(t)}class Z{provider="deepseek-harness";async collect(t){const u=String(t.boundary.wirePath??""),a=Number(t.boundary.wireStartOffset??0),r=Number(t.boundary.wireEndOffset??a);if(!u||!Number.isSafeInteger(a)||!Number.isSafeInteger(r)||r<a||r-a>32*1024*1024)return[];let o;try{o=P(u,"r")}catch{return[]}try{const d=Buffer.alloc(r-a),g=F(o,d,0,d.length,a);return d.subarray(0,g).toString("utf8").split(`
2
+ `).flatMap(S=>{if(!S.trim())return[];try{return[JSON.parse(S)]}catch{return[]}})}finally{L(o)}}async normalize(t,u){const a=Array.isArray(u)?u:[],r=$(t),o=[],d=[],g=new Map,S=new Map,i=`deepseek-harness:${t.turnId}:turn`,h=[W(t,i)],v=h[0];let c=1,f,w;const x=String(t.boundary.rootSessionId??"");r.inputOutput&&t.input&&C(v.inputRefs,k(o,{...t.input,captureLevel:t.input.captureLevel??"runtime_exact"})),r.inputOutput&&t.finalOutput&&C(v.outputRefs,k(o,{...t.finalOutput,captureLevel:t.finalOutput.captureLevel??"runtime_exact"}));for(const p of a){const y=p.frame??{},A=String(y.method??"");if(p.direction==="out"&&A==="session/prompt"){if(r.inputOutput){const s=O(y.params)?y.params:{},I=(Array.isArray(s.contentBlocks)?s.contentBlocks:[]).map(_=>O(_)?_:{}).filter(_=>_.type==="text").map(_=>String(_.text??"")).join("");C(v.inputRefs,k(o,{role:"user_input",format:"text",value:I,captureLevel:"runtime_exact"}))}continue}if(p.direction!=="in")continue;if(A==="subagent.started"||A==="subagent.finished"){const s=O(y.params)?y.params:{},l=String(s.childSessionId??s.sessionId??c);h.push(R(t,i,c++,"subagent",A,p.at,{nativeId:l})),A==="subagent.finished"&&r.subagents&&s.lastAssistantMessage!==void 0&&k(o,{role:"subagent_result",format:"text",value:String(s.lastAssistantMessage),captureLevel:"runtime_exact"});continue}if(A==="session.status"){const s=O(y.params)?y.params:{};h.push(R(t,i,c++,"agent",`session.status:${String(s.status??"unknown")}`,p.at,{nativeId:String(s.sessionId??c)}));continue}if(A!=="session.event")continue;const m=b(y.params);if(!m)continue;if(m.type==="step/start"){const s=O(m.data)?m.data:{};p.at!==void 0&&S.set(`${String(m.sessionId??"")}:${String(s.turn??"")}:${String(s.step??"")}`,p.at);continue}const n=U(m),T=String(m.sessionId??""),M=!!T&&!!x&&T!==x,N=q(p.at,t.startedAt);if(n.kind==="thinking"){r.thinking&&n.text&&k(o,{role:"thinking",format:"text",value:n.text,captureLevel:"runtime_exact"});continue}if(n.kind==="context"){const s=String(n.payload?.provider??""),l=String(n.payload?.model??"");s&&(w=s),l&&(f=l);continue}if(n.kind!=="usage"){if(n.kind==="text"&&n.payload?.committed){if(r.inputOutput&&!M&&n.text?C(v.outputRefs,k(o,{role:"assistant_text",format:"text",value:n.text,captureLevel:"runtime_exact"})):r.subagents&&M&&n.text&&k(o,{role:"subagent_result",format:"text",value:n.text,captureLevel:"runtime_exact"}),n.usage){const s=O(m.data)?m.data:{},l=S.get(`${String(m.sessionId??"")}:${String(s.turn??"")}:${String(s.step??"")}`);h.push(G(t,i,c++,p.at,n.usage,Number(m.seq??c),f,w,l))}continue}if(n.kind==="tool_call"){const s=n.callId||String(c),l=n.name||"tool",I=R(t,i,c++,"tool_call",l,p.at,{nativeId:s,toolCallId:s});I.status="running",r.tools&&C(I.inputRefs,k(o,{role:"tool_arguments",format:typeof n.input=="string"?"text":"json",value:D(n.input??{}),captureLevel:"runtime_exact"})),g.set(s,{span:I}),h.push(I);continue}if(n.kind==="tool_result"){const s=n.callId||"",l=s?g.get(s):void 0;if(!l){d.push({code:"dsh_tool_result_without_call",message:`No tool/call found for ${s||`seq-${m.seq??c}`}`,providerIds:s?{toolCallId:s}:void 0});continue}l.span.status=n.isError?"failed":"completed",l.span.endedAt=N;const I=Date.parse(l.span.startedAt),_=Date.parse(N);Number.isFinite(I)&&Number.isFinite(_)&&(l.span.durationMs=Math.max(0,_-I)),r.tools&&C(l.span.outputRefs,k(o,{role:"tool_result",format:typeof n.output=="string"?"text":"json",value:D(n.output??""),captureLevel:"runtime_exact"}));continue}if(n.kind==="compaction"){h.push(R(t,i,c++,"compaction",String(n.payload?.eventType??m.type),p.at,{nativeId:String(m.seq??c)}));continue}(n.kind==="todo"||n.kind==="turn_end")&&h.push(R(t,i,c++,"agent",n.kind==="todo"?"todo/write":`turn/end:${n.reason??"completed"}`,p.at,{nativeId:String(m.seq??c)}))}}for(const[p,y]of g)y.span.status==="running"&&d.push({code:"dsh_tool_result_missing",message:`Tool call ${p} has no result`,spanId:y.span.spanId,providerIds:{toolCallId:p}});return{spans:h,contents:o,anomalies:d,capture:r,recordCount:a.length}}async correlate(t,u){return u}validate(t,u){const a=u,r=a.capture??$(t),o=a.spans.filter(f=>f.kind==="llm_request"),d=a.spans.filter(f=>f.kind==="tool_call"),g=!r.inputOutput||!!t.input||a.contents.some(f=>f.role==="user_input"),S=!r.inputOutput||!!t.finalOutput||a.contents.some(f=>f.role==="assistant_text"),i=B(d,r.tools),h=o.length>0&&o.every(f=>f.usage?.completeness==="complete"),v=E([...i.gaps]);r.rawProviderBody&&v.push({category:"raw_provider_body",reason:"raw_capture_disabled",detail:"Harness JSON-RPC does not expose provider HTTP raw bodies"});const c=g&&S&&i.complete&&h&&!r.rawProviderBody&&v.length===0;return{status:a.recordCount===0?"metadata_only":c?"complete":"partial",inputComplete:g,outputComplete:S,toolCallsComplete:i.complete,subagentsComplete:!0,usageComplete:h,rawRequestsComplete:!1,gaps:v}}}function W(e,t){const u=Date.parse(e.startedAt),a=Date.parse(e.endedAt);return{spanId:t,traceId:e.traceId,turnId:e.turnId,sessionId:e.sessionId,kind:"turn",name:"DeepSeek Harness turn",sequence:0,status:e.outcome==="completed"?"completed":e.outcome==="cancelled"?"cancelled":"failed",startedAt:e.startedAt,endedAt:e.endedAt,inputRefs:[],outputRefs:[],...Number.isFinite(u)&&Number.isFinite(a)&&a>=u?{durationMs:a-u}:{},provider:{provider:"deepseek-harness",nativeIds:{runtimeSessionId:String(e.boundary.runtimeSessionId??""),messageId:String(e.boundary.messageId??"")}},provenance:{source:"provider_event",accuracy:"runtime_exact"}}}function R(e,t,u,a,r,o,d){const g=q(o,e.startedAt);return{spanId:`deepseek-harness:${e.turnId}:${u}`,traceId:e.traceId,turnId:e.turnId,sessionId:e.sessionId,parentSpanId:t,kind:a,name:r,sequence:u,status:"completed",startedAt:g,endedAt:g,inputRefs:[],outputRefs:[],provider:{provider:"deepseek-harness",nativeEventType:r,nativeIds:d},provenance:{source:"provider_event",accuracy:"runtime_exact"}}}function G(e,t,u,a,r,o,d,g,S){const i=H(r),h=i.inputTokens,v=i.cacheReadInputTokens,c=i.cacheCreationInputTokens,f=h+v+c,w={input:{total:f,uncached:h,cacheRead:v,cacheWrite:c,other:0},output:{total:i.outputTokens,reasoning:i.reasoningTokens,visible:Math.max(0,i.outputTokens-i.reasoningTokens)},totalProcessed:f+i.outputTokens,requestCount:1,accuracy:"provider_reported",completeness:"complete",provider:"deepseek-harness",providerUsageRaw:r,normalization:{adapter:"deepseek-harness-jsonrpc",version:2,formula:"uncached input + cacheRead + cacheWrite + output"}},x={...R(e,t,u,"llm_request","assistant/message",a,{nativeId:String(o),requestId:String(o),...d?{model:d}:{},...g?{providerId:g}:{}}),...d?{modelId:d}:{},usage:w};if(S!==void 0){const p=Date.parse(x.endedAt??"");Number.isFinite(p)&&(x.startedAt=new Date(S).toISOString(),x.durationMs=Math.max(0,p-S))}return x}export{Z as DeepSeekHarnessAuditAdapter};