@devflow-tools/sdk 0.17.3 → 0.17.5

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.
@@ -0,0 +1,15 @@
1
+ export declare const EMBEDDING_MODEL_ID = "Xenova/all-MiniLM-L6-v2";
2
+ export declare const EMBEDDING_MODEL_REVISION = "751bff37182d3f1213fa05d7196b954e230abad9";
3
+ export interface EmbeddingWarmupOptions {
4
+ timeoutMs?: number;
5
+ errorLogPath?: string;
6
+ }
7
+ export interface EmbeddingProviderContract {
8
+ getStatus(): 'idle' | 'warming' | 'ready' | 'failed';
9
+ warmup(options?: EmbeddingWarmupOptions): Promise<boolean>;
10
+ embed(text: string): Promise<Float32Array>;
11
+ embedBatch(texts: string[]): Promise<Float32Array[]>;
12
+ getLastError(): string | null;
13
+ getLastFailure(): Error | null;
14
+ }
15
+ //# sourceMappingURL=embedding-provider-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider-contract.d.ts","sourceRoot":"","sources":["../src/embedding-provider-contract.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAC5D,eAAO,MAAM,wBAAwB,6CAA6C,CAAC;AAEnF,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,IAAI,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,MAAM,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACrD,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,IAAI,KAAK,GAAG,IAAI,CAAC;CAChC"}
@@ -0,0 +1,3 @@
1
+ export const EMBEDDING_MODEL_ID = 'Xenova/all-MiniLM-L6-v2';
2
+ export const EMBEDDING_MODEL_REVISION = '751bff37182d3f1213fa05d7196b954e230abad9';
3
+ //# sourceMappingURL=embedding-provider-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider-contract.js","sourceRoot":"","sources":["../src/embedding-provider-contract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,0CAA0C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=embedding-provider-contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider-contract.test.d.ts","sourceRoot":"","sources":["../src/embedding-provider-contract.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { describe, expect, expectTypeOf, it } from 'vitest';
2
+ import { EMBEDDING_MODEL_ID, EMBEDDING_MODEL_REVISION, } from './embedding-provider-contract.js';
3
+ describe('embedding provider contract', () => {
4
+ it('publishes the pinned model identity and structural provider surface', () => {
5
+ expect(EMBEDDING_MODEL_ID).toBe('Xenova/all-MiniLM-L6-v2');
6
+ expect(EMBEDDING_MODEL_REVISION).toBe('751bff37182d3f1213fa05d7196b954e230abad9');
7
+ expectTypeOf()
8
+ .returns.toEqualTypeOf();
9
+ });
10
+ });
11
+ //# sourceMappingURL=embedding-provider-contract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider-contract.test.js","sourceRoot":"","sources":["../src/embedding-provider-contract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GAEzB,MAAM,kCAAkC,CAAC;AAE1C,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC3D,MAAM,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAClF,YAAY,EAA2C;aACpD,OAAO,CAAC,aAAa,EAA2B,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -29,8 +29,10 @@ export * from "./capability-rollout.js";
29
29
  export * from "./project-capability-profile.js";
30
30
  export * from "./model-recommendation.js";
31
31
  export * from "./canonical-action-binding.js";
32
+ export * from "./embedding-provider-contract.js";
32
33
  export * from "./task-runtime.js";
33
34
  export * from "./task-runtime-reducer.js";
34
35
  export * from "./task-runtime-store.js";
35
36
  export * from "./action-lease.js";
37
+ export * from "./semantic-resolution.js";
36
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -29,8 +29,10 @@ export * from "./capability-rollout.js";
29
29
  export * from "./project-capability-profile.js";
30
30
  export * from "./model-recommendation.js";
31
31
  export * from "./canonical-action-binding.js";
32
+ export * from "./embedding-provider-contract.js";
32
33
  export * from "./task-runtime.js";
33
34
  export * from "./task-runtime-reducer.js";
34
35
  export * from "./task-runtime-store.js";
35
36
  export * from "./action-lease.js";
37
+ export * from "./semantic-resolution.js";
36
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,104 @@
1
+ import type { KnowledgeNeed } from './types/knowledge.js';
2
+ import type { RetrievalTaskAction } from './types/memory.js';
3
+ import type { CanonicalTaskIntent } from './types/task-context-envelope.js';
4
+ export declare const TASK_SEMANTIC_FRAME_SCHEMA: "task-semantic-frame.v2";
5
+ export declare const SEMANTIC_ROUTE_CATALOG_SCHEMA: "semantic-route-catalog.v1";
6
+ export declare const SEMANTIC_THRESHOLD_SCHEMA: "semantic-thresholds.v1";
7
+ export type SemanticResolutionState = 'provisional' | 'resolved' | 'abstained' | 'unavailable';
8
+ export type SemanticResolutionMode = 'off' | 'shadow' | 'retrieval' | 'project';
9
+ export type MutationPermission = 'explicitly_authorized' | 'explicitly_forbidden' | 'not_requested' | 'conditional' | 'ambiguous';
10
+ export type SemanticEvidenceField = 'intent' | 'action' | 'entity' | 'target' | 'constraint' | 'negation' | 'condition' | 'memory' | 'knowledge';
11
+ export type SemanticEvidenceSource = 'structural' | 'lexical_feature' | 'embedding_route' | 'host_sampling' | 'authority_merge';
12
+ export interface SemanticEvidenceSpanV1 {
13
+ field: SemanticEvidenceField;
14
+ source: SemanticEvidenceSource;
15
+ value: string;
16
+ start: number;
17
+ end: number;
18
+ textHash: string;
19
+ confidence: number;
20
+ }
21
+ export interface SemanticStepV1 {
22
+ order: number;
23
+ action: RetrievalTaskAction;
24
+ condition?: string;
25
+ mutationPermission: MutationPermission;
26
+ evidenceIds: string[];
27
+ }
28
+ export interface TaskSemanticFrameV2 {
29
+ schemaVersion: typeof TASK_SEMANTIC_FRAME_SCHEMA;
30
+ sourceHash: string;
31
+ state: SemanticResolutionState;
32
+ primaryIntent: CanonicalTaskIntent;
33
+ primaryAction: RetrievalTaskAction;
34
+ mutationPermission: MutationPermission;
35
+ intents: CanonicalTaskIntent[];
36
+ entities: string[];
37
+ targetAnchors: string[];
38
+ constraints: string[];
39
+ negations: string[];
40
+ steps: SemanticStepV1[];
41
+ memoryDirective: 'save' | 'forget' | 'recall' | 'none' | 'ambiguous';
42
+ knowledgeNeeds: KnowledgeNeed[];
43
+ outOfScope: boolean;
44
+ confidence: {
45
+ overall: number;
46
+ perField: Partial<Record<SemanticEvidenceField, number>>;
47
+ };
48
+ evidence: SemanticEvidenceSpanV1[];
49
+ resolver: {
50
+ generatedBy: 'deterministic' | 'embedding_router' | 'host_semantic' | 'hybrid';
51
+ modelId?: string;
52
+ modelRevision?: string;
53
+ routeCatalogVersion: string;
54
+ thresholdVersion: string;
55
+ };
56
+ frameHash: string;
57
+ createdAt: number;
58
+ }
59
+ export interface SemanticRouteScore {
60
+ route: string;
61
+ score: number;
62
+ prototypeIds: string[];
63
+ }
64
+ export interface SemanticRouteDecision {
65
+ status: 'accepted' | 'escalation_required' | 'out_of_scope' | 'unavailable';
66
+ candidates: SemanticRouteScore[];
67
+ margin?: number;
68
+ thresholdVersion: string;
69
+ modelId?: string;
70
+ modelRevision?: string;
71
+ latencyMs: number;
72
+ reason: string;
73
+ }
74
+ export interface SemanticResolutionResult {
75
+ frame: TaskSemanticFrameV2;
76
+ route: SemanticRouteDecision;
77
+ sampling: {
78
+ attempted: boolean;
79
+ status: 'not_needed' | 'resolved' | 'unsupported' | 'timeout' | 'invalid';
80
+ model?: string;
81
+ latencyMs?: number;
82
+ responseHash?: string;
83
+ };
84
+ conflicts: Array<{
85
+ field: string;
86
+ leftSource: string;
87
+ rightSource: string;
88
+ resolution: 'structural_wins' | 'prohibition_wins' | 'abstain';
89
+ }>;
90
+ }
91
+ export type TaskSemanticFrameV2Input = Omit<TaskSemanticFrameV2, 'frameHash'>;
92
+ export declare function semanticTextHash(value: string): string;
93
+ export declare function resolveSemanticResolutionMode(projectRoot: string, env?: NodeJS.ProcessEnv): SemanticResolutionMode;
94
+ export declare function semanticResolutionProjectHash(projectRoot: string): string;
95
+ export declare function semanticEvidenceId(span: SemanticEvidenceSpanV1): string;
96
+ export declare function validateSemanticEvidenceSpan(normalizedPrompt: string, span: SemanticEvidenceSpanV1): void;
97
+ export declare function createTaskSemanticFrameV2(input: TaskSemanticFrameV2Input, normalizedPrompt: string): TaskSemanticFrameV2;
98
+ export declare function assertTaskSemanticFrameV2(value: unknown, normalizedPrompt: string): asserts value is TaskSemanticFrameV2;
99
+ export declare function projectSemanticFrameToLegacyIntent(frame: TaskSemanticFrameV2): {
100
+ intent: CanonicalTaskIntent;
101
+ action: RetrievalTaskAction;
102
+ mutating: boolean;
103
+ };
104
+ //# sourceMappingURL=semantic-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-resolution.d.ts","sourceRoot":"","sources":["../src/semantic-resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { realpathSync } from 'node:fs';
3
+ export const TASK_SEMANTIC_FRAME_SCHEMA = 'task-semantic-frame.v2';
4
+ export const SEMANTIC_ROUTE_CATALOG_SCHEMA = 'semantic-route-catalog.v1';
5
+ export const SEMANTIC_THRESHOLD_SCHEMA = 'semantic-thresholds.v1';
6
+ const INTENTS = new Set([
7
+ 'debug', 'feature', 'refactor', 'understand', 'review', 'performance', 'memory', 'knowledge', 'unknown',
8
+ ]);
9
+ const ACTIONS = new Set([
10
+ 'analyze', 'debug', 'create', 'modify', 'format', 'test', 'build', 'install', 'release', 'document', 'unknown',
11
+ ]);
12
+ const STATES = new Set(['provisional', 'resolved', 'abstained', 'unavailable']);
13
+ const PERMISSIONS = new Set([
14
+ 'explicitly_authorized', 'explicitly_forbidden', 'not_requested', 'conditional', 'ambiguous',
15
+ ]);
16
+ const MEMORY_DIRECTIVES = new Set(['save', 'forget', 'recall', 'none', 'ambiguous']);
17
+ const EVIDENCE_FIELDS = new Set([
18
+ 'intent', 'action', 'entity', 'target', 'constraint', 'negation', 'condition', 'memory', 'knowledge',
19
+ ]);
20
+ const EVIDENCE_SOURCES = new Set([
21
+ 'structural', 'lexical_feature', 'embedding_route', 'host_sampling', 'authority_merge',
22
+ ]);
23
+ const MUTATING_ACTIONS = new Set([
24
+ 'debug', 'create', 'modify', 'format', 'test', 'build', 'install', 'release', 'document',
25
+ ]);
26
+ export function semanticTextHash(value) {
27
+ return createHash('sha256').update(value.normalize('NFKC')).digest('hex');
28
+ }
29
+ export function resolveSemanticResolutionMode(projectRoot, env = process.env) {
30
+ const requested = env.DEVFLOW_SEMANTIC_RESOLUTION_MODE;
31
+ if (requested !== 'shadow' && requested !== 'retrieval' && requested !== 'project')
32
+ return 'off';
33
+ if (requested !== 'project')
34
+ return requested;
35
+ const allowed = new Set((env.DEVFLOW_SEMANTIC_RESOLUTION_PROJECTS ?? '')
36
+ .split(',').map(value => value.trim()).filter(Boolean));
37
+ return allowed.has(semanticResolutionProjectHash(projectRoot)) ? 'project' : 'off';
38
+ }
39
+ export function semanticResolutionProjectHash(projectRoot) {
40
+ let canonical = projectRoot;
41
+ try {
42
+ canonical = realpathSync(projectRoot);
43
+ }
44
+ catch { }
45
+ return semanticTextHash(canonical);
46
+ }
47
+ export function semanticEvidenceId(span) {
48
+ return semanticTextHash(canonicalJson({
49
+ field: span.field,
50
+ source: span.source,
51
+ value: span.value,
52
+ start: span.start,
53
+ end: span.end,
54
+ textHash: span.textHash,
55
+ }));
56
+ }
57
+ export function validateSemanticEvidenceSpan(normalizedPrompt, span) {
58
+ if (!EVIDENCE_FIELDS.has(span.field) || !EVIDENCE_SOURCES.has(span.source)) {
59
+ throw new Error('SEMANTIC_EVIDENCE_ENUM_INVALID');
60
+ }
61
+ if (!Number.isSafeInteger(span.start) || !Number.isSafeInteger(span.end)
62
+ || span.start < 0 || span.end <= span.start || span.end > normalizedPrompt.length) {
63
+ throw new Error('SEMANTIC_EVIDENCE_SPAN_INVALID');
64
+ }
65
+ if (!isConfidence(span.confidence))
66
+ throw new Error('SEMANTIC_CONFIDENCE_INVALID');
67
+ const text = normalizedPrompt.slice(span.start, span.end);
68
+ if (semanticTextHash(text) !== span.textHash) {
69
+ throw new Error('SEMANTIC_EVIDENCE_HASH_MISMATCH');
70
+ }
71
+ }
72
+ export function createTaskSemanticFrameV2(input, normalizedPrompt) {
73
+ // Callers commonly derive a revision by spreading a prior frame. Strip a
74
+ // stale runtime hash at this trust boundary even though the input type omits
75
+ // it, otherwise the old hash becomes part of the new hash preimage.
76
+ const { frameHash: _staleFrameHash, ...unhashedInput } = input;
77
+ const body = { ...unhashedInput, schemaVersion: TASK_SEMANTIC_FRAME_SCHEMA };
78
+ const frame = {
79
+ ...body,
80
+ frameHash: semanticTextHash(canonicalJson(body)),
81
+ };
82
+ assertTaskSemanticFrameV2(frame, normalizedPrompt);
83
+ return frame;
84
+ }
85
+ export function assertTaskSemanticFrameV2(value, normalizedPrompt) {
86
+ if (!isRecord(value) || value.schemaVersion !== TASK_SEMANTIC_FRAME_SCHEMA) {
87
+ throw new Error('SEMANTIC_FRAME_SCHEMA_UNSUPPORTED');
88
+ }
89
+ const frame = value;
90
+ if (!STATES.has(frame.state)
91
+ || !INTENTS.has(frame.primaryIntent)
92
+ || !ACTIONS.has(frame.primaryAction)
93
+ || !PERMISSIONS.has(frame.mutationPermission)
94
+ || !MEMORY_DIRECTIVES.has(frame.memoryDirective)) {
95
+ throw new Error('SEMANTIC_FRAME_ENUM_INVALID');
96
+ }
97
+ if (!isHexHash(frame.sourceHash) || !isHexHash(frame.frameHash)) {
98
+ throw new Error('SEMANTIC_FRAME_HASH_INVALID');
99
+ }
100
+ if (!Array.isArray(frame.intents) || frame.intents.some(intent => !INTENTS.has(intent))
101
+ || !Array.isArray(frame.evidence) || !Array.isArray(frame.steps)
102
+ || !Array.isArray(frame.entities) || !Array.isArray(frame.targetAnchors)
103
+ || !Array.isArray(frame.constraints) || !Array.isArray(frame.negations)
104
+ || !Array.isArray(frame.knowledgeNeeds)) {
105
+ throw new Error('SEMANTIC_FRAME_SHAPE_INVALID');
106
+ }
107
+ if (!isConfidence(frame.confidence?.overall)
108
+ || Object.values(frame.confidence?.perField ?? {}).some(value => !isConfidence(value))) {
109
+ throw new Error('SEMANTIC_CONFIDENCE_INVALID');
110
+ }
111
+ if (!Number.isSafeInteger(frame.createdAt) || frame.createdAt < 0) {
112
+ throw new Error('SEMANTIC_CREATED_AT_INVALID');
113
+ }
114
+ for (const evidence of frame.evidence)
115
+ validateSemanticEvidenceSpan(normalizedPrompt, evidence);
116
+ const evidenceIds = frame.evidence.map(semanticEvidenceId);
117
+ if (new Set(evidenceIds).size !== evidenceIds.length)
118
+ throw new Error('SEMANTIC_EVIDENCE_DUPLICATE');
119
+ const knownEvidence = new Set(evidenceIds);
120
+ const orders = new Set();
121
+ for (const step of frame.steps) {
122
+ if (!Number.isSafeInteger(step.order) || step.order < 0 || orders.has(step.order)
123
+ || !ACTIONS.has(step.action) || !PERMISSIONS.has(step.mutationPermission)
124
+ || !Array.isArray(step.evidenceIds) || step.evidenceIds.some(id => !knownEvidence.has(id))) {
125
+ throw new Error('SEMANTIC_STEP_INVALID');
126
+ }
127
+ orders.add(step.order);
128
+ if (step.condition && !step.evidenceIds.some(id => {
129
+ const index = evidenceIds.indexOf(id);
130
+ return index >= 0 && frame.evidence[index]?.field === 'condition';
131
+ }))
132
+ throw new Error('SEMANTIC_CONDITION_EVIDENCE_REQUIRED');
133
+ }
134
+ if (frame.state === 'resolved'
135
+ && frame.mutationPermission === 'explicitly_authorized'
136
+ && MUTATING_ACTIONS.has(frame.primaryAction)
137
+ && !frame.evidence.some(item => item.field === 'action')) {
138
+ throw new Error('SEMANTIC_ACTION_EVIDENCE_REQUIRED');
139
+ }
140
+ if (frame.steps.some(step => step.mutationPermission === 'conditional')
141
+ && !frame.evidence.some(item => item.field === 'condition')) {
142
+ throw new Error('SEMANTIC_CONDITION_EVIDENCE_REQUIRED');
143
+ }
144
+ const { frameHash, ...body } = frame;
145
+ if (semanticTextHash(canonicalJson(body)) !== frameHash) {
146
+ throw new Error('SEMANTIC_FRAME_HASH_MISMATCH');
147
+ }
148
+ }
149
+ export function projectSemanticFrameToLegacyIntent(frame) {
150
+ const mutating = frame.state === 'resolved'
151
+ && frame.mutationPermission === 'explicitly_authorized'
152
+ && MUTATING_ACTIONS.has(frame.primaryAction);
153
+ return {
154
+ intent: frame.primaryIntent,
155
+ action: mutating ? frame.primaryAction : 'analyze',
156
+ mutating,
157
+ };
158
+ }
159
+ function canonicalJson(value) {
160
+ return JSON.stringify(sortCanonical(value));
161
+ }
162
+ function sortCanonical(value) {
163
+ if (Array.isArray(value))
164
+ return value.map(sortCanonical);
165
+ if (!isRecord(value))
166
+ return value;
167
+ return Object.fromEntries(Object.keys(value).sort().map(key => [key, sortCanonical(value[key])]));
168
+ }
169
+ function isRecord(value) {
170
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
171
+ }
172
+ function isConfidence(value) {
173
+ return typeof value === 'number' && Number.isFinite(value) && value >= 0 && value <= 1;
174
+ }
175
+ function isHexHash(value) {
176
+ return typeof value === 'string' && /^[a-f0-9]{64}$/u.test(value);
177
+ }
178
+ //# sourceMappingURL=semantic-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-resolution.js","sourceRoot":"","sources":["../src/semantic-resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=semantic-resolution.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-resolution.test.d.ts","sourceRoot":"","sources":["../src/semantic-resolution.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,106 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { createTaskSemanticFrameV2, projectSemanticFrameToLegacyIntent, semanticEvidenceId, semanticTextHash, } from './semantic-resolution.js';
3
+ describe('semantic resolution contracts', () => {
4
+ it('accepts a valid resolved analysis frame', () => {
5
+ const prompt = 'explain the cache design';
6
+ const frame = createTaskSemanticFrameV2(frameInput(prompt), prompt);
7
+ expect(frame.frameHash).toMatch(/^[a-f0-9]{64}$/u);
8
+ expect(projectSemanticFrameToLegacyIntent(frame)).toEqual({
9
+ intent: 'understand', action: 'analyze', mutating: false,
10
+ });
11
+ });
12
+ it('rejects a forged source span', () => {
13
+ const prompt = 'publish 0.18.0';
14
+ const evidence = span(prompt, 'publish', 'action', 'release');
15
+ evidence.textHash = semanticTextHash('forged');
16
+ expect(() => createTaskSemanticFrameV2(frameInput(prompt, {
17
+ primaryIntent: 'feature',
18
+ primaryAction: 'release',
19
+ mutationPermission: 'explicitly_authorized',
20
+ evidence: [evidence],
21
+ }), prompt)).toThrow('SEMANTIC_EVIDENCE_HASH_MISMATCH');
22
+ });
23
+ it('rejects model-only mutation with no action span', () => {
24
+ const prompt = 'ship it';
25
+ expect(() => createTaskSemanticFrameV2(frameInput(prompt, {
26
+ primaryIntent: 'feature',
27
+ primaryAction: 'release',
28
+ mutationPermission: 'explicitly_authorized',
29
+ }), prompt)).toThrow('SEMANTIC_ACTION_EVIDENCE_REQUIRED');
30
+ });
31
+ it('preserves conditional steps as non-authorized', () => {
32
+ const prompt = 'if tests pass, publish';
33
+ const condition = span(prompt, 'if tests pass', 'condition', 'tests_pass');
34
+ const action = span(prompt, 'publish', 'action', 'release');
35
+ const frame = createTaskSemanticFrameV2(frameInput(prompt, {
36
+ primaryIntent: 'feature',
37
+ primaryAction: 'release',
38
+ mutationPermission: 'conditional',
39
+ evidence: [condition, action],
40
+ steps: [{
41
+ order: 0,
42
+ action: 'release',
43
+ condition: 'tests_pass',
44
+ mutationPermission: 'conditional',
45
+ evidenceIds: [semanticEvidenceId(condition), semanticEvidenceId(action)],
46
+ }],
47
+ }), prompt);
48
+ expect(projectSemanticFrameToLegacyIntent(frame)).toEqual({
49
+ intent: 'feature', action: 'analyze', mutating: false,
50
+ });
51
+ });
52
+ it('projects an abstained frame to non-mutating analyze', () => {
53
+ const prompt = 'do it';
54
+ const frame = createTaskSemanticFrameV2(frameInput(prompt, {
55
+ state: 'abstained',
56
+ primaryIntent: 'unknown',
57
+ primaryAction: 'modify',
58
+ mutationPermission: 'ambiguous',
59
+ outOfScope: true,
60
+ }), prompt);
61
+ expect(projectSemanticFrameToLegacyIntent(frame)).toEqual({
62
+ intent: 'unknown', action: 'analyze', mutating: false,
63
+ });
64
+ });
65
+ });
66
+ function frameInput(prompt, overrides = {}) {
67
+ return {
68
+ schemaVersion: 'task-semantic-frame.v2',
69
+ sourceHash: semanticTextHash(prompt),
70
+ state: 'resolved',
71
+ primaryIntent: 'understand',
72
+ primaryAction: 'analyze',
73
+ mutationPermission: 'not_requested',
74
+ intents: ['understand'],
75
+ entities: [],
76
+ targetAnchors: [],
77
+ constraints: [],
78
+ negations: [],
79
+ steps: [],
80
+ memoryDirective: 'none',
81
+ knowledgeNeeds: [],
82
+ outOfScope: false,
83
+ confidence: { overall: 0.9, perField: { intent: 0.9 } },
84
+ evidence: [],
85
+ resolver: {
86
+ generatedBy: 'deterministic',
87
+ routeCatalogVersion: 'test-catalog.v1',
88
+ thresholdVersion: 'test-threshold.v1',
89
+ },
90
+ createdAt: 1,
91
+ ...overrides,
92
+ };
93
+ }
94
+ function span(prompt, text, field, value) {
95
+ const start = prompt.indexOf(text);
96
+ return {
97
+ field,
98
+ source: 'lexical_feature',
99
+ value,
100
+ start,
101
+ end: start + text.length,
102
+ textHash: semanticTextHash(text),
103
+ confidence: 1,
104
+ };
105
+ }
106
+ //# sourceMappingURL=semantic-resolution.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-resolution.test.js","sourceRoot":"","sources":["../src/semantic-resolution.test.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export interface CanonicalTaskIdentity {
9
9
  requestId: string;
10
10
  executionId?: string;
11
11
  }
12
- export type IntentEvidenceSource = 'slash_command' | 'explicit_action' | 'target_anchor' | 'active_skill' | 'host_semantic' | 'deterministic_parser';
12
+ export type IntentEvidenceSource = 'slash_command' | 'explicit_action' | 'target_anchor' | 'active_skill' | 'host_semantic' | 'embedding_route' | 'authority_merge' | 'abstention' | 'deterministic_parser';
13
13
  export interface IntentEvidence {
14
14
  source: IntentEvidenceSource;
15
15
  field: 'intent' | 'action' | 'entity' | 'target' | 'constraint';
@@ -93,7 +93,7 @@ export interface CanonicalTerminalTransition {
93
93
  payload: Record<string, unknown>;
94
94
  createdAt: number;
95
95
  }
96
- export type SemanticControlLogEventName = 'host.prompt.normalized' | 'intent.artifact.created' | 'intent.artifact.failed' | 'intent.artifact.persisted' | 'query.plan.created' | 'artifact.inventory.completed' | 'canonical.tool.resolved' | 'canonical.action.validated' | 'mcp.action.started' | 'mcp.action.completed' | 'mcp.action.degraded' | 'mcp.action.failed' | 'retrieval.channel.completed' | 'retrieval.attribution.transitioned' | 'codegraph.edge.rejected' | 'context.build.degraded' | 'codegraph.index.completed' | 'codegraph.index.degraded' | 'codegraph.selection.completed' | 'memory.engine.transitioned' | 'memory.search.completed' | 'memory.candidates.gated' | 'memory.write.completed' | 'memory.write.degraded' | 'memory.semantic.refined' | 'memory.maintenance.completed' | 'knowledge.abstained' | 'knowledge.query.executed' | 'knowledge.source.rejected' | 'knowledge.maintenance.completed' | 'knowledge.ingest.queued' | 'knowledge.ingest.transitioned' | 'knowledge.search.completed' | 'knowledge.search.degraded' | 'memory.semantic.decided' | 'terminal.state.transitioned' | 'task.runtime.shadow_mismatch' | 'terminal.transition.persisted' | 'host.tool.result.reconciled' | 'verification.completed' | 'hook.stop.completed' | 'hook.stop.degraded' | 'hook.runtime.completed' | 'hook.runtime.degraded' | 'hook.session_end.completed' | 'hook.session_end.degraded' | 'session.reconciled' | 'durable.work.transitioned';
96
+ export type SemanticControlLogEventName = 'host.prompt.normalized' | 'intent.artifact.created' | 'intent.artifact.failed' | 'intent.artifact.persisted' | 'query.plan.created' | 'artifact.inventory.completed' | 'canonical.tool.resolved' | 'canonical.action.validated' | 'mcp.action.started' | 'mcp.action.completed' | 'mcp.action.degraded' | 'mcp.action.failed' | 'retrieval.channel.completed' | 'retrieval.attribution.transitioned' | 'codegraph.edge.rejected' | 'context.build.degraded' | 'codegraph.index.completed' | 'codegraph.index.degraded' | 'codegraph.selection.completed' | 'memory.engine.transitioned' | 'memory.search.completed' | 'memory.candidates.gated' | 'memory.write.completed' | 'memory.write.degraded' | 'memory.semantic.refined' | 'memory.maintenance.completed' | 'knowledge.abstained' | 'knowledge.query.executed' | 'knowledge.source.rejected' | 'knowledge.maintenance.completed' | 'knowledge.ingest.queued' | 'knowledge.ingest.transitioned' | 'knowledge.search.completed' | 'knowledge.search.degraded' | 'knowledge.embedding.degraded' | 'memory.semantic.decided' | 'terminal.state.transitioned' | 'task.runtime.shadow_mismatch' | 'terminal.transition.persisted' | 'host.tool.result.reconciled' | 'verification.completed' | 'hook.stop.completed' | 'hook.stop.degraded' | 'hook.runtime.completed' | 'hook.runtime.degraded' | 'hook.session_end.completed' | 'hook.session_end.degraded' | 'session.reconciled' | 'durable.work.transitioned' | 'semantic.route.scored' | 'semantic.resolution.escalated' | 'semantic.resolution.completed' | 'semantic.resolution.abstained' | 'semantic.authority.conflicted' | 'semantic.regex.shadow_mismatch' | 'semantic.model.profile_evaluated';
97
97
  export interface SemanticControlLogEvent {
98
98
  event: SemanticControlLogEventName;
99
99
  identity: Partial<CanonicalTaskIdentity> & Pick<CanonicalTaskIdentity, 'projectRoot'> & {
@@ -1 +1 @@
1
- {"version":3,"file":"task-semantic-control.d.ts","sourceRoot":"","sources":["../../src/types/task-semantic-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-semantic-control.d.ts","sourceRoot":"","sources":["../../src/types/task-semantic-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,oBAAoB,GAC5B,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,YAAY,GACZ,sBAAsB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,sBAAsB,EAAE,cAAc,EAAE,CAAC;IACzC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,KAAK,CAAC,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;IACzF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,oBAAoB,GACpB,wBAAwB,GACxB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,oBAAoB,CAAC;IAClC,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,2BAA2B,GACnC,6BAA6B,GAC7B,yBAAyB,GACzB,6BAA6B,GAC7B,yBAAyB,GACzB,0BAA0B,GAC1B,wBAAwB,GACxB,0BAA0B,GAC1B,2BAA2B,GAC3B,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,WAAW,EAAE,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC;IAC1D,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,sBAAsB,GAC9B,gBAAgB,GAChB,gBAAgB,GAChB,sBAAsB,GACtB,kBAAkB,GAClB,mBAAmB,CAAC;AAExB,MAAM,MAAM,wBAAwB,GAChC,KAAK,GACL,WAAW,GACX,WAAW,GACX,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,GACrB,kBAAkB,GAClB,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,QAAQ,GACR,yBAAyB,GACzB,wBAAwB,CAAC;AAE7B,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,2BAA2B,GACnC,wBAAwB,GACxB,yBAAyB,GACzB,wBAAwB,GACxB,2BAA2B,GAC3B,oBAAoB,GACpB,8BAA8B,GAC9B,yBAAyB,GACzB,4BAA4B,GAC5B,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,GACnB,6BAA6B,GAC7B,oCAAoC,GACpC,yBAAyB,GACzB,wBAAwB,GACxB,2BAA2B,GAC3B,0BAA0B,GAC1B,+BAA+B,GAC/B,4BAA4B,GAC5B,yBAAyB,GACzB,yBAAyB,GACzB,wBAAwB,GACxB,uBAAuB,GACvB,yBAAyB,GACzB,8BAA8B,GAC9B,qBAAqB,GACrB,0BAA0B,GAC1B,2BAA2B,GAC3B,iCAAiC,GACjC,yBAAyB,GACzB,+BAA+B,GAC/B,4BAA4B,GAC5B,2BAA2B,GAC3B,8BAA8B,GAC9B,yBAAyB,GACzB,6BAA6B,GAC7B,8BAA8B,GAC9B,+BAA+B,GAC/B,6BAA6B,GAC7B,wBAAwB,GACxB,qBAAqB,GACrB,oBAAoB,GACpB,wBAAwB,GACxB,uBAAuB,GACvB,4BAA4B,GAC5B,2BAA2B,GAC3B,oBAAoB,GACpB,2BAA2B,GAC3B,uBAAuB,GACvB,+BAA+B,GAC/B,+BAA+B,GAC/B,+BAA+B,GAC/B,+BAA+B,GAC/B,gCAAgC,GAChC,kCAAkC,CAAC;AAEvC,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,2BAA2B,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,GAAG;QACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,yFAAyF;AACzF,MAAM,MAAM,eAAe,GAAG,OAAO,oBAAoB,EAAE,UAAU,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,OAAO,oBAAoB,EAAE,kBAAkB,CAAC;AAC/E,MAAM,MAAM,mBAAmB,GAAG,OAAO,oBAAoB,EAAE,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/sdk",
3
- "version": "0.17.3",
3
+ "version": "0.17.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -37,7 +37,7 @@
37
37
  "clean": "rm -rf dist"
38
38
  },
39
39
  "dependencies": {
40
- "@devflow-tools/database": "0.17.3",
40
+ "@devflow-tools/database": "0.17.4",
41
41
  "tiktoken": "^1.0.0"
42
42
  },
43
43
  "devDependencies": {
@@ -47,5 +47,5 @@
47
47
  "files": [
48
48
  "dist"
49
49
  ],
50
- "gitHead": "964af33767bf232606e63d973b3a29d7d53c8119"
50
+ "gitHead": "817b0286c249eed9c2bd27d3974ee3b3d6ded4bb"
51
51
  }