@kodax-ai/kodax 0.7.71 → 0.7.72
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/CHANGELOG.md +602 -487
- package/README.md +46 -27
- package/README_CN.md +30 -13
- package/dist/chunks/agent-YKGU4USA.js +2 -0
- package/dist/chunks/argument-completer-QZETLNAB.js +2 -0
- package/dist/chunks/{chunk-SX2WFHIS.js → chunk-2RI252RN.js} +1 -1
- package/dist/chunks/chunk-CLFP6UGU.js +71 -0
- package/dist/chunks/chunk-E27LHEIP.js +37 -0
- package/dist/chunks/chunk-EDZ5KJFT.js +5 -0
- package/dist/chunks/chunk-GIK4SGAT.js +364 -0
- package/dist/chunks/chunk-GVWPHE23.js +310 -0
- package/dist/chunks/{chunk-A2TFSV5M.js → chunk-IR5KIK7E.js} +1 -1
- package/dist/chunks/chunk-JSDLBXME.js +755 -0
- package/dist/chunks/chunk-MVARIMQV.js +22 -0
- package/dist/chunks/chunk-PKQOEDHJ.js +628 -0
- package/dist/chunks/{chunk-64NQBOSN.js → chunk-SQODXBLX.js} +1 -1
- package/dist/chunks/chunk-VDGCGOQH.js +328 -0
- package/dist/chunks/chunk-VVE3UM4F.js +410 -0
- package/dist/chunks/chunk-WIBLZK4G.js +151 -0
- package/dist/chunks/{compaction-config-5KKKXYFT.js → compaction-config-TWCDFLX6.js} +1 -1
- package/dist/chunks/{construction-bootstrap-OXDDDW6O.js → construction-bootstrap-ZJPXUPXQ.js} +1 -1
- package/dist/chunks/dist-JT4ATXVM.js +2 -0
- package/dist/chunks/host-SVEDZUC5.js +2 -0
- package/dist/chunks/{run-manager-Z3W6MDO7.js → run-manager-RX42UNEM.js} +1 -1
- package/dist/chunks/{utils-CFOXDCB5.js → utils-OTT5CG5J.js} +1 -1
- package/dist/index.d.ts +13 -13
- package/dist/index.js +4 -4
- package/dist/kodax_bootstrap.js +28 -0
- package/dist/kodax_cli.js +1325 -1333
- package/dist/kodax_resume.js +44 -0
- package/dist/provider-capabilities.json +50 -48
- package/dist/runtime-worker.js +1322 -1330
- package/dist/sdk-a2a.d.ts +10 -9
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +382 -206
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +80 -128
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +3 -0
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +71 -23
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +143 -31
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-session.d.ts +6 -5
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.d.ts +5 -5
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +14 -14
- package/dist/types-chunks/{bash-prefix-extractor.d-YoiZl5yt.d.ts → bash-prefix-extractor.d-CHJO5y94.d.ts} +107 -248
- package/dist/types-chunks/{capsule.d-CK5Pfz1k.d.ts → capsule.d-DxtdE-GD.d.ts} +24 -95
- package/dist/types-chunks/center-types.d-BBT122uJ.d.ts +91 -0
- package/dist/types-chunks/{commands.d-D6g2jq8V.d.ts → commands.d-DZxHzH5-.d.ts} +6 -4
- package/dist/types-chunks/{guardrail.d-DilYC1dh.d.ts → guardrail.d-DlpMnd-Y.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-DdeDWnVu.d.ts → guardrail.d-auV61_h5.d.ts} +83 -10
- package/dist/types-chunks/public-api.d--IDNJsu1.d.ts +1342 -0
- package/dist/types-chunks/{run-manager.d-DxU3SSGR.d.ts → run-manager.d-Bh50OdVl.d.ts} +1 -1
- package/dist/types-chunks/sdk-session-Cfw6NFu-.d.ts +82 -0
- package/dist/types-chunks/{types.d-CEZZSY9s.d.ts → types.d-CNZgY52F.d.ts} +2 -2
- package/dist/types-chunks/{types.d-vJExiRje.d.ts → types.d-DCQVBqVn.d.ts} +10 -5
- package/dist/types-chunks/{types.d-CRCaLt_s.d.ts → types.d-DH1mvdcl.d.ts} +284 -164
- package/dist/types-chunks/{types.d-CzsLFqmf.d.ts → types.d-EqQmHztg.d.ts} +9 -10
- package/dist/types-chunks/{utils.d-Cb6vdvFM.d.ts → utils.d-gmn3c5U4.d.ts} +9 -12
- package/docs/SDK_EMBEDDER_GUIDE.md +171 -26
- package/package.json +4 -4
- package/scripts/kodax-bin.cjs +4 -2
- package/scripts/production-env.cjs +9 -0
- package/dist/chunks/agent-X2EWQADL.js +0 -2
- package/dist/chunks/argument-completer-BLNXDO2F.js +0 -2
- package/dist/chunks/chunk-4DY756KL.js +0 -70
- package/dist/chunks/chunk-52JSZ77P.js +0 -37
- package/dist/chunks/chunk-A574DBTV.js +0 -422
- package/dist/chunks/chunk-F7KGYHJ3.js +0 -624
- package/dist/chunks/chunk-GVTM4Z6O.js +0 -151
- package/dist/chunks/chunk-PHH4TRGF.js +0 -22
- package/dist/chunks/chunk-PVUXONQB.js +0 -366
- package/dist/chunks/chunk-T7LYK53M.js +0 -329
- package/dist/chunks/chunk-VRSVNU2Y.js +0 -7
- package/dist/chunks/chunk-Y5XKAN7C.js +0 -755
- package/dist/chunks/chunk-Z535BARK.js +0 -306
- package/dist/chunks/dist-IXJRJ27U.js +0 -2
- package/dist/chunks/host-VRKDAN26.js +0 -2
- package/dist/types-chunks/public-api.d-BvCp5VkW.d.ts +0 -601
- package/dist/types-chunks/sdk-session-wGpa7X_U.d.ts +0 -796
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{
|
|
2
|
+
import{m as f}from"./chunk-E27LHEIP.js";import{a as h}from"./chunk-ONUPGMER.js";import{createHash as R}from"node:crypto";function O(i){return new y(i)}h(O,"createMemoryAgent");var y=class{static{h(this,"DefaultMemoryAgent")}options;constructor(e){this.options=e}async startSession(e){let t=this.options.initialMemoryPack??await this.options.controlPlane.buildMemoryPack({task:e.objective,identity:e.identity,maxCandidates:12,maxHints:5});return new g(e,t.memoryRevision,t.candidates,this.options)}},g=class{static{h(this,"DefaultMemorySession")}input;memoryRevision;candidates;options;observations=new Map;consumedReminderKeys=new Set;lastSequence=0;closed=!1;completion;prefetchGeneration=0;prefetch;readyPrefetch;queryByEpoch=new Map;injectedReceiptIds=[];constructor(e,t,n,c){this.input=e,this.memoryRevision=t,this.candidates=n,this.options=c}observe(e){if(this.assertOpen(),v(e.summary))return;let t=K(e,this.options.sourcePolicy),n=this.observations.get(e.id);if(n!==void 0){if(n.sequence===t.sequence&&w(n)===w(t))return;throw new Error(`conflicting duplicate memory observation: ${e.id}`)}if(!Number.isSafeInteger(e.sequence)||e.sequence<=this.lastSequence)throw new Error(`memory observation sequence must be strictly monotonic after ${this.lastSequence}`);if(e.summary.trim().length===0)throw new Error("memory observation summary must not be empty");this.observations.set(e.id,t),this.lastSequence=e.sequence}recall(e){this.assertOpen();let t=[...this.observations.values()].filter(d=>d.sequence<=e.throughSequence).filter(d=>I(d,e)).sort((d,l)=>l.sequence-d.sequence).slice(0,3),n=this.candidates.filter(d=>P(d,e)).slice(0,Math.max(0,3-t.length)),c=this.prefetchKey(e),s=this.consumeReadyPrefetch(c).filter(d=>!n.some(l=>l.ref.id===d.ref.id)).slice(0,Math.max(0,3-t.length-n.length)),a=m([...t.flatMap(d=>d.evidence.map(l=>l.ref)),...n.map(d=>d.ref.id),...s.map(d=>d.ref.id)]),r=k([...t.length>0||n.length>0?["exact"]:[],...s.length>0?["semantic_prefetch"]:[]]);if(t.length===0&&n.length===0&&s.length===0){this.startPrefetch(c,e),this.emitDecisionReceipt(e,[],[],r);return}let o=[...t.map(d=>d.summary.trim()),...n.map(d=>d.bodySnippet??d.hook),...s.map(d=>d.bodySnippet??d.hook)].join(`
|
|
3
3
|
`),b=u(`${a.join("\0")}\0${e.actionSignature??e.decisionIntent}`);if(this.consumedReminderKeys.has(b)){this.emitDecisionReceipt(e,a,[],r);return}return this.consumedReminderKeys.add(b),this.emitDecisionReceipt(e,a,a,r),{content:o,evidenceRefs:a}}query(e){this.assertOpen();let t=p(e.decisionRevision,e.throughSequence),n=E(e.need),c=u([t,this.memoryRevision,n??"",e.actionSignature??"",f].join("\0")),s=this.queryByEpoch.get(t);if(s!==void 0)return s.key===c?s.result:Promise.resolve(void 0);let a=n===void 0?Promise.resolve(void 0):this.queryOnce(e,n);return this.queryByEpoch.set(t,{key:c,result:a}),n===void 0&&this.emitDecisionReceipt(e,[],[],["deliberate_query"]),a}rewind(e){if(this.assertOpen(),!Number.isSafeInteger(e.throughSequence)||e.throughSequence<0)throw new Error("rewind sequence must be a non-negative safe integer");for(let[t,n]of this.observations)n.sequence>e.throughSequence&&this.observations.delete(t);for(this.lastSequence=e.throughSequence,this.consumedReminderKeys.clear(),this.queryByEpoch.clear();this.injectedReceiptIds.length>0;)this.injectedReceiptIds.pop();this.cancelPrefetch("rewind")}complete(e){return this.assertOpen(),this.completion!==void 0?this.completion:(this.completion=this.completeOnce(e),this.completion)}async close(e={}){this.cancelPrefetch("close"),e.drain!==!1&&this.completion!==void 0&&await this.completion,this.closed=!0}async completeOnce(e){if(e.status==="cancelled"||v(e.summary))return;let t=j(this.input,[...this.observations.values()],{...e,status:e.status,evidence:e.evidence.map(n=>q(n,this.options.sourcePolicy))},this.options.now?.()??new Date().toISOString(),this.injectedReceiptIds);await this.options.persistOutcomeDigest?.(t),await this.reviewWithTimeout(t)}async reviewWithTimeout(e){let t=this.options.reviewEpisode;if(t===void 0)return;let n=new AbortController,c=Math.max(1,this.options.reviewTimeoutMs??3e4),s,a=await Promise.race([t(e,n.signal).then(()=>!1),new Promise(r=>{s=setTimeout(()=>{n.abort(),r(!0)},c)})]);s!==void 0&&clearTimeout(s),a&&this.options.onTrace?.({type:"review.timed_out",key:e.reviewKey,detail:`${c}ms`})}assertOpen(){if(this.closed)throw new Error("memory session is closed")}prefetchKey(e){return u([e.decisionRevision,e.decisionIntent,e.actionSignature??"",String(e.throughSequence),this.memoryRevision,this.candidates.map(t=>t.ref.id).join(",")].join("\0"))}async queryOnce(e,t){try{let n=await this.options.controlPlane.buildMemoryPack({task:this.input.objective,identity:this.input.identity,decisionIntent:t,...e.actionSignature!==void 0?{actionSignature:e.actionSignature}:{},maxCandidates:3,maxHints:3,includeSnippets:!0,purpose:"deliberate_query"}),c=n.promptHints.filter(M).filter(o=>o.bodySnippet!==void 0&&o.bodySnippet.trim().length>0).slice(0,3),s=c.map(o=>o.ref.id),a=x(c.map(o=>o.bodySnippet??"")),r=a.length===0?[]:s;return this.emitDecisionReceipt(e,s,r,["deliberate_query"],n.candidates.map(o=>o.ref.id)),a.length===0?void 0:{content:a,evidenceRefs:s}}catch(n){this.emitDecisionReceipt(e,[],[],["deliberate_query"]),this.options.onTrace?.({type:"query.failed",key:p(e.decisionRevision,e.throughSequence),detail:n instanceof Error?n.message:String(n)});return}}emitDecisionReceipt(e,t,n,c,s=this.candidates.map(a=>a.ref.id)){let a=p(e.decisionRevision,e.throughSequence),r=u(s.join("\0")),o={id:`memory-decision:${u([a,f,r,t.join(","),n.join(","),c.join(",")].join("\0")).slice(0,24)}`,decisionEpoch:a,decisionRevision:e.decisionRevision,policyVersion:f,candidateSetFingerprint:r,candidateRefs:[...s],selectedRefs:[...t],injectedRefs:[...n],selectionModes:[...c],...e.actionSignature!==void 0?{actionSignature:e.actionSignature}:{},throughSequence:e.throughSequence};n.length>0&&!this.injectedReceiptIds.includes(o.id)&&this.injectedReceiptIds.push(o.id),this.options.onTrace?.({type:"memory.decision",receipt:o})}consumeReadyPrefetch(e){if(this.readyPrefetch?.key!==e)return[];let t=new Set(this.readyPrefetch.refIds);return this.readyPrefetch=void 0,this.candidates.filter(n=>t.has(n.ref.id))}startPrefetch(e,t){let n=this.options.recallRunner;if(n===void 0||this.candidates.length===0||this.prefetch?.key===e)return;this.cancelPrefetch("superseded");let c=new AbortController,s=++this.prefetchGeneration;this.prefetch={key:e,controller:c};let a=new Set(this.candidates.map(r=>r.ref.id));n({objective:t.objective,decisionContext:t.decisionContext,decisionIntent:t.decisionIntent,candidates:this.candidates.map(r=>({refId:r.ref.id,claim:r.bodySnippet??r.hook,...r.ref.claimKind!==void 0?{claimKind:r.ref.claimKind}:{}})),signal:c.signal}).then(r=>{if(c.signal.aborted||s!==this.prefetchGeneration||this.prefetch?.key!==e){this.options.onTrace?.({type:"recall.prefetch.discarded",key:e});return}this.readyPrefetch={key:e,refIds:m(r.selectedRefIds.filter(o=>a.has(o)))},this.prefetch=void 0,this.options.onTrace?.({type:"recall.prefetch.completed",key:e})}).catch(r=>{c.signal.aborted||(s===this.prefetchGeneration&&(this.prefetch=void 0),this.options.onTrace?.({type:"recall.prefetch.failed",key:e,detail:r instanceof Error?r.message:String(r)}))})}cancelPrefetch(e){if(this.prefetch===void 0)return;let t=this.prefetch.key;this.prefetch.controller.abort(),this.prefetch=void 0,this.prefetchGeneration+=1,this.options.onTrace?.({type:"recall.prefetch.discarded",key:t,detail:e})}};function I(i,e){return i.actionSignature!==void 0&&e.actionSignature!==void 0?i.actionSignature===e.actionSignature:i.claimKey!==void 0&&i.claimKey===e.decisionIntent}h(I,"exactObservationMatch");function P(i,e){return i.ref.actionSignature!==void 0&&e.actionSignature!==void 0?i.ref.actionSignature===e.actionSignature:i.ref.claimKey!==void 0&&i.ref.claimKey===e.decisionIntent}h(P,"exactCandidateMatch");function j(i,e,t,n,c){let s=[...e].reverse().find(o=>o.kind==="outcome"),a=e.at(-1)?.sequence??0,r=u([i.identity.sessionId,String(a),t.status,t.summary].join("\0"));return{id:`memory-outcome:${r.slice(0,24)}`,reviewKey:r,sessionId:i.identity.sessionId,branchId:i.identity.sessionId,sequence:a,objective:i.objective,...s?.actionSignature!==void 0?{actionSignature:s.actionSignature}:{},approach:s?.summary??"episode completion",outcome:t.status,summary:t.summary.trim(),evidenceRefs:m(t.evidence.map(o=>o.ref)),evidence:t.evidence.map(o=>({ref:o.ref,grade:o.requestedGrade,source:o.source,observedAt:o.observedAt})),...c.length>0?{memoryInfluence:m(c).map(o=>({decisionReceiptRef:o,grade:"exposed"}))}:{},visibility:s?.visibility??"prompt_safe",createdAt:n}}h(j,"buildOutcomeDigest");function E(i){let e=i.replace(/\s+/g," ").trim();if(!(e.length===0||S(e)>512||v(e))&&!/^(?:list|show|dump|enumerate)\s+(?:all|every)\s+(?:the\s+)?memor(?:y|ies)\b/i.test(e)&&!/\b(?:all|every)\s+(?:project|workspace|tenant|user|agent)(?:s|'s)?\b/i.test(e))return e}h(E,"normalizeQueryNeed");function S(i){let e=0,t=0;for(let n of i)n.codePointAt(0)<=127?e+=1:t+=1;return Math.ceil(e/4)+t}h(S,"estimateMemoryTokens");function M(i){return i.ref.visibility==="prompt_safe"&&i.ref.authority!=="proposal_only"&&(i.ref.lifecycle==="active"||i.ref.lifecycle==="trusted"||i.ref.lifecycle==="readonly")}h(M,"isGovernedQueryHint");function x(i){let e=i.map(n=>n.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g,"").replace(/<\/?[^>]+>/g,"").replace(/[<>]/g,"").replace(/\s+/g," ").trim()).filter(n=>n.length>0),t=e.join(`
|
|
4
4
|
`);for(;S(t)>512&&e.length>1;)e.pop(),t=e.join(`
|
|
5
5
|
`);return S(t)<=512?t:""}h(x,"boundedQueryContent");function p(i,e){return u(`${i}\0${e}`).slice(0,24)}h(p,"decisionEpoch");function k(i){return[...new Set(i)]}h(k,"uniqueModes");function K(i,e){return Object.freeze({...i,evidence:Object.freeze(i.evidence.map(t=>Object.freeze(q(t,e)))),...i.metadata!==void 0?{metadata:Object.freeze({...i.metadata})}:{}})}h(K,"freezeObservation");function q(i,e){let t=e?.(i)??"inferred";return{...i,requestedGrade:_(i.requestedGrade,t)}}h(q,"applySourcePolicy");function _(i,e){let t=["inferred","observed","corroborated","verified","authoritative"];return t[Math.min(t.indexOf(i),t.indexOf(e))]??"inferred"}h(_,"lowerEvidenceGrade");function w(i){return JSON.stringify(i)}h(w,"stableObservation");function m(i){return[...new Set(i)]}h(m,"unique");function u(i){return R("sha256").update(i).digest("hex")}h(u,"digest");function v(i){return/(?:-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----|authorization:\s*bearer\s+\S+|(?:api[_-]?key|password|secret|token)\s*[:=]\s*\S+)/i.test(i)}h(v,"isRestrictedMemoryContent");export{O as a};
|