@agentick/apple 0.8.0 → 0.9.1
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 +112 -138
- package/dist/.tsbuildinfo.build +1 -1
- package/dist/apple-model.d.ts +1 -1
- package/dist/apple-model.d.ts.map +1 -1
- package/dist/apple-model.jsx +2 -2
- package/dist/apple-model.jsx.map +1 -1
- package/dist/apple.d.ts +1 -1
- package/dist/apple.d.ts.map +1 -1
- package/dist/apple.js +45 -1
- package/dist/apple.js.map +1 -1
- package/dist/embedding.d.ts +36 -0
- package/dist/embedding.d.ts.map +1 -0
- package/dist/embedding.js +106 -0
- package/dist/embedding.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/inference.swift +114 -11
- package/package.json +3 -3
package/dist/apple-model.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apple-model.d.ts","sourceRoot":"","sources":["../src/apple-model.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAS,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"apple-model.d.ts","sourceRoot":"","sources":["../src/apple-model.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAS,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,8CAA8C;IAC9C,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,gDAAgD;IAChD,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,oDAIhD"}
|
package/dist/apple-model.jsx
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
import { Model } from "@agentick/core/jsx";
|
|
5
5
|
import { createElement } from "@agentick/core/jsx-runtime";
|
|
6
|
-
import { createAppleModel } from "./apple";
|
|
7
|
-
import {} from "./types";
|
|
6
|
+
import { createAppleModel } from "./apple.js";
|
|
7
|
+
import {} from "./types.js";
|
|
8
8
|
/**
|
|
9
9
|
* AppleModel component for declarative model configuration in JSX.
|
|
10
10
|
*
|
package/dist/apple-model.jsx.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apple-model.jsx","sourceRoot":"","sources":["../src/apple-model.tsx"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAA4B,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"apple-model.jsx","sourceRoot":"","sources":["../src/apple-model.tsx"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAA4B,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAA2B,MAAM,YAAY,CAAC;AAYrD;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC;IACvD,MAAM,OAAO,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChD,OAAO,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
package/dist/apple.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* Requires macOS 26+ with Apple Intelligence enabled.
|
|
13
13
|
*/
|
|
14
14
|
import { type ModelClass } from "@agentick/core/model";
|
|
15
|
-
import type { AppleAdapterConfig } from "./types";
|
|
15
|
+
import type { AppleAdapterConfig } from "./types.js";
|
|
16
16
|
/**
|
|
17
17
|
* Create an Apple Foundation Models adapter.
|
|
18
18
|
*
|
package/dist/apple.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apple.d.ts","sourceRoot":"","sources":["../src/apple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAGL,KAAK,UAAU,EAGhB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EACV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"apple.d.ts","sourceRoot":"","sources":["../src/apple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAGL,KAAK,UAAU,EAGhB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EACV,kBAAkB,EAUnB,MAAM,YAAY,CAAC;AAUpB;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,kBAAuB,GAAG,UAAU,CAyH5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CAAC,MAAM,GAAE,kBAAuB,GAAG,UAAU,CAEjE"}
|
package/dist/apple.js
CHANGED
|
@@ -17,7 +17,7 @@ import { join, dirname } from "node:path";
|
|
|
17
17
|
import { fileURLToPath } from "node:url";
|
|
18
18
|
import { createAdapter, StopReason, } from "@agentick/core/model";
|
|
19
19
|
import { normalizeModelInput } from "@agentick/core/utils";
|
|
20
|
-
import { STOP_REASON_MAP } from "./types";
|
|
20
|
+
import { STOP_REASON_MAP } from "./types.js";
|
|
21
21
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
22
|
const DEFAULT_BRIDGE_PATH = join(__dirname, "..", "bin", "apple-fm-bridge");
|
|
23
23
|
// ============================================================================
|
|
@@ -133,6 +133,11 @@ export function createAppleModel(config = {}) {
|
|
|
133
133
|
executeStream: async function* (input) {
|
|
134
134
|
yield* streamBridge(bridgePath, { ...input, stream: true });
|
|
135
135
|
},
|
|
136
|
+
embed: async (texts) => {
|
|
137
|
+
const input = { operation: "embed", texts, script: "latin" };
|
|
138
|
+
const output = await runEmbedBridge(bridgePath, input);
|
|
139
|
+
return { embeddings: output.embeddings, dimensions: output.dimensions, model: output.model };
|
|
140
|
+
},
|
|
136
141
|
});
|
|
137
142
|
}
|
|
138
143
|
/**
|
|
@@ -293,4 +298,43 @@ async function* streamBridge(bridgePath, input) {
|
|
|
293
298
|
yield { type: "error", error: stderrBuf.trim() };
|
|
294
299
|
}
|
|
295
300
|
}
|
|
301
|
+
// ============================================================================
|
|
302
|
+
// Embedding Bridge
|
|
303
|
+
// ============================================================================
|
|
304
|
+
/** Spawn the Swift bridge with embed operation, collect output as EmbedBridgeOutput */
|
|
305
|
+
function runEmbedBridge(bridgePath, input) {
|
|
306
|
+
return new Promise((resolve, reject) => {
|
|
307
|
+
const proc = spawn(bridgePath, [], { stdio: ["pipe", "pipe", "pipe"] });
|
|
308
|
+
let stdout = "";
|
|
309
|
+
let stderr = "";
|
|
310
|
+
proc.stdout.on("data", (data) => {
|
|
311
|
+
stdout += data.toString();
|
|
312
|
+
});
|
|
313
|
+
proc.stderr.on("data", (data) => {
|
|
314
|
+
stderr += data.toString();
|
|
315
|
+
});
|
|
316
|
+
proc.on("error", (err) => {
|
|
317
|
+
reject(new Error(`Failed to spawn Apple FM bridge at ${bridgePath}: ${err.message}`));
|
|
318
|
+
});
|
|
319
|
+
proc.on("close", (code) => {
|
|
320
|
+
if (code !== 0) {
|
|
321
|
+
reject(new Error(`Apple FM bridge exited with code ${code}: ${stderr}`));
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
try {
|
|
325
|
+
const output = JSON.parse(stdout.trim());
|
|
326
|
+
if (output.type === "error") {
|
|
327
|
+
reject(new Error(`Apple embedding: ${output.error}`));
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
resolve(output);
|
|
331
|
+
}
|
|
332
|
+
catch {
|
|
333
|
+
reject(new Error(`Failed to parse bridge output: ${stdout.slice(0, 200)}`));
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
proc.stdin.write(JSON.stringify(input));
|
|
337
|
+
proc.stdin.end();
|
|
338
|
+
});
|
|
339
|
+
}
|
|
296
340
|
//# sourceMappingURL=apple.js.map
|
package/dist/apple.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apple.js","sourceRoot":"","sources":["../src/apple.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apple.js","sourceRoot":"","sources":["../src/apple.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apple On-Device Embeddings
|
|
3
|
+
*
|
|
4
|
+
* Generates vector embeddings using Apple's NLContextualEmbedding model,
|
|
5
|
+
* running entirely on-device via the NaturalLanguage framework.
|
|
6
|
+
*
|
|
7
|
+
* - 768 dimensions on macOS, 512 on iOS
|
|
8
|
+
* - 27+ languages across 6 script models
|
|
9
|
+
* - Completely private — no network calls
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { appleEmbedding } from '@agentick/apple';
|
|
14
|
+
*
|
|
15
|
+
* const embedder = appleEmbedding();
|
|
16
|
+
* const result = await embedder.embed(["Hello world"]);
|
|
17
|
+
* // result.embeddings[0] → number[512]
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import { type EmbeddingModel } from "@agentick/core/model";
|
|
21
|
+
import type { AppleEmbeddingConfig } from "./types.js";
|
|
22
|
+
/**
|
|
23
|
+
* Create an Apple on-device embedding model.
|
|
24
|
+
*
|
|
25
|
+
* Uses NLContextualEmbedding under the hood — mean-pooled token vectors
|
|
26
|
+
* producing a single vector per input text.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const embedder = appleEmbedding({ script: "latin" });
|
|
31
|
+
* const { embeddings } = await embedder.embed(["machine learning"]);
|
|
32
|
+
* console.log(embeddings[0].length); // 512
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function appleEmbedding(config?: AppleEmbeddingConfig): EmbeddingModel;
|
|
36
|
+
//# sourceMappingURL=embedding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAuC,MAAM,YAAY,CAAC;AAK5F;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,GAAE,oBAAyB,GAAG,cAAc,CA2BhF"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apple On-Device Embeddings
|
|
3
|
+
*
|
|
4
|
+
* Generates vector embeddings using Apple's NLContextualEmbedding model,
|
|
5
|
+
* running entirely on-device via the NaturalLanguage framework.
|
|
6
|
+
*
|
|
7
|
+
* - 768 dimensions on macOS, 512 on iOS
|
|
8
|
+
* - 27+ languages across 6 script models
|
|
9
|
+
* - Completely private — no network calls
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { appleEmbedding } from '@agentick/apple';
|
|
14
|
+
*
|
|
15
|
+
* const embedder = appleEmbedding();
|
|
16
|
+
* const result = await embedder.embed(["Hello world"]);
|
|
17
|
+
* // result.embeddings[0] → number[512]
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import { spawn } from "node:child_process";
|
|
21
|
+
import { existsSync } from "node:fs";
|
|
22
|
+
import { join, dirname } from "node:path";
|
|
23
|
+
import { fileURLToPath } from "node:url";
|
|
24
|
+
import { createEmbeddingAdapter } from "@agentick/core/model";
|
|
25
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
26
|
+
const DEFAULT_BRIDGE_PATH = join(__dirname, "..", "bin", "apple-fm-bridge");
|
|
27
|
+
/**
|
|
28
|
+
* Create an Apple on-device embedding model.
|
|
29
|
+
*
|
|
30
|
+
* Uses NLContextualEmbedding under the hood — mean-pooled token vectors
|
|
31
|
+
* producing a single vector per input text.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const embedder = appleEmbedding({ script: "latin" });
|
|
36
|
+
* const { embeddings } = await embedder.embed(["machine learning"]);
|
|
37
|
+
* console.log(embeddings[0].length); // 512
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export function appleEmbedding(config = {}) {
|
|
41
|
+
const script = config.script ?? "latin";
|
|
42
|
+
const bridgePath = resolveBridgePath(config.bridgePath);
|
|
43
|
+
return createEmbeddingAdapter({
|
|
44
|
+
metadata: {
|
|
45
|
+
id: "apple-contextual-embedding",
|
|
46
|
+
provider: "apple",
|
|
47
|
+
dimensions: 512,
|
|
48
|
+
model: "apple-contextual-embedding",
|
|
49
|
+
},
|
|
50
|
+
prepareInput: (texts, _options) => ({
|
|
51
|
+
operation: "embed",
|
|
52
|
+
texts,
|
|
53
|
+
script,
|
|
54
|
+
language: config.language,
|
|
55
|
+
}),
|
|
56
|
+
execute: (input) => runBridge(bridgePath, input),
|
|
57
|
+
processOutput: (output) => ({
|
|
58
|
+
embeddings: output.embeddings,
|
|
59
|
+
dimensions: output.dimensions,
|
|
60
|
+
model: output.model,
|
|
61
|
+
}),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function resolveBridgePath(explicit) {
|
|
65
|
+
if (explicit)
|
|
66
|
+
return explicit;
|
|
67
|
+
if (existsSync(DEFAULT_BRIDGE_PATH))
|
|
68
|
+
return DEFAULT_BRIDGE_PATH;
|
|
69
|
+
return "apple-fm-bridge";
|
|
70
|
+
}
|
|
71
|
+
function runBridge(bridgePath, input) {
|
|
72
|
+
return new Promise((resolve, reject) => {
|
|
73
|
+
const proc = spawn(bridgePath, [], { stdio: ["pipe", "pipe", "pipe"] });
|
|
74
|
+
let stdout = "";
|
|
75
|
+
let stderr = "";
|
|
76
|
+
proc.stdout.on("data", (data) => {
|
|
77
|
+
stdout += data.toString();
|
|
78
|
+
});
|
|
79
|
+
proc.stderr.on("data", (data) => {
|
|
80
|
+
stderr += data.toString();
|
|
81
|
+
});
|
|
82
|
+
proc.on("error", (err) => {
|
|
83
|
+
reject(new Error(`Failed to spawn Apple FM bridge at ${bridgePath}: ${err.message}`));
|
|
84
|
+
});
|
|
85
|
+
proc.on("close", (code) => {
|
|
86
|
+
if (code !== 0) {
|
|
87
|
+
reject(new Error(`Apple FM bridge exited with code ${code}: ${stderr}`));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
const output = JSON.parse(stdout.trim());
|
|
92
|
+
if (output.type === "error") {
|
|
93
|
+
reject(new Error(`Apple embedding: ${output.error}`));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
resolve(output);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
reject(new Error(`Failed to parse bridge output: ${stdout.slice(0, 200)}`));
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
proc.stdin.write(JSON.stringify(input));
|
|
103
|
+
proc.stdin.end();
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=embedding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
*
|
|
32
32
|
* @module @agentick/apple
|
|
33
33
|
*/
|
|
34
|
-
export * from "./apple-model";
|
|
35
|
-
export * from "./apple";
|
|
36
|
-
export
|
|
34
|
+
export * from "./apple-model.js";
|
|
35
|
+
export * from "./apple.js";
|
|
36
|
+
export { appleEmbedding } from "./embedding.js";
|
|
37
|
+
export type { AppleAdapterConfig, AppleEmbeddingConfig, EmbeddingScript, BridgeInput, BridgeOutput, BridgeChunk, } from "./types.js";
|
|
37
38
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -83,5 +83,39 @@ export type BridgeChunk = {
|
|
|
83
83
|
type: "error";
|
|
84
84
|
error: string;
|
|
85
85
|
};
|
|
86
|
+
/** Supported script models for NLContextualEmbedding */
|
|
87
|
+
export type EmbeddingScript = "latin" | "cyrillic" | "cjk" | "indic" | "thai" | "arabic";
|
|
88
|
+
/** Input sent to the Swift bridge for embedding */
|
|
89
|
+
export interface EmbedBridgeInput {
|
|
90
|
+
operation: "embed";
|
|
91
|
+
texts: string[];
|
|
92
|
+
script?: EmbeddingScript;
|
|
93
|
+
/** BCP-47 language code (e.g. "en", "fr", "de") — optional, refines results */
|
|
94
|
+
language?: string;
|
|
95
|
+
}
|
|
96
|
+
/** Output from the Swift bridge for embedding */
|
|
97
|
+
export interface EmbedBridgeOutput {
|
|
98
|
+
model: string;
|
|
99
|
+
embeddings: number[][];
|
|
100
|
+
dimensions: number;
|
|
101
|
+
script: string;
|
|
102
|
+
}
|
|
103
|
+
/** Configuration for the embedding API */
|
|
104
|
+
export interface AppleEmbeddingConfig {
|
|
105
|
+
/** Path to the compiled Swift bridge executable */
|
|
106
|
+
bridgePath?: string;
|
|
107
|
+
/**
|
|
108
|
+
* Script model to use. Each covers multiple languages:
|
|
109
|
+
* - "latin" (default) — English, French, German, Spanish, Portuguese, Italian, Dutch, etc.
|
|
110
|
+
* - "cyrillic" — Russian, Ukrainian, Bulgarian, Kazakh
|
|
111
|
+
* - "cjk" — Chinese, Japanese, Korean
|
|
112
|
+
* - "indic" — Hindi, Marathi, Bangla, Tamil, Telugu, etc.
|
|
113
|
+
* - "thai" — Thai
|
|
114
|
+
* - "arabic" — Arabic
|
|
115
|
+
*/
|
|
116
|
+
script?: EmbeddingScript;
|
|
117
|
+
/** BCP-47 language code for better results when language is known */
|
|
118
|
+
language?: string;
|
|
119
|
+
}
|
|
86
120
|
export declare const STOP_REASON_MAP: Record<string, StopReason>;
|
|
87
121
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAM9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAED,4CAA4C;AAC5C,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAMrC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAGtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyH9C,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,IAAI,EAAE,UAAU,CAAC,IAAI;IACrB,UAAU,EAAE,UAAU,CAAC,UAAU;CAClC,CAAC"}
|
package/inference.swift
CHANGED
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
/// Apple Foundation Models Bridge
|
|
2
2
|
///
|
|
3
3
|
/// A CLI executable that wraps Apple's on-device Foundation Models framework
|
|
4
|
-
/// with a JSON wire protocol compatible
|
|
4
|
+
/// and NaturalLanguage embedding models with a JSON wire protocol compatible
|
|
5
|
+
/// with agentick's adapter interface.
|
|
5
6
|
///
|
|
6
7
|
/// Wire protocol:
|
|
7
|
-
/// Input: JSON on stdin
|
|
8
|
+
/// Input: JSON on stdin
|
|
8
9
|
/// Output: JSON on stdout (ModelOutput for non-streaming, NDJSON AdapterDeltas for streaming)
|
|
9
10
|
///
|
|
11
|
+
/// Operations:
|
|
12
|
+
/// "generate" (default) — text generation via Foundation Models
|
|
13
|
+
/// "embed" — vector embeddings via NLContextualEmbedding
|
|
14
|
+
///
|
|
10
15
|
/// Build:
|
|
11
|
-
/// swiftc -parse-as-library -framework FoundationModels inference.swift -o apple-fm-bridge
|
|
16
|
+
/// swiftc -parse-as-library -framework FoundationModels -framework NaturalLanguage inference.swift -o apple-fm-bridge
|
|
12
17
|
///
|
|
13
18
|
/// Usage:
|
|
14
|
-
/// echo '{"messages":[{"role":"user","content":"Hello"}]
|
|
19
|
+
/// echo '{"messages":[{"role":"user","content":"Hello"}]}' | ./apple-fm-bridge
|
|
20
|
+
/// echo '{"operation":"embed","texts":["Hello world"]}' | ./apple-fm-bridge
|
|
15
21
|
|
|
16
22
|
import Foundation
|
|
17
23
|
import FoundationModels
|
|
24
|
+
import NaturalLanguage
|
|
18
25
|
|
|
19
26
|
// ============================================================================
|
|
20
27
|
// Wire Protocol Types (aligned with @agentick/shared)
|
|
@@ -23,7 +30,8 @@ import FoundationModels
|
|
|
23
30
|
// --- Input ---
|
|
24
31
|
|
|
25
32
|
struct BridgeInput: Decodable {
|
|
26
|
-
let
|
|
33
|
+
let operation: String? // "generate" (default) or "embed"
|
|
34
|
+
let messages: [WireMessage]?
|
|
27
35
|
let system: String?
|
|
28
36
|
let temperature: Double?
|
|
29
37
|
let maxTokens: Int?
|
|
@@ -31,6 +39,22 @@ struct BridgeInput: Decodable {
|
|
|
31
39
|
let responseFormat: ResponseFormat?
|
|
32
40
|
}
|
|
33
41
|
|
|
42
|
+
// --- Embedding Input ---
|
|
43
|
+
|
|
44
|
+
struct EmbedInput: Decodable {
|
|
45
|
+
let operation: String
|
|
46
|
+
let texts: [String]
|
|
47
|
+
let script: String? // "latin" (default), "cyrillic", "cjk", "indic", "thai", "arabic"
|
|
48
|
+
let language: String? // BCP-47 code, e.g. "en", "fr", "de" — optional, refines results
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
struct EmbedOutput: Encodable {
|
|
52
|
+
let model: String
|
|
53
|
+
let embeddings: [[Double]]
|
|
54
|
+
let dimensions: Int
|
|
55
|
+
let script: String
|
|
56
|
+
}
|
|
57
|
+
|
|
34
58
|
struct ResponseFormat: Decodable {
|
|
35
59
|
let type: String
|
|
36
60
|
let schema: JsonSchema?
|
|
@@ -192,9 +216,19 @@ struct AppleFoundationBridge {
|
|
|
192
216
|
return
|
|
193
217
|
}
|
|
194
218
|
|
|
219
|
+
// Peek at operation field to route
|
|
220
|
+
struct OperationPeek: Decodable { let operation: String? }
|
|
221
|
+
let peek = try JSONDecoder().decode(OperationPeek.self, from: inputData)
|
|
222
|
+
|
|
223
|
+
if peek.operation == "embed" {
|
|
224
|
+
let embedInput = try JSONDecoder().decode(EmbedInput.self, from: inputData)
|
|
225
|
+
try generateEmbeddings(input: embedInput, encoder: encoder)
|
|
226
|
+
return
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// Default: text generation
|
|
195
230
|
let input = try JSONDecoder().decode(BridgeInput.self, from: inputData)
|
|
196
231
|
|
|
197
|
-
// Check availability
|
|
198
232
|
let model = SystemLanguageModel.default
|
|
199
233
|
guard model.availability == .available else {
|
|
200
234
|
writeJSON(
|
|
@@ -204,14 +238,14 @@ struct AppleFoundationBridge {
|
|
|
204
238
|
return
|
|
205
239
|
}
|
|
206
240
|
|
|
207
|
-
|
|
208
|
-
|
|
241
|
+
let messages = input.messages ?? []
|
|
242
|
+
|
|
243
|
+
let systemPrompt = input.system ?? messages
|
|
209
244
|
.filter { $0.role == "system" }
|
|
210
245
|
.map { $0.content.text }
|
|
211
246
|
.joined(separator: "\n")
|
|
212
247
|
|
|
213
|
-
|
|
214
|
-
let prompt = buildPrompt(from: input.messages.filter { $0.role != "system" })
|
|
248
|
+
let prompt = buildPrompt(from: messages.filter { $0.role != "system" })
|
|
215
249
|
|
|
216
250
|
guard !prompt.isEmpty else {
|
|
217
251
|
writeJSON(ErrorOutput(error: "No user messages provided"), encoder: encoder)
|
|
@@ -222,7 +256,6 @@ struct AppleFoundationBridge {
|
|
|
222
256
|
? LanguageModelSession()
|
|
223
257
|
: LanguageModelSession(instructions: systemPrompt)
|
|
224
258
|
|
|
225
|
-
// Check if structured output is requested
|
|
226
259
|
if let responseFormat = input.responseFormat, responseFormat.type == "json_schema" {
|
|
227
260
|
if input.stream == true {
|
|
228
261
|
writeJSON(ErrorOutput(error: "Streaming not supported with json_schema response format"), encoder: encoder)
|
|
@@ -401,6 +434,76 @@ struct AppleFoundationBridge {
|
|
|
401
434
|
}
|
|
402
435
|
}
|
|
403
436
|
|
|
437
|
+
// MARK: - Embeddings
|
|
438
|
+
|
|
439
|
+
static func resolveScript(_ name: String?) -> NLScript {
|
|
440
|
+
switch name?.lowercased() {
|
|
441
|
+
case "cyrillic": return .cyrillic
|
|
442
|
+
case "cjk": return .simplifiedChinese // CJK model
|
|
443
|
+
case "devanagari", "indic": return .devanagari
|
|
444
|
+
case "thai": return .thai
|
|
445
|
+
case "arabic": return .arabic
|
|
446
|
+
default: return .latin
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
static func generateEmbeddings(input: EmbedInput, encoder: JSONEncoder) throws {
|
|
451
|
+
guard !input.texts.isEmpty else {
|
|
452
|
+
writeJSON(ErrorOutput(error: "No texts provided for embedding"), encoder: encoder)
|
|
453
|
+
return
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
let script = resolveScript(input.script)
|
|
457
|
+
guard let embedding = NLContextualEmbedding(script: script) else {
|
|
458
|
+
writeJSON(ErrorOutput(error: "No embedding model available for script: \(input.script ?? "latin")"), encoder: encoder)
|
|
459
|
+
return
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
guard embedding.hasAvailableAssets else {
|
|
463
|
+
writeJSON(ErrorOutput(error: "Embedding model assets not downloaded. Enable Apple Intelligence and ensure the model is available."), encoder: encoder)
|
|
464
|
+
return
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
try embedding.load()
|
|
468
|
+
defer { embedding.unload() }
|
|
469
|
+
|
|
470
|
+
let dimensions = embedding.dimension
|
|
471
|
+
let language: NLLanguage? = input.language.map { NLLanguage(rawValue: $0) }
|
|
472
|
+
|
|
473
|
+
var allEmbeddings: [[Double]] = []
|
|
474
|
+
|
|
475
|
+
for text in input.texts {
|
|
476
|
+
let result = try embedding.embeddingResult(for: text, language: language)
|
|
477
|
+
|
|
478
|
+
let count = result.sequenceLength
|
|
479
|
+
guard count > 0 else {
|
|
480
|
+
allEmbeddings.append(Array(repeating: 0.0, count: dimensions))
|
|
481
|
+
continue
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// Mean-pool token vectors into a single sentence embedding
|
|
485
|
+
var sum = Array(repeating: 0.0, count: dimensions)
|
|
486
|
+
result.enumerateTokenVectors(in: text.startIndex..<text.endIndex) { vector, tokenRange in
|
|
487
|
+
for i in 0..<min(vector.count, dimensions) {
|
|
488
|
+
sum[i] += Double(vector[i])
|
|
489
|
+
}
|
|
490
|
+
return true
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
let divisor = Double(count)
|
|
494
|
+
let averaged = sum.map { $0 / divisor }
|
|
495
|
+
allEmbeddings.append(averaged)
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
let output = EmbedOutput(
|
|
499
|
+
model: "apple-contextual-embedding",
|
|
500
|
+
embeddings: allEmbeddings,
|
|
501
|
+
dimensions: dimensions,
|
|
502
|
+
script: input.script ?? "latin"
|
|
503
|
+
)
|
|
504
|
+
writeJSON(output, encoder: encoder)
|
|
505
|
+
}
|
|
506
|
+
|
|
404
507
|
// MARK: - Prompt Construction
|
|
405
508
|
|
|
406
509
|
/// Flatten conversation messages into a single prompt string.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentick/apple",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Apple Foundation Models adapter for Agentick — on-device inference via macOS 26+",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adapter",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@agentick/core": "0.
|
|
37
|
-
"@agentick/shared": "0.
|
|
36
|
+
"@agentick/core": "0.9.1",
|
|
37
|
+
"@agentick/shared": "0.9.1"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"postinstall": "node scripts/compile-bridge.mjs",
|