agentic-lang 0.2.0
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/COMMUNITY.md +220 -0
- package/CONTRIBUTING.md +194 -0
- package/FINAL_REPORT.md +398 -0
- package/FOR_OTHER_LLMS.md +286 -0
- package/IMPROVEMENTS.md +319 -0
- package/LAUNCH_GUIDE.md +388 -0
- package/LICENSE +21 -0
- package/NPM_PUBLISH.md +257 -0
- package/PROJECT_COMPLETE.md +414 -0
- package/PROJECT_OVERVIEW.md +265 -0
- package/PROJECT_TREE.txt +228 -0
- package/PUBLISHING_GUIDE.md +426 -0
- package/PUBLISH_NOW.md +337 -0
- package/QUICKSTART.md +207 -0
- package/README.md +195 -0
- package/README_ENHANCED.md +329 -0
- package/READY_TO_LAUNCH.txt +56 -0
- package/REFACTOR_PLAN.md +179 -0
- package/ROADMAP.md +201 -0
- package/SUMMARY.md +315 -0
- package/bin/agentic.js +3 -0
- package/blog/001-introducing-agentic.md +382 -0
- package/blog/002-confidence-driven-development.md +490 -0
- package/blog/003-formal-verification.md +427 -0
- package/blog/004-multi-agent-production.md +436 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +151 -0
- package/dist/cli.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +115 -0
- package/dist/diagnostics/diagnostic.d.ts.map +1 -0
- package/dist/diagnostics/diagnostic.js +101 -0
- package/dist/diagnostics/diagnostic.js.map +1 -0
- package/dist/diagnostics/formatter.d.ts +36 -0
- package/dist/diagnostics/formatter.d.ts.map +1 -0
- package/dist/diagnostics/formatter.js +263 -0
- package/dist/diagnostics/formatter.js.map +1 -0
- package/dist/effects/effect-system.d.ts +64 -0
- package/dist/effects/effect-system.d.ts.map +1 -0
- package/dist/effects/effect-system.js +197 -0
- package/dist/effects/effect-system.js.map +1 -0
- package/dist/generator/typescript-generator.d.ts +31 -0
- package/dist/generator/typescript-generator.d.ts.map +1 -0
- package/dist/generator/typescript-generator.js +308 -0
- package/dist/generator/typescript-generator.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/lean4/exporter.d.ts +24 -0
- package/dist/lean4/exporter.d.ts.map +1 -0
- package/dist/lean4/exporter.js +142 -0
- package/dist/lean4/exporter.js.map +1 -0
- package/dist/lsp/server.d.ts +6 -0
- package/dist/lsp/server.d.ts.map +1 -0
- package/dist/lsp/server.js +131 -0
- package/dist/lsp/server.js.map +1 -0
- package/dist/parser/lexer.d.ts +79 -0
- package/dist/parser/lexer.d.ts.map +1 -0
- package/dist/parser/lexer.js +296 -0
- package/dist/parser/lexer.js.map +1 -0
- package/dist/parser/parser-enhanced.d.ts +12 -0
- package/dist/parser/parser-enhanced.d.ts.map +1 -0
- package/dist/parser/parser-enhanced.js +206 -0
- package/dist/parser/parser-enhanced.js.map +1 -0
- package/dist/parser/parser.d.ts +34 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +507 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/property-tests/generator-enhanced.d.ts +27 -0
- package/dist/property-tests/generator-enhanced.d.ts.map +1 -0
- package/dist/property-tests/generator-enhanced.js +209 -0
- package/dist/property-tests/generator-enhanced.js.map +1 -0
- package/dist/property-tests/generator-fixed.d.ts +2 -0
- package/dist/property-tests/generator-fixed.d.ts.map +1 -0
- package/dist/property-tests/generator-fixed.js +7 -0
- package/dist/property-tests/generator-fixed.js.map +1 -0
- package/dist/property-tests/generator.d.ts +28 -0
- package/dist/property-tests/generator.d.ts.map +1 -0
- package/dist/property-tests/generator.js +284 -0
- package/dist/property-tests/generator.js.map +1 -0
- package/dist/refinements/refinement-types.d.ts +96 -0
- package/dist/refinements/refinement-types.d.ts.map +1 -0
- package/dist/refinements/refinement-types.js +234 -0
- package/dist/refinements/refinement-types.js.map +1 -0
- package/dist/repl.d.ts +21 -0
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +317 -0
- package/dist/repl.js.map +1 -0
- package/dist/runtime/agents.d.ts +97 -0
- package/dist/runtime/agents.d.ts.map +1 -0
- package/dist/runtime/agents.js +258 -0
- package/dist/runtime/agents.js.map +1 -0
- package/dist/runtime/index.d.ts +98 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +253 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/types-extended.d.ts +197 -0
- package/dist/types-extended.d.ts.map +1 -0
- package/dist/types-extended.js +7 -0
- package/dist/types-extended.js.map +1 -0
- package/dist/types.d.ts +129 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/verification/z3-engine.d.ts +75 -0
- package/dist/verification/z3-engine.d.ts.map +1 -0
- package/dist/verification/z3-engine.js +234 -0
- package/dist/verification/z3-engine.js.map +1 -0
- package/examples/advanced-features.agentic +98 -0
- package/examples/annotations.agentic +37 -0
- package/examples/auth.agentic +53 -0
- package/examples/enterprise-example.agentic +360 -0
- package/examples/minimal.agentic +3 -0
- package/examples/minimal.ts +7 -0
- package/examples/ml-pipeline.agentic +350 -0
- package/examples/multi-agent-example.agentic +212 -0
- package/examples/onboarding-tutorial.agentic +263 -0
- package/examples/production-api.agentic +304 -0
- package/examples/real-world-chatbot.agentic +351 -0
- package/examples/result-handling.agentic +34 -0
- package/examples/runtime.ts +24 -0
- package/examples/showcase.agentic +22 -0
- package/examples/showcase.ts +28 -0
- package/examples/simple-test.agentic +4 -0
- package/examples/simple-test.ts +7 -0
- package/examples/simple.agentic +20 -0
- package/examples/test2.agentic +4 -0
- package/examples/test2.ts +9 -0
- package/examples/test3.agentic +4 -0
- package/examples/test3.ts +9 -0
- package/package.json +70 -0
- package/playground/index.html +221 -0
- package/playground/playground.js +291 -0
- package/registry/package-registry.ts +319 -0
- package/scripts/build.js +50 -0
- package/scripts/validate-confidence-mutation.ts +112 -0
- package/stdlib/async/promise.agentic +216 -0
- package/stdlib/database/pool.agentic +235 -0
- package/stdlib/file/io.agentic +194 -0
- package/stdlib/http/client.agentic +168 -0
- package/video-scripts/001-agentic-in-100-seconds.md +175 -0
- package/vscode-extension/README.md +67 -0
- package/vscode-extension/language-configuration.json +31 -0
- package/vscode-extension/package.json +46 -0
- package/vscode-extension/syntaxes/agentic.tmLanguage.json +134 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Agent Coordination Runtime
|
|
3
|
+
* Implements session types, message passing, and coordination primitives
|
|
4
|
+
*/
|
|
5
|
+
import { Result } from './index';
|
|
6
|
+
export declare class Channel<T> {
|
|
7
|
+
private buffer;
|
|
8
|
+
private capacity;
|
|
9
|
+
private closed;
|
|
10
|
+
private waitingReceivers;
|
|
11
|
+
private waitingSenders;
|
|
12
|
+
constructor(capacity?: number);
|
|
13
|
+
send(value: T): Promise<void>;
|
|
14
|
+
receive(): Promise<T | null>;
|
|
15
|
+
close(): void;
|
|
16
|
+
isClosed(): boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface AgentConfig {
|
|
19
|
+
agentId: string;
|
|
20
|
+
role: string;
|
|
21
|
+
capabilities: string[];
|
|
22
|
+
maxConcurrentTasks: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class Agent {
|
|
25
|
+
private config;
|
|
26
|
+
private inbox;
|
|
27
|
+
private outbox;
|
|
28
|
+
private handlers;
|
|
29
|
+
private running;
|
|
30
|
+
constructor(config: AgentConfig);
|
|
31
|
+
registerHandler(messageType: string, handler: (message: any) => Promise<any>): void;
|
|
32
|
+
start(): Promise<void>;
|
|
33
|
+
stop(): Promise<void>;
|
|
34
|
+
send(messageType: string, payload: any): Promise<void>;
|
|
35
|
+
getInbox(): Channel<any>;
|
|
36
|
+
getOutbox(): Channel<any>;
|
|
37
|
+
private generateMessageId;
|
|
38
|
+
}
|
|
39
|
+
export declare class SessionManager {
|
|
40
|
+
private sessions;
|
|
41
|
+
save(sessionId: string, state: SessionState): Promise<void>;
|
|
42
|
+
restore(sessionId: string): Promise<SessionState | null>;
|
|
43
|
+
checkpoint(sessionId: string, label: string, state: Record<string, any>): Promise<void>;
|
|
44
|
+
restoreCheckpoint(sessionId: string, checkpointId: string): Promise<Record<string, any>>;
|
|
45
|
+
}
|
|
46
|
+
interface SessionState {
|
|
47
|
+
sessionId: string;
|
|
48
|
+
agentId: string;
|
|
49
|
+
timestamp: number;
|
|
50
|
+
state: Record<string, any>;
|
|
51
|
+
checkpoints: Array<{
|
|
52
|
+
id: string;
|
|
53
|
+
label: string;
|
|
54
|
+
timestamp: number;
|
|
55
|
+
state: Record<string, any>;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
export declare class HandoffProtocol {
|
|
59
|
+
initiateHandoff(fromAgent: string, toAgent: string, reason: string, context: any): Promise<Result<void, Error>>;
|
|
60
|
+
receiveHandoff(agentId: string): Promise<any | null>;
|
|
61
|
+
}
|
|
62
|
+
export declare class ApprovalGateRuntime {
|
|
63
|
+
requestApproval(action: string, metadata: Record<string, any>, options: {
|
|
64
|
+
channel: string;
|
|
65
|
+
approvers: string[];
|
|
66
|
+
timeout: number;
|
|
67
|
+
fallback: 'approve' | 'reject';
|
|
68
|
+
}): Promise<Result<{
|
|
69
|
+
approved: boolean;
|
|
70
|
+
reason?: string;
|
|
71
|
+
}, Error>>;
|
|
72
|
+
}
|
|
73
|
+
export declare class CostTracker {
|
|
74
|
+
private costs;
|
|
75
|
+
private budgets;
|
|
76
|
+
trackCost(userId: string, cost: number, metadata: {
|
|
77
|
+
feature?: string;
|
|
78
|
+
model?: string;
|
|
79
|
+
}): void;
|
|
80
|
+
setBudget(userId: string, daily: number, monthly: number): void;
|
|
81
|
+
checkBudget(userId: string): {
|
|
82
|
+
remaining: number;
|
|
83
|
+
exceeded: boolean;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export declare const channelRuntime: {
|
|
87
|
+
create: <T>(capacity?: number) => Channel<T>;
|
|
88
|
+
};
|
|
89
|
+
export declare const agentRuntime: {
|
|
90
|
+
spawn: (config: AgentConfig) => Agent;
|
|
91
|
+
};
|
|
92
|
+
export declare const sessionRuntime: SessionManager;
|
|
93
|
+
export declare const handoffRuntime: HandoffProtocol;
|
|
94
|
+
export declare const approvalRuntime: ApprovalGateRuntime;
|
|
95
|
+
export declare const costRuntime: CostTracker;
|
|
96
|
+
export {};
|
|
97
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/runtime/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Multi-Agent Coordination Runtime
|
|
4
|
+
* Implements session types, message passing, and coordination primitives
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.costRuntime = exports.approvalRuntime = exports.handoffRuntime = exports.sessionRuntime = exports.agentRuntime = exports.channelRuntime = exports.CostTracker = exports.ApprovalGateRuntime = exports.HandoffProtocol = exports.SessionManager = exports.Agent = exports.Channel = void 0;
|
|
8
|
+
// Channel for inter-agent communication
|
|
9
|
+
class Channel {
|
|
10
|
+
constructor(capacity = 0) {
|
|
11
|
+
this.buffer = [];
|
|
12
|
+
this.closed = false;
|
|
13
|
+
this.waitingReceivers = [];
|
|
14
|
+
this.waitingSenders = [];
|
|
15
|
+
this.capacity = capacity; // 0 = unbuffered
|
|
16
|
+
}
|
|
17
|
+
async send(value) {
|
|
18
|
+
if (this.closed) {
|
|
19
|
+
throw new Error('Cannot send on closed channel');
|
|
20
|
+
}
|
|
21
|
+
// If there's a waiting receiver, deliver directly
|
|
22
|
+
if (this.waitingReceivers.length > 0) {
|
|
23
|
+
const receiver = this.waitingReceivers.shift();
|
|
24
|
+
receiver(value);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// If buffered and space available, add to buffer
|
|
28
|
+
if (this.capacity > 0 && this.buffer.length < this.capacity) {
|
|
29
|
+
this.buffer.push(value);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Wait for receiver (unbuffered or buffer full)
|
|
33
|
+
return new Promise((resolve) => {
|
|
34
|
+
this.waitingSenders.push({ value, resolve });
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async receive() {
|
|
38
|
+
if (this.closed && this.buffer.length === 0) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
// If there's a waiting sender, receive directly
|
|
42
|
+
if (this.waitingSenders.length > 0) {
|
|
43
|
+
const { value, resolve } = this.waitingSenders.shift();
|
|
44
|
+
resolve();
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
// If buffer has data, return it
|
|
48
|
+
if (this.buffer.length > 0) {
|
|
49
|
+
return this.buffer.shift();
|
|
50
|
+
}
|
|
51
|
+
// Wait for sender
|
|
52
|
+
return new Promise((resolve) => {
|
|
53
|
+
this.waitingReceivers.push(resolve);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
close() {
|
|
57
|
+
this.closed = true;
|
|
58
|
+
// Resolve all waiting receivers with null
|
|
59
|
+
while (this.waitingReceivers.length > 0) {
|
|
60
|
+
const receiver = this.waitingReceivers.shift();
|
|
61
|
+
receiver(null);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
isClosed() {
|
|
65
|
+
return this.closed;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.Channel = Channel;
|
|
69
|
+
class Agent {
|
|
70
|
+
constructor(config) {
|
|
71
|
+
this.config = config;
|
|
72
|
+
this.handlers = new Map();
|
|
73
|
+
this.running = false;
|
|
74
|
+
this.inbox = new Channel(100); // Buffered inbox
|
|
75
|
+
this.outbox = new Channel(100);
|
|
76
|
+
}
|
|
77
|
+
registerHandler(messageType, handler) {
|
|
78
|
+
this.handlers.set(messageType, handler);
|
|
79
|
+
}
|
|
80
|
+
async start() {
|
|
81
|
+
this.running = true;
|
|
82
|
+
while (this.running) {
|
|
83
|
+
const message = await this.inbox.receive();
|
|
84
|
+
if (message === null) {
|
|
85
|
+
// Channel closed
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
const handler = this.handlers.get(message.type);
|
|
89
|
+
if (handler) {
|
|
90
|
+
try {
|
|
91
|
+
const response = await handler(message.payload);
|
|
92
|
+
await this.outbox.send({
|
|
93
|
+
type: `${message.type}_response`,
|
|
94
|
+
payload: response,
|
|
95
|
+
requestId: message.id,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
await this.outbox.send({
|
|
100
|
+
type: 'error',
|
|
101
|
+
error: error instanceof Error ? error.message : String(error),
|
|
102
|
+
requestId: message.id,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async stop() {
|
|
109
|
+
this.running = false;
|
|
110
|
+
this.inbox.close();
|
|
111
|
+
this.outbox.close();
|
|
112
|
+
}
|
|
113
|
+
async send(messageType, payload) {
|
|
114
|
+
await this.outbox.send({
|
|
115
|
+
type: messageType,
|
|
116
|
+
payload,
|
|
117
|
+
id: this.generateMessageId(),
|
|
118
|
+
from: this.config.agentId,
|
|
119
|
+
timestamp: Date.now(),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
getInbox() {
|
|
123
|
+
return this.inbox;
|
|
124
|
+
}
|
|
125
|
+
getOutbox() {
|
|
126
|
+
return this.outbox;
|
|
127
|
+
}
|
|
128
|
+
generateMessageId() {
|
|
129
|
+
return `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.Agent = Agent;
|
|
133
|
+
// Session Manager
|
|
134
|
+
class SessionManager {
|
|
135
|
+
constructor() {
|
|
136
|
+
this.sessions = new Map();
|
|
137
|
+
}
|
|
138
|
+
async save(sessionId, state) {
|
|
139
|
+
this.sessions.set(sessionId, state);
|
|
140
|
+
// TODO: Persist to storage (file, DB, S3)
|
|
141
|
+
}
|
|
142
|
+
async restore(sessionId) {
|
|
143
|
+
return this.sessions.get(sessionId) || null;
|
|
144
|
+
}
|
|
145
|
+
async checkpoint(sessionId, label, state) {
|
|
146
|
+
const session = this.sessions.get(sessionId);
|
|
147
|
+
if (!session) {
|
|
148
|
+
throw new Error(`Session ${sessionId} not found`);
|
|
149
|
+
}
|
|
150
|
+
session.checkpoints.push({
|
|
151
|
+
id: `checkpoint_${Date.now()}`,
|
|
152
|
+
label,
|
|
153
|
+
timestamp: Date.now(),
|
|
154
|
+
state,
|
|
155
|
+
});
|
|
156
|
+
await this.save(sessionId, session);
|
|
157
|
+
}
|
|
158
|
+
async restoreCheckpoint(sessionId, checkpointId) {
|
|
159
|
+
const session = this.sessions.get(sessionId);
|
|
160
|
+
if (!session) {
|
|
161
|
+
throw new Error(`Session ${sessionId} not found`);
|
|
162
|
+
}
|
|
163
|
+
const checkpoint = session.checkpoints.find(c => c.id === checkpointId);
|
|
164
|
+
if (!checkpoint) {
|
|
165
|
+
throw new Error(`Checkpoint ${checkpointId} not found`);
|
|
166
|
+
}
|
|
167
|
+
return checkpoint.state;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.SessionManager = SessionManager;
|
|
171
|
+
// Handoff Protocol
|
|
172
|
+
class HandoffProtocol {
|
|
173
|
+
async initiateHandoff(fromAgent, toAgent, reason, context) {
|
|
174
|
+
const handoff = {
|
|
175
|
+
fromAgent,
|
|
176
|
+
toAgent,
|
|
177
|
+
reason,
|
|
178
|
+
context,
|
|
179
|
+
timestamp: Date.now(),
|
|
180
|
+
metadata: {
|
|
181
|
+
conversationHistory: context.conversationHistory || [],
|
|
182
|
+
confidenceHistory: context.confidenceHistory || [],
|
|
183
|
+
intent: context.intent || '',
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
// TODO: Send handoff to receiving agent
|
|
187
|
+
// TODO: Wait for acknowledgment
|
|
188
|
+
// TODO: Transfer session ownership
|
|
189
|
+
return { ok: true, value: undefined };
|
|
190
|
+
}
|
|
191
|
+
async receiveHandoff(agentId) {
|
|
192
|
+
// TODO: Check for pending handoffs to this agent
|
|
193
|
+
// TODO: Return handoff context
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
exports.HandoffProtocol = HandoffProtocol;
|
|
198
|
+
// Approval Gate Runtime
|
|
199
|
+
class ApprovalGateRuntime {
|
|
200
|
+
async requestApproval(action, metadata, options) {
|
|
201
|
+
console.log(`[APPROVAL REQUIRED] ${action}`);
|
|
202
|
+
console.log(` Metadata:`, metadata);
|
|
203
|
+
console.log(` Approvers:`, options.approvers);
|
|
204
|
+
console.log(` Timeout:`, options.timeout, 'ms');
|
|
205
|
+
// TODO: Implement actual approval mechanism
|
|
206
|
+
// For now, return fallback
|
|
207
|
+
return {
|
|
208
|
+
ok: true,
|
|
209
|
+
value: {
|
|
210
|
+
approved: options.fallback === 'approve',
|
|
211
|
+
reason: 'Auto-decided by fallback policy',
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
exports.ApprovalGateRuntime = ApprovalGateRuntime;
|
|
217
|
+
// Cost Tracker
|
|
218
|
+
class CostTracker {
|
|
219
|
+
constructor() {
|
|
220
|
+
this.costs = new Map();
|
|
221
|
+
this.budgets = new Map();
|
|
222
|
+
}
|
|
223
|
+
trackCost(userId, cost, metadata) {
|
|
224
|
+
const key = `${userId}:${new Date().toISOString().split('T')[0]}`;
|
|
225
|
+
const current = this.costs.get(key) || 0;
|
|
226
|
+
this.costs.set(key, current + cost);
|
|
227
|
+
console.log(`[COST] User ${userId}: +$${cost.toFixed(4)} (total: $${(current + cost).toFixed(4)})`);
|
|
228
|
+
}
|
|
229
|
+
setBudget(userId, daily, monthly) {
|
|
230
|
+
this.budgets.set(userId, { daily, monthly });
|
|
231
|
+
}
|
|
232
|
+
checkBudget(userId) {
|
|
233
|
+
const key = `${userId}:${new Date().toISOString().split('T')[0]}`;
|
|
234
|
+
const spent = this.costs.get(key) || 0;
|
|
235
|
+
const budget = this.budgets.get(userId);
|
|
236
|
+
if (!budget) {
|
|
237
|
+
return { remaining: Infinity, exceeded: false };
|
|
238
|
+
}
|
|
239
|
+
const remaining = budget.daily - spent;
|
|
240
|
+
return {
|
|
241
|
+
remaining,
|
|
242
|
+
exceeded: remaining <= 0,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
exports.CostTracker = CostTracker;
|
|
247
|
+
// Export runtime instances
|
|
248
|
+
exports.channelRuntime = {
|
|
249
|
+
create: (capacity = 0) => new Channel(capacity),
|
|
250
|
+
};
|
|
251
|
+
exports.agentRuntime = {
|
|
252
|
+
spawn: (config) => new Agent(config),
|
|
253
|
+
};
|
|
254
|
+
exports.sessionRuntime = new SessionManager();
|
|
255
|
+
exports.handoffRuntime = new HandoffProtocol();
|
|
256
|
+
exports.approvalRuntime = new ApprovalGateRuntime();
|
|
257
|
+
exports.costRuntime = new CostTracker();
|
|
258
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/runtime/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Runtime Library
|
|
3
|
+
* Provides runtime support for confidence tracking, context validation, etc.
|
|
4
|
+
*/
|
|
5
|
+
export type Result<T, E> = {
|
|
6
|
+
ok: true;
|
|
7
|
+
value: T;
|
|
8
|
+
} | {
|
|
9
|
+
ok: false;
|
|
10
|
+
error: E;
|
|
11
|
+
};
|
|
12
|
+
export declare function Ok<T>(value: T): Result<T, never>;
|
|
13
|
+
export declare function Err<E>(error: E): Result<never, E>;
|
|
14
|
+
export declare function isOk<T, E>(result: Result<T, E>): result is {
|
|
15
|
+
ok: true;
|
|
16
|
+
value: T;
|
|
17
|
+
};
|
|
18
|
+
export declare function isErr<T, E>(result: Result<T, E>): result is {
|
|
19
|
+
ok: false;
|
|
20
|
+
error: E;
|
|
21
|
+
};
|
|
22
|
+
export declare function unwrap<T, E>(result: Result<T, E>): T;
|
|
23
|
+
export declare function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
|
|
24
|
+
export declare function unwrapOrElse<T, E>(result: Result<T, E>, fn: (error: E) => T): T;
|
|
25
|
+
export declare function map<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
|
|
26
|
+
export declare function mapErr<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
|
|
27
|
+
export declare function andThen<T, U, E>(result: Result<T, E>, fn: (value: T) => Result<U, E>): Result<U, E>;
|
|
28
|
+
export declare function orElse<T, E, F>(result: Result<T, E>, fn: (error: E) => Result<T, F>): Result<T, F>;
|
|
29
|
+
export interface ConfidenceMetadata {
|
|
30
|
+
level: number;
|
|
31
|
+
reason?: string;
|
|
32
|
+
timestamp: number;
|
|
33
|
+
}
|
|
34
|
+
declare class ConfidenceTracker {
|
|
35
|
+
private confidenceMap;
|
|
36
|
+
register(identifier: string, confidence: number, reason?: string): void;
|
|
37
|
+
get(identifier: string): ConfidenceMetadata | undefined;
|
|
38
|
+
all(): Record<string, ConfidenceMetadata>;
|
|
39
|
+
}
|
|
40
|
+
export interface ContextRequirement {
|
|
41
|
+
name: string;
|
|
42
|
+
type: string;
|
|
43
|
+
required: boolean;
|
|
44
|
+
}
|
|
45
|
+
declare class ContextValidator {
|
|
46
|
+
validate(requirements: ContextRequirement[], context: Record<string, any>): void;
|
|
47
|
+
}
|
|
48
|
+
export type HealthStatus = 'OK' | 'DEGRADED' | 'FAILED';
|
|
49
|
+
export interface HealthCheck {
|
|
50
|
+
name: string;
|
|
51
|
+
check: () => Promise<HealthStatus> | HealthStatus;
|
|
52
|
+
recovery?: () => Promise<void> | void;
|
|
53
|
+
interval?: number;
|
|
54
|
+
}
|
|
55
|
+
declare class HealthCheckMonitor {
|
|
56
|
+
private checks;
|
|
57
|
+
private timers;
|
|
58
|
+
register(check: HealthCheck): void;
|
|
59
|
+
runCheck(name: string): Promise<HealthStatus>;
|
|
60
|
+
stopAll(): void;
|
|
61
|
+
}
|
|
62
|
+
export declare class AgenticRuntime {
|
|
63
|
+
static confidence: ConfidenceTracker;
|
|
64
|
+
static context: ContextValidator;
|
|
65
|
+
static health: HealthCheckMonitor;
|
|
66
|
+
static withConfidence<T extends (...args: any[]) => any>(fn: T, confidence: number, reason?: string): T;
|
|
67
|
+
static withContext<T extends (...args: any[]) => any>(fn: T, requirements: ContextRequirement[]): T;
|
|
68
|
+
static tryWithRecovery<T>(operation: () => Promise<T>, recovery: () => Promise<T>, maxAttempts?: number): Promise<T>;
|
|
69
|
+
}
|
|
70
|
+
export type Stage = 'stub' | 'partial' | 'complete';
|
|
71
|
+
export interface StageMetadata {
|
|
72
|
+
stage: Stage;
|
|
73
|
+
completionPercentage?: number;
|
|
74
|
+
missingFeatures?: string[];
|
|
75
|
+
knownIssues?: string[];
|
|
76
|
+
}
|
|
77
|
+
declare class StageValidator {
|
|
78
|
+
private stageMap;
|
|
79
|
+
register(identifier: string, metadata: StageMetadata): void;
|
|
80
|
+
get(identifier: string): StageMetadata | undefined;
|
|
81
|
+
requireComplete(identifier: string): void;
|
|
82
|
+
}
|
|
83
|
+
export declare function validate<T>(value: T, predicate: (value: T) => boolean, errorMessage: string): Result<T, string>;
|
|
84
|
+
export declare function validateAll<T>(values: T[], predicate: (value: T) => boolean, errorMessage: string): Result<T[], string>;
|
|
85
|
+
export interface RetryOptions {
|
|
86
|
+
maxAttempts?: number;
|
|
87
|
+
delayMs?: number;
|
|
88
|
+
backoffMultiplier?: number;
|
|
89
|
+
onRetry?: (attempt: number, error: Error) => void;
|
|
90
|
+
}
|
|
91
|
+
export declare function retry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<Result<T, Error>>;
|
|
92
|
+
export declare function fallbackChain<T>(...fns: Array<() => Result<T, any>>): Result<T, Error[]>;
|
|
93
|
+
export declare const confidence: ConfidenceTracker;
|
|
94
|
+
export declare const contextValidator: ContextValidator;
|
|
95
|
+
export declare const healthMonitor: HealthCheckMonitor;
|
|
96
|
+
export declare const stageValidator: StageValidator;
|
|
97
|
+
export {};
|
|
98
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
|