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.
- package/dist/adapter/claude/claude-bridge-server.js +1 -1
- package/dist/adapter/claude/claude-tools.js +1 -1
- package/dist/adapter/claude/claude-worker-client.js +1 -1
- package/dist/adapter/claude/mcp-http-launcher.js +2 -2
- package/dist/adapter/claude/result-timeout.js +1 -1
- package/dist/adapter/deepseek-harness/catalog-cache.js +1 -0
- package/dist/adapter/deepseek-harness/event-mapper.js +1 -1
- package/dist/adapter/deepseek-harness/index.js +1 -1
- package/dist/adapter/deepseek-harness/jsonrpc-adapter.js +2 -2
- package/dist/adapter/deepseek-harness/runtime-ensure.js +1 -0
- package/dist/adapter/deepseek-harness/toolbar-state.js +1 -1
- package/dist/adapter/deepseek-harness/usage.js +1 -1
- package/dist/assets/dsh-bridge/grix-dsh-bridge-3.27.0.tgz +0 -0
- package/dist/assets/dsh-bridge/manifest.json +6 -6
- package/dist/audit/adapters/deepseek-harness/deepseek-harness-audit-adapter.js +2 -2
- package/dist/bridge/bridge.js +7 -7
- package/dist/core/access/allowlist-store.js +1 -1
- package/dist/core/aibot/binding-card-meta-cache.js +1 -1
- package/dist/core/file-ops/list-files.js +1 -1
- package/dist/core/persistence/session-binding-store.js +1 -1
- package/dist/log.js +2 -2
- package/dist/mcp/stream-http/config.js +1 -1
- package/dist/mcp/stream-http/connection-binding.js +1 -1
- package/dist/mcp/stream-http/security.js +1 -1
- package/dist/mcp/stream-http/tool-executor.js +1 -1
- package/dist/mcp/stream-http/tool-registry.js +1 -1
- package/dist/mcp/stream-http/tool-schemas.js +1 -1
- package/package.json +1 -1
- package/dist/assets/dsh-bridge/grix-dsh-bridge-3.26.13.tgz +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{closeSync as
|
|
2
|
-
`).flatMap(
|
|
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};
|