@forgeax/engine-intelligence 0.0.0-dev.8d955ade1c79

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,30 @@
1
+ import { type Result } from '@forgeax/engine-types';
2
+ import { IntelligenceError } from './errors';
3
+ import { type ActivityEvent, type ActivityId, type ActivityRef, type ActivityRequest, type ActivitySubmission, type IntelligenceLimits, type IntelligenceProvider, type IntelligenceRuntimeOptions, type IntelligenceService } from './types';
4
+ export declare function resolveIntelligenceLimits(overrides: Partial<IntelligenceLimits> | undefined): IntelligenceLimits;
5
+ export declare class IntelligenceRuntime implements IntelligenceService {
6
+ private readonly provider;
7
+ readonly providerId: string;
8
+ readonly limits: IntelligenceLimits;
9
+ private readonly records;
10
+ private readonly createActivityId;
11
+ private readonly createSessionId;
12
+ private closed;
13
+ private closeTask;
14
+ constructor(provider: IntelligenceProvider, options?: IntelligenceRuntimeOptions);
15
+ submit(request: ActivityRequest): Result<ActivityRef, IntelligenceError>;
16
+ /** Accept an already identified request from a realm transport. */
17
+ accept(submission: ActivitySubmission): Result<void, IntelligenceError>;
18
+ poll(maxEvents?: number): readonly ActivityEvent[];
19
+ cancel(activity: ActivityId): Result<void, IntelligenceError>;
20
+ close(): Promise<void>;
21
+ private performClose;
22
+ private get runningCount();
23
+ private validateRequest;
24
+ private createSink;
25
+ private overflow;
26
+ private push;
27
+ private closedError;
28
+ }
29
+ export declare function createIntelligenceRuntime(provider: IntelligenceProvider, options?: IntelligenceRuntimeOptions): IntelligenceRuntime;
30
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAsC,MAAM,UAAU,CAAC;AACjF,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EAGvB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACzB,MAAM,SAAS,CAAC;AAmBjB,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,GACjD,kBAAkB,CAapB;AAED,qBAAa,mBAAoB,YAAW,mBAAmB;IAU3D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;IAC/C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA4B;gBAG1B,QAAQ,EAAE,oBAAoB,EAC/C,OAAO,GAAE,0BAA+B;IAS1C,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAWxE,mEAAmE;IACnE,MAAM,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAyCvE,IAAI,CAAC,SAAS,SAA4B,GAAG,SAAS,aAAa,EAAE;IAerE,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAkB7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAKR,YAAY;IAU1B,OAAO,KAAK,YAAY,GAIvB;IAED,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,UAAU;IAsClB,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,IAAI;IAoBZ,OAAO,CAAC,WAAW;CAGpB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAErB"}
@@ -0,0 +1,61 @@
1
+ import { type Result } from '@forgeax/engine-types';
2
+ import { IntelligenceError } from './errors';
3
+ import { type IntelligenceRuntime } from './runtime';
4
+ import { type ActivityEvent, type ActivityId, type ActivityRef, type ActivityRequest, type ActivitySubmission, type IntelligenceLimits, type IntelligenceRuntimeOptions, type IntelligenceService } from './types';
5
+ export type IntelligenceHostCommand = {
6
+ readonly kind: 'intelligence-submit';
7
+ readonly submission: ActivitySubmission;
8
+ } | {
9
+ readonly kind: 'intelligence-poll';
10
+ readonly maxEvents: number;
11
+ } | {
12
+ readonly kind: 'intelligence-cancel';
13
+ readonly activityId: ActivityId;
14
+ } | {
15
+ readonly kind: 'intelligence-close';
16
+ };
17
+ export type IntelligenceRealmMessage = {
18
+ readonly kind: 'intelligence-events';
19
+ readonly events: readonly ActivityEvent[];
20
+ } | {
21
+ readonly kind: 'intelligence-closed';
22
+ } | {
23
+ readonly kind: 'intelligence-rejected';
24
+ readonly activityId: ActivityId;
25
+ readonly error: import('./errors').IntelligenceFailure;
26
+ };
27
+ export interface IntelligenceMessagePort {
28
+ postMessage(message: IntelligenceHostCommand | IntelligenceRealmMessage): void;
29
+ addEventListener(type: 'message', listener: (event: MessageEvent<IntelligenceHostCommand | IntelligenceRealmMessage>) => void): void;
30
+ removeEventListener(type: 'message', listener: (event: MessageEvent<IntelligenceHostCommand | IntelligenceRealmMessage>) => void): void;
31
+ start?(): void;
32
+ close(): void;
33
+ }
34
+ export interface IntelligencePortBinding {
35
+ close(): Promise<void>;
36
+ }
37
+ /** Bind a Host-owned runtime to the realm side of a MessageChannel. */
38
+ export declare function bindIntelligencePort(port: IntelligenceMessagePort, runtime: IntelligenceRuntime): IntelligencePortBinding;
39
+ /** Worker/main-realm client. Polling is request/response and never awaits a Host provider. */
40
+ export declare class IntelligencePortClient implements IntelligenceService {
41
+ readonly providerId: string;
42
+ private readonly port;
43
+ readonly limits: IntelligenceLimits;
44
+ private readonly received;
45
+ private readonly active;
46
+ private readonly rejected;
47
+ private readonly createActivityId;
48
+ private readonly createSessionId;
49
+ private readonly listener;
50
+ private closed;
51
+ private pollPending;
52
+ private closeTask;
53
+ private closeResolve;
54
+ constructor(providerId: string, port: IntelligenceMessagePort, options?: IntelligenceRuntimeOptions);
55
+ submit(request: ActivityRequest): Result<ActivityRef, IntelligenceError>;
56
+ poll(maxEvents?: number): readonly ActivityEvent[];
57
+ cancel(id: ActivityId): Result<void, IntelligenceError>;
58
+ close(): Promise<void>;
59
+ }
60
+ export declare function createIntelligencePortClient(providerId: string, port: IntelligenceMessagePort, options?: IntelligenceRuntimeOptions): IntelligencePortClient;
61
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { Result } from '@forgeax/engine-types';
2
+ import type { IntelligenceError, IntelligenceFailure } from './errors';
3
+ declare const activityIdBrand: unique symbol;
4
+ /** Opaque identity of one bounded asynchronous operation. */
5
+ export type ActivityId = string & {
6
+ readonly [activityIdBrand]: true;
7
+ };
8
+ /** Provider-scoped durable conversation identity. */
9
+ export interface SessionRef {
10
+ readonly providerId: string;
11
+ readonly id: string;
12
+ }
13
+ export interface ActivityRef {
14
+ readonly id: ActivityId;
15
+ readonly session: SessionRef;
16
+ }
17
+ export interface ActivityRequest {
18
+ readonly input: string;
19
+ readonly session?: SessionRef;
20
+ }
21
+ /** Fully identified request used by realm transports and provider dispatch. */
22
+ export interface ActivitySubmission extends ActivityRef {
23
+ readonly input: string;
24
+ }
25
+ export type ActivityEvent = {
26
+ readonly type: 'text-delta';
27
+ readonly activityId: ActivityId;
28
+ readonly sequence: number;
29
+ readonly text: string;
30
+ } | {
31
+ readonly type: 'completed';
32
+ readonly activityId: ActivityId;
33
+ readonly sequence: number;
34
+ readonly session: SessionRef;
35
+ readonly output: string;
36
+ } | {
37
+ readonly type: 'failed';
38
+ readonly activityId: ActivityId;
39
+ readonly sequence: number;
40
+ readonly error: IntelligenceFailure;
41
+ } | {
42
+ readonly type: 'cancelled';
43
+ readonly activityId: ActivityId;
44
+ readonly sequence: number;
45
+ };
46
+ export interface ActivitySink {
47
+ text(text: string): void;
48
+ complete(output: string): void;
49
+ fail(cause: unknown): void;
50
+ cancelled(): void;
51
+ }
52
+ /** Provider implementation boundary. It never receives World or Renderer authority. */
53
+ export interface IntelligenceProvider {
54
+ readonly id: string;
55
+ start(submission: ActivitySubmission, sink: ActivitySink): Result<void, IntelligenceError>;
56
+ cancel(activityId: ActivityId): Result<void, IntelligenceError>;
57
+ close(): Promise<void>;
58
+ }
59
+ /** Frame-safe consumer surface. No method waits for provider work. */
60
+ export interface IntelligenceService {
61
+ readonly providerId: string;
62
+ submit(request: ActivityRequest): Result<ActivityRef, IntelligenceError>;
63
+ poll(maxEvents?: number): readonly ActivityEvent[];
64
+ cancel(activityId: ActivityId): Result<void, IntelligenceError>;
65
+ close(): Promise<void>;
66
+ }
67
+ export interface IntelligenceLimits {
68
+ readonly maxInputChars: number;
69
+ readonly maxOutputChars: number;
70
+ readonly maxConcurrentActivities: number;
71
+ readonly maxPendingEventsPerActivity: number;
72
+ readonly maxPollEvents: number;
73
+ }
74
+ export declare const DEFAULT_INTELLIGENCE_LIMITS: IntelligenceLimits;
75
+ export interface IntelligenceRuntimeOptions {
76
+ readonly limits?: Partial<IntelligenceLimits>;
77
+ readonly createActivityId?: () => ActivityId;
78
+ readonly createSessionId?: () => string;
79
+ }
80
+ export declare function activityId(value: string): ActivityId;
81
+ export {};
82
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@forgeax/engine-intelligence",
3
+ "version": "0.0.0-dev.8d955ade1c79",
4
+ "private": false,
5
+ "type": "module",
6
+ "license": "Apache-2.0",
7
+ "sideEffects": false,
8
+ "description": "Provider-neutral asynchronous Activity boundary for ForgeaX Engine.",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.mjs"
13
+ },
14
+ "./package.json": "./package.json"
15
+ },
16
+ "main": "./dist/index.mjs",
17
+ "types": "./dist/index.d.ts",
18
+ "files": [
19
+ "dist",
20
+ "src",
21
+ "README.md"
22
+ ],
23
+ "dependencies": {
24
+ "@forgeax/engine-plugin": "0.0.0-dev.8d955ade1c79",
25
+ "@forgeax/engine-types": "0.0.0-dev.8d955ade1c79"
26
+ },
27
+ "forgeax": {
28
+ "metrics": {
29
+ "bundle-size": {
30
+ "enabled": true,
31
+ "path": "dist/index.mjs",
32
+ "compression": "gzip"
33
+ },
34
+ "fps": {
35
+ "enabled": false,
36
+ "reason": "provider-neutral library without a canvas frame loop"
37
+ },
38
+ "bench": {
39
+ "enabled": false,
40
+ "reason": "hot-path behavior is bounded and covered by deterministic unit tests"
41
+ },
42
+ "gate": {
43
+ "enabled": false,
44
+ "reason": "contract correctness is gated by pnpm test:unit"
45
+ },
46
+ "spike-report": {
47
+ "enabled": false,
48
+ "reason": "not a spike package"
49
+ }
50
+ }
51
+ },
52
+ "scripts": {
53
+ "build": "tsup",
54
+ "test": "vitest run"
55
+ }
56
+ }