liminal 0.5.4 → 0.5.6
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/Agent.ts +24 -16
- package/CHANGELOG.md +12 -0
- package/Context.ts +52 -0
- package/EventBase.ts +21 -8
- package/Fiber.ts +44 -57
- package/Handler.ts +6 -0
- package/L/L.ts +0 -3
- package/L/_infer.ts +14 -21
- package/L/_message.ts +6 -4
- package/L/branch.ts +15 -33
- package/L/emit.ts +10 -2
- package/L/model.ts +11 -6
- package/L/rune.ts +2 -2
- package/LEvent.ts +25 -21
- package/MessageRegistry.ts +21 -0
- package/{state/ModelRegistry.ts → ModelRegistry.ts} +17 -18
- package/Rune.ts +2 -2
- package/Runic.ts +11 -3
- package/RuntimeEvent.ts +6 -0
- package/dist/Agent.d.ts +11 -7
- package/dist/Agent.js +11 -8
- package/dist/Agent.js.map +1 -1
- package/dist/Context.d.ts +12 -0
- package/dist/Context.js +41 -0
- package/dist/Context.js.map +1 -0
- package/dist/EventBase.d.ts +7 -4
- package/dist/EventBase.js +17 -11
- package/dist/EventBase.js.map +1 -1
- package/dist/Fiber.d.ts +7 -19
- package/dist/Fiber.js +38 -34
- package/dist/Fiber.js.map +1 -1
- package/dist/Handler.d.ts +4 -1
- package/dist/Handler.js +2 -1
- package/dist/Handler.js.map +1 -1
- package/dist/L/L.d.ts +0 -3
- package/dist/L/L.js +0 -3
- package/dist/L/L.js.map +1 -1
- package/dist/L/_infer.js +15 -18
- package/dist/L/_infer.js.map +1 -1
- package/dist/L/_message.js +6 -4
- package/dist/L/_message.js.map +1 -1
- package/dist/L/branch.js +13 -32
- package/dist/L/branch.js.map +1 -1
- package/dist/L/emit.js +10 -2
- package/dist/L/emit.js.map +1 -1
- package/dist/L/model.d.ts +2 -1
- package/dist/L/model.js +10 -5
- package/dist/L/model.js.map +1 -1
- package/dist/L/rune.d.ts +2 -2
- package/dist/L/rune.js +1 -0
- package/dist/L/rune.js.map +1 -1
- package/dist/LEvent.d.ts +55 -10
- package/dist/LEvent.js +17 -16
- package/dist/LEvent.js.map +1 -1
- package/dist/MessageRegistry.d.ts +9 -0
- package/dist/MessageRegistry.js +15 -0
- package/dist/MessageRegistry.js.map +1 -0
- package/dist/{state/ModelRegistry.d.ts → ModelRegistry.d.ts} +4 -3
- package/dist/{state/ModelRegistry.js → ModelRegistry.js} +12 -13
- package/dist/ModelRegistry.js.map +1 -0
- package/dist/Rune.d.ts +2 -2
- package/dist/Runic.d.ts +3 -3
- package/dist/Runic.js.map +1 -1
- package/dist/RuntimeEvent.d.ts +5 -0
- package/dist/RuntimeEvent.js +2 -0
- package/dist/RuntimeEvent.js.map +1 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +3 -4
- package/package.json +1 -1
- package/Globals.ts +0 -10
- package/L/all.ts +0 -11
- package/L/fork.ts +0 -20
- package/L/join.ts +0 -9
- package/L/namespace.ts +0 -11
- package/L/self.ts +0 -13
- package/dist/Globals.d.ts +0 -6
- package/dist/Globals.js +0 -2
- package/dist/Globals.js.map +0 -1
- package/dist/L/all.d.ts +0 -7
- package/dist/L/all.js +0 -5
- package/dist/L/all.js.map +0 -1
- package/dist/L/fork.d.ts +0 -1
- package/dist/L/fork.js +0 -20
- package/dist/L/fork.js.map +0 -1
- package/dist/L/join.d.ts +0 -5
- package/dist/L/join.js +0 -5
- package/dist/L/join.js.map +0 -1
- package/dist/L/namespace.d.ts +0 -1
- package/dist/L/namespace.js +0 -12
- package/dist/L/namespace.js.map +0 -1
- package/dist/L/self.d.ts +0 -6
- package/dist/L/self.js +0 -7
- package/dist/L/self.js.map +0 -1
- package/dist/run.d.ts +0 -3
- package/dist/run.js +0 -35
- package/dist/run.js.map +0 -1
- package/dist/state/Context.d.ts +0 -8
- package/dist/state/Context.js +0 -17
- package/dist/state/Context.js.map +0 -1
- package/dist/state/MessageRegistry.d.ts +0 -8
- package/dist/state/MessageRegistry.js +0 -17
- package/dist/state/MessageRegistry.js.map +0 -1
- package/dist/state/ModelConfig.d.ts +0 -49
- package/dist/state/ModelConfig.js +0 -18
- package/dist/state/ModelConfig.js.map +0 -1
- package/dist/state/ModelRegistry.js.map +0 -1
- package/dist/state/StateMap.d.ts +0 -8
- package/dist/state/StateMap.js +0 -18
- package/dist/state/StateMap.js.map +0 -1
- package/run.ts +0 -39
- package/state/Context.ts +0 -19
- package/state/MessageRegistry.ts +0 -21
- package/state/ModelConfig.ts +0 -49
- package/state/StateMap.ts +0 -24
package/dist/run.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,KAAQ,EACR,MAA+B;IAE/B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAc,CAAA;IACxE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC5B,OAAO,MAAM,OAAO,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC/B,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,cAAc,CAAC,GAAG,EAAE,CAClB,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,OAAY,CAAA;QAChB,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACzC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;gBAC1B,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC5B,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxC,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;YACzB,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC;QAAC,OAAO,MAAe,EAAE,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,CAAA;QAChB,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,MAAM,OAAO,CAAA;AACtB,CAAC"}
|
package/dist/state/Context.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
-
import { StateMap } from "./StateMap";
|
|
3
|
-
declare class Context extends AsyncLocalStorage<StateMap> {
|
|
4
|
-
get(): StateMap;
|
|
5
|
-
fork<T>(f: () => Promise<T>): Promise<T>;
|
|
6
|
-
}
|
|
7
|
-
export declare const context: Context;
|
|
8
|
-
export {};
|
package/dist/state/Context.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
-
import { StateMap } from "./StateMap";
|
|
3
|
-
class Context extends AsyncLocalStorage {
|
|
4
|
-
get() {
|
|
5
|
-
let state = this.getStore();
|
|
6
|
-
if (!state) {
|
|
7
|
-
state = new StateMap();
|
|
8
|
-
this.enterWith(state);
|
|
9
|
-
}
|
|
10
|
-
return state;
|
|
11
|
-
}
|
|
12
|
-
fork(f) {
|
|
13
|
-
return this.run(this.get(), f);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export const context = new Context();
|
|
17
|
-
//# sourceMappingURL=Context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../state/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,OAAQ,SAAQ,iBAA2B;IAC/C,GAAG;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAA;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAI,CAAmB;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Message } from "../Message.ts";
|
|
2
|
-
export declare class MessageRegistry {
|
|
3
|
-
static make(messageRegistry?: MessageRegistry): MessageRegistry;
|
|
4
|
-
messages: Array<Message>;
|
|
5
|
-
constructor(messages?: Iterable<Message>);
|
|
6
|
-
clone(): MessageRegistry;
|
|
7
|
-
append(message: Message): void;
|
|
8
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// TODO: marks and tags
|
|
2
|
-
export class MessageRegistry {
|
|
3
|
-
static make(messageRegistry) {
|
|
4
|
-
return new MessageRegistry(messageRegistry?.messages ? [...messageRegistry?.messages] : undefined);
|
|
5
|
-
}
|
|
6
|
-
messages;
|
|
7
|
-
constructor(messages = []) {
|
|
8
|
-
this.messages = Array.from(messages);
|
|
9
|
-
}
|
|
10
|
-
clone() {
|
|
11
|
-
return new MessageRegistry([...this.messages]);
|
|
12
|
-
}
|
|
13
|
-
append(message) {
|
|
14
|
-
this.messages.push(message);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=MessageRegistry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MessageRegistry.js","sourceRoot":"","sources":["../../state/MessageRegistry.ts"],"names":[],"mappings":"AAEA,uBAAuB;AACvB,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAC,IAAI,CAAC,eAAiC;QAC3C,OAAO,IAAI,eAAe,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACpG,CAAC;IAED,QAAQ,CAAgB;IACxB,YAAY,WAA8B,EAAE;QAC1C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,CAAC,OAAgB;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;CACF"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export declare class ModelConfig {
|
|
2
|
-
static from(config: Partial<ModelConfig>): ModelConfig & Partial<ModelConfig>;
|
|
3
|
-
/** Seed used for deterministic sampling. */
|
|
4
|
-
seed?: number;
|
|
5
|
-
/** Logit bias modifies the likelihood of specific tokens appearing. */
|
|
6
|
-
logitBias?: Record<string, number>;
|
|
7
|
-
/** Sampling configuration. */
|
|
8
|
-
sampling?: SamplerConfig;
|
|
9
|
-
/** Creates a copy of the configuration. */
|
|
10
|
-
clone(): ModelConfig & this & {
|
|
11
|
-
logitBias: {
|
|
12
|
-
[x: string]: number;
|
|
13
|
-
};
|
|
14
|
-
sampling: {
|
|
15
|
-
stopSequences: string[];
|
|
16
|
-
penalty: {
|
|
17
|
-
presence?: number;
|
|
18
|
-
frequency?: number;
|
|
19
|
-
repetitionRange?: number;
|
|
20
|
-
};
|
|
21
|
-
maxTokens?: number;
|
|
22
|
-
temperature?: number;
|
|
23
|
-
topP?: number;
|
|
24
|
-
topk?: number;
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
export interface SamplerConfig {
|
|
29
|
-
/** The maximum number of tokens to generate. */
|
|
30
|
-
maxTokens?: number;
|
|
31
|
-
/** Temperature controls randomness in generation (0.0-2.0). */
|
|
32
|
-
temperature?: number;
|
|
33
|
-
/** Cumulative probability cutoff for nucleus sampling (0.0-1.0). */
|
|
34
|
-
topP?: number;
|
|
35
|
-
/** The number of tokens to consider in top-k sampling. */
|
|
36
|
-
topk?: number;
|
|
37
|
-
/** Stop sequences is the list of sequences to stop generation. */
|
|
38
|
-
stopSequences?: Array<string>;
|
|
39
|
-
/** Penalty configuration. */
|
|
40
|
-
penalty?: PenaltyConfig;
|
|
41
|
-
}
|
|
42
|
-
export interface PenaltyConfig {
|
|
43
|
-
/** Presence penalty adjusts the likelihood of token repetition (-2.0 to 2.0). */
|
|
44
|
-
presence?: number;
|
|
45
|
-
/** Frequency penalty penalizes tokens based on their frequency (-2.0 to 2.0). */
|
|
46
|
-
frequency?: number;
|
|
47
|
-
/** Repetition penalty range defines how many tokens back repetition penalties apply. */
|
|
48
|
-
repetitionRange?: number;
|
|
49
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export class ModelConfig {
|
|
2
|
-
static from(config) {
|
|
3
|
-
return Object.assign(new ModelConfig(), config);
|
|
4
|
-
}
|
|
5
|
-
/** Creates a copy of the configuration. */
|
|
6
|
-
clone() {
|
|
7
|
-
return Object.assign(new ModelConfig(), {
|
|
8
|
-
...this,
|
|
9
|
-
logitBias: { ...this.logitBias },
|
|
10
|
-
sampling: {
|
|
11
|
-
...this.sampling,
|
|
12
|
-
stopSequences: [...(this.sampling?.stopSequences ?? [])],
|
|
13
|
-
penalty: { ...this.sampling?.penalty },
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=ModelConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelConfig.js","sourceRoot":"","sources":["../../state/ModelConfig.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,IAAI,CAAC,MAA4B;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,MAAM,CAAC,CAAA;IACjD,CAAC;IASD,2CAA2C;IAC3C,KAAK;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE;YACtC,GAAG,IAAI;YACP,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;YAChC,QAAQ,EAAE;gBACR,GAAG,IAAI,CAAC,QAAQ;gBAChB,aAAa,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;gBACxD,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;aACvC;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../../state/ModelRegistry.ts"],"names":[],"mappings":"AAEA,8CAA8C;AAC9C,MAAM,OAAO,aAAa;IACxB,MAAM,CAAC,IAAI,CAAC,aAA6B;QACvC,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;QACpC,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3D,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAKD,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAA;QACjC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACnD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAA;IACzB,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,IAAI,GAAsB;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,KAAK;SACb,CAAA;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACnC,CAAC;CACF"}
|
package/dist/state/StateMap.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare class StateMap extends Map<StateFactory, Cloneable> {
|
|
2
|
-
clone(): StateMap;
|
|
3
|
-
getOrInit<T extends Cloneable>(factory: StateFactory<T>): T;
|
|
4
|
-
}
|
|
5
|
-
export type StateFactory<T = any> = (instance?: T) => T;
|
|
6
|
-
export interface Cloneable {
|
|
7
|
-
clone(): this;
|
|
8
|
-
}
|
package/dist/state/StateMap.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export class StateMap extends Map {
|
|
2
|
-
clone() {
|
|
3
|
-
const clone = new StateMap();
|
|
4
|
-
for (const [key, value] of this.entries()) {
|
|
5
|
-
clone.set(key, value.clone());
|
|
6
|
-
}
|
|
7
|
-
return clone;
|
|
8
|
-
}
|
|
9
|
-
getOrInit(factory) {
|
|
10
|
-
let instance = this.get(factory);
|
|
11
|
-
if (!instance) {
|
|
12
|
-
instance = factory();
|
|
13
|
-
this.set(factory, instance);
|
|
14
|
-
}
|
|
15
|
-
return instance;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=StateMap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StateMap.js","sourceRoot":"","sources":["../../state/StateMap.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,GAA4B;IACxD,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAA;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS,CAAsB,OAAwB;QACrD,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,OAAO,EAAE,CAAA;YACpB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,QAAiB,CAAA;IAC1B,CAAC;CACF"}
|
package/run.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { FiberConfig } from "./Fiber.ts"
|
|
2
|
-
import { Runic } from "./Runic.ts"
|
|
3
|
-
import { context } from "./state/Context.ts"
|
|
4
|
-
|
|
5
|
-
export async function run<X extends Runic>(
|
|
6
|
-
runic: X,
|
|
7
|
-
config: FiberConfig<Runic.T<X>>,
|
|
8
|
-
): Promise<Runic.T<X>> {
|
|
9
|
-
const { promise, resolve, reject } = Promise.withResolvers<Runic.T<X>>()
|
|
10
|
-
if (config.signal) {
|
|
11
|
-
if (config.signal.aborted) {
|
|
12
|
-
reject(config.signal.reason)
|
|
13
|
-
return await promise
|
|
14
|
-
} else {
|
|
15
|
-
config.signal.addEventListener("abort", () => {
|
|
16
|
-
reject(config.signal?.reason)
|
|
17
|
-
})
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
queueMicrotask(() =>
|
|
21
|
-
context.fork(async () => {
|
|
22
|
-
const iterator = Runic.unwrap(runic)
|
|
23
|
-
let nextArg: any
|
|
24
|
-
try {
|
|
25
|
-
let current = await iterator.next(config)
|
|
26
|
-
while (!current.done) {
|
|
27
|
-
const rune = current.value
|
|
28
|
-
nextArg = await rune(config)
|
|
29
|
-
current = await iterator.next(nextArg)
|
|
30
|
-
}
|
|
31
|
-
const { value } = current
|
|
32
|
-
resolve(value)
|
|
33
|
-
} catch (reason: unknown) {
|
|
34
|
-
reject(reason)
|
|
35
|
-
}
|
|
36
|
-
})
|
|
37
|
-
)
|
|
38
|
-
return await promise
|
|
39
|
-
}
|
package/state/Context.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "node:async_hooks"
|
|
2
|
-
import { StateMap } from "./StateMap"
|
|
3
|
-
|
|
4
|
-
class Context extends AsyncLocalStorage<StateMap> {
|
|
5
|
-
get(): StateMap {
|
|
6
|
-
let state = this.getStore()
|
|
7
|
-
if (!state) {
|
|
8
|
-
state = new StateMap()
|
|
9
|
-
this.enterWith(state)
|
|
10
|
-
}
|
|
11
|
-
return state
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
fork<T>(f: () => Promise<T>): Promise<T> {
|
|
15
|
-
return this.run(this.get(), f)
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export const context = new Context()
|
package/state/MessageRegistry.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { Message } from "../Message.ts"
|
|
2
|
-
|
|
3
|
-
// TODO: marks and tags
|
|
4
|
-
export class MessageRegistry {
|
|
5
|
-
static make(messageRegistry?: MessageRegistry) {
|
|
6
|
-
return new MessageRegistry(messageRegistry?.messages ? [...messageRegistry?.messages] : undefined)
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
messages: Array<Message>
|
|
10
|
-
constructor(messages: Iterable<Message> = []) {
|
|
11
|
-
this.messages = Array.from(messages)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
clone() {
|
|
15
|
-
return new MessageRegistry([...this.messages])
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
append(message: Message) {
|
|
19
|
-
this.messages.push(message)
|
|
20
|
-
}
|
|
21
|
-
}
|
package/state/ModelConfig.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export class ModelConfig {
|
|
2
|
-
static from(config: Partial<ModelConfig>) {
|
|
3
|
-
return Object.assign(new ModelConfig(), config)
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
/** Seed used for deterministic sampling. */
|
|
7
|
-
declare seed?: number
|
|
8
|
-
/** Logit bias modifies the likelihood of specific tokens appearing. */
|
|
9
|
-
declare logitBias?: Record<string, number>
|
|
10
|
-
/** Sampling configuration. */
|
|
11
|
-
declare sampling?: SamplerConfig
|
|
12
|
-
|
|
13
|
-
/** Creates a copy of the configuration. */
|
|
14
|
-
clone() {
|
|
15
|
-
return Object.assign(new ModelConfig(), {
|
|
16
|
-
...this,
|
|
17
|
-
logitBias: { ...this.logitBias },
|
|
18
|
-
sampling: {
|
|
19
|
-
...this.sampling,
|
|
20
|
-
stopSequences: [...(this.sampling?.stopSequences ?? [])],
|
|
21
|
-
penalty: { ...this.sampling?.penalty },
|
|
22
|
-
},
|
|
23
|
-
})
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface SamplerConfig {
|
|
28
|
-
/** The maximum number of tokens to generate. */
|
|
29
|
-
maxTokens?: number
|
|
30
|
-
/** Temperature controls randomness in generation (0.0-2.0). */
|
|
31
|
-
temperature?: number
|
|
32
|
-
/** Cumulative probability cutoff for nucleus sampling (0.0-1.0). */
|
|
33
|
-
topP?: number
|
|
34
|
-
/** The number of tokens to consider in top-k sampling. */
|
|
35
|
-
topk?: number
|
|
36
|
-
/** Stop sequences is the list of sequences to stop generation. */
|
|
37
|
-
stopSequences?: Array<string>
|
|
38
|
-
/** Penalty configuration. */
|
|
39
|
-
penalty?: PenaltyConfig
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface PenaltyConfig {
|
|
43
|
-
/** Presence penalty adjusts the likelihood of token repetition (-2.0 to 2.0). */
|
|
44
|
-
presence?: number
|
|
45
|
-
/** Frequency penalty penalizes tokens based on their frequency (-2.0 to 2.0). */
|
|
46
|
-
frequency?: number
|
|
47
|
-
/** Repetition penalty range defines how many tokens back repetition penalties apply. */
|
|
48
|
-
repetitionRange?: number
|
|
49
|
-
}
|
package/state/StateMap.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export class StateMap extends Map<StateFactory, Cloneable> {
|
|
2
|
-
clone(): StateMap {
|
|
3
|
-
const clone = new StateMap()
|
|
4
|
-
for (const [key, value] of this.entries()) {
|
|
5
|
-
clone.set(key, value.clone())
|
|
6
|
-
}
|
|
7
|
-
return clone
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
getOrInit<T extends Cloneable>(factory: StateFactory<T>): T {
|
|
11
|
-
let instance = this.get(factory)
|
|
12
|
-
if (!instance) {
|
|
13
|
-
instance = factory()
|
|
14
|
-
this.set(factory, instance)
|
|
15
|
-
}
|
|
16
|
-
return instance as never
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export type StateFactory<T = any> = (instance?: T) => T
|
|
21
|
-
|
|
22
|
-
export interface Cloneable {
|
|
23
|
-
clone(): this
|
|
24
|
-
}
|