borderless-agent 0.0.1-alpha.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.
Files changed (90) hide show
  1. package/README.md +274 -0
  2. package/dist/agentBuilder.d.ts +51 -0
  3. package/dist/agentBuilder.d.ts.map +1 -0
  4. package/dist/agentBuilder.js +130 -0
  5. package/dist/agentBuilder.js.map +1 -0
  6. package/dist/agentInstance.d.ts +45 -0
  7. package/dist/agentInstance.d.ts.map +1 -0
  8. package/dist/agentInstance.js +501 -0
  9. package/dist/agentInstance.js.map +1 -0
  10. package/dist/agentsCore.d.ts +16 -0
  11. package/dist/agentsCore.d.ts.map +1 -0
  12. package/dist/agentsCore.js +50 -0
  13. package/dist/agentsCore.js.map +1 -0
  14. package/dist/cli/index.d.ts +5 -0
  15. package/dist/cli/index.d.ts.map +1 -0
  16. package/dist/cli/index.js +11 -0
  17. package/dist/cli/index.js.map +1 -0
  18. package/dist/cli/main.d.ts +36 -0
  19. package/dist/cli/main.d.ts.map +1 -0
  20. package/dist/cli/main.js +306 -0
  21. package/dist/cli/main.js.map +1 -0
  22. package/dist/config.d.ts +26 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js +98 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/contextCore.d.ts +97 -0
  27. package/dist/contextCore.d.ts.map +1 -0
  28. package/dist/contextCore.js +533 -0
  29. package/dist/contextCore.js.map +1 -0
  30. package/dist/index.d.ts +28 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +46 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/llmProtocol.d.ts +60 -0
  35. package/dist/llmProtocol.d.ts.map +1 -0
  36. package/dist/llmProtocol.js +202 -0
  37. package/dist/llmProtocol.js.map +1 -0
  38. package/dist/loopCore.d.ts +22 -0
  39. package/dist/loopCore.d.ts.map +1 -0
  40. package/dist/loopCore.js +288 -0
  41. package/dist/loopCore.js.map +1 -0
  42. package/dist/main.d.ts +9 -0
  43. package/dist/main.d.ts.map +1 -0
  44. package/dist/main.js +15 -0
  45. package/dist/main.js.map +1 -0
  46. package/dist/memoryCore.d.ts +37 -0
  47. package/dist/memoryCore.d.ts.map +1 -0
  48. package/dist/memoryCore.js +346 -0
  49. package/dist/memoryCore.js.map +1 -0
  50. package/dist/server/app.d.ts +13 -0
  51. package/dist/server/app.d.ts.map +1 -0
  52. package/dist/server/app.js +200 -0
  53. package/dist/server/app.js.map +1 -0
  54. package/dist/sessionCore.d.ts +54 -0
  55. package/dist/sessionCore.d.ts.map +1 -0
  56. package/dist/sessionCore.js +312 -0
  57. package/dist/sessionCore.js.map +1 -0
  58. package/dist/skillsCore.d.ts +23 -0
  59. package/dist/skillsCore.d.ts.map +1 -0
  60. package/dist/skillsCore.js +202 -0
  61. package/dist/skillsCore.js.map +1 -0
  62. package/dist/storage/cloudBackend.d.ts +48 -0
  63. package/dist/storage/cloudBackend.d.ts.map +1 -0
  64. package/dist/storage/cloudBackend.js +301 -0
  65. package/dist/storage/cloudBackend.js.map +1 -0
  66. package/dist/storage/fileBackend.d.ts +41 -0
  67. package/dist/storage/fileBackend.d.ts.map +1 -0
  68. package/dist/storage/fileBackend.js +240 -0
  69. package/dist/storage/fileBackend.js.map +1 -0
  70. package/dist/storage/index.d.ts +21 -0
  71. package/dist/storage/index.d.ts.map +1 -0
  72. package/dist/storage/index.js +58 -0
  73. package/dist/storage/index.js.map +1 -0
  74. package/dist/storage/protocols.d.ts +29 -0
  75. package/dist/storage/protocols.d.ts.map +1 -0
  76. package/dist/storage/protocols.js +20 -0
  77. package/dist/storage/protocols.js.map +1 -0
  78. package/dist/todoCore.d.ts +15 -0
  79. package/dist/todoCore.d.ts.map +1 -0
  80. package/dist/todoCore.js +52 -0
  81. package/dist/todoCore.js.map +1 -0
  82. package/dist/toolsCore.d.ts +31 -0
  83. package/dist/toolsCore.d.ts.map +1 -0
  84. package/dist/toolsCore.js +609 -0
  85. package/dist/toolsCore.js.map +1 -0
  86. package/dist/types.d.ts +144 -0
  87. package/dist/types.d.ts.map +1 -0
  88. package/dist/types.js +8 -0
  89. package/dist/types.js.map +1 -0
  90. package/package.json +48 -0
@@ -0,0 +1,144 @@
1
+ /**
2
+ * types.ts — Public type definitions for the agentic-system library.
3
+ *
4
+ * Users import these to define tools, skills, and configure agents.
5
+ */
6
+ import type { LLMProvider } from './llmProtocol';
7
+ /**
8
+ * A tool the agent can call. Users provide `execute` — the runtime handler.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const searchTool: ToolDefinition = {
13
+ * name: 'search_docs',
14
+ * description: 'Search project documentation',
15
+ * parameters: {
16
+ * query: { type: 'string', description: 'Search query' },
17
+ * },
18
+ * required: ['query'],
19
+ * execute: async (args) => {
20
+ * const results = await mySearch(args.query);
21
+ * return JSON.stringify(results);
22
+ * },
23
+ * };
24
+ * ```
25
+ */
26
+ export interface ToolDefinition {
27
+ /** Unique tool name (used by the LLM to invoke it). */
28
+ name: string;
29
+ /** Human-readable description shown to the LLM. */
30
+ description: string;
31
+ /**
32
+ * JSON-Schema-style parameter map.
33
+ * Keys are param names, values describe the type.
34
+ */
35
+ parameters?: Record<string, {
36
+ type: string;
37
+ description?: string;
38
+ enum?: string[];
39
+ }>;
40
+ /** Names of required parameters. */
41
+ required?: string[];
42
+ /**
43
+ * Runtime handler. Receives parsed arguments, returns a string result
44
+ * that is fed back to the LLM as the tool observation.
45
+ */
46
+ execute: (args: Record<string, any>) => Promise<string> | string;
47
+ /**
48
+ * If true, the tool is mutating and requires user approval before
49
+ * execution (only relevant when approval callbacks are set).
50
+ */
51
+ requiresApproval?: boolean;
52
+ }
53
+ /**
54
+ * A skill that can be loaded by the agent on demand via the Skill tool.
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * const pythonSkill: SkillDefinition = {
59
+ * name: 'python-expert',
60
+ * description: 'Expert knowledge about Python best practices',
61
+ * body: '## Python style guide\n- Use type hints...',
62
+ * };
63
+ * ```
64
+ */
65
+ export interface SkillDefinition {
66
+ name: string;
67
+ description: string;
68
+ /** Markdown body injected into context when the skill is loaded. */
69
+ body: string;
70
+ }
71
+ export interface LLMConfig {
72
+ apiKey: string;
73
+ model?: string;
74
+ baseUrl?: string;
75
+ timeout?: number;
76
+ }
77
+ export interface StorageConfig {
78
+ backend: 'file' | 'cloud' | 'memory';
79
+ /** For file backend: root directory for all data. */
80
+ dir?: string;
81
+ /** For cloud backend: S3 bucket name. */
82
+ bucket?: string;
83
+ /** For cloud backend: S3 endpoint URL. */
84
+ endpoint?: string;
85
+ /** For cloud backend: AWS region. */
86
+ region?: string;
87
+ }
88
+ export interface AgentConfig {
89
+ /** LLM provider instance (takes precedence over llmConfig). */
90
+ llm?: LLMProvider;
91
+ /** LLM connection config (used if llm is not provided). */
92
+ llmConfig?: LLMConfig;
93
+ /** Base system prompt. */
94
+ systemPrompt?: string;
95
+ /** User-defined tools. */
96
+ tools?: ToolDefinition[];
97
+ /** User-defined skills. */
98
+ skills?: SkillDefinition[];
99
+ /** Include built-in tools (bash, read_file, etc.). Default: true. */
100
+ includeBuiltinTools?: boolean;
101
+ /** Storage config. */
102
+ storage?: StorageConfig;
103
+ /** Enable long-term memory. Default: false. */
104
+ enableMemory?: boolean;
105
+ /** Enable streaming by default. Default: false. */
106
+ enableStreaming?: boolean;
107
+ /** Enable context management (history trimming, budgeting). Default: true. */
108
+ enableContext?: boolean;
109
+ /** Max tool rounds per turn. Default: 20. */
110
+ maxToolRounds?: number;
111
+ /** Callback for executor approval. Return true to approve. */
112
+ approvalCallback?: (toolName: string, args: Record<string, any>) => Promise<boolean> | boolean;
113
+ }
114
+ export interface ChatResult {
115
+ /** Final assistant text. */
116
+ reply: string;
117
+ /** Full updated message history. */
118
+ history: Record<string, any>[];
119
+ /** Whether tools were called during this turn. */
120
+ hadToolCalls: boolean;
121
+ /** Session ID (if session is active). */
122
+ sessionId?: string;
123
+ }
124
+ export interface StreamChunk {
125
+ /** Content delta (partial text). Present on streaming chunks. */
126
+ delta?: string;
127
+ /** Final reply. Present on the last chunk. */
128
+ reply?: string;
129
+ /** Whether this is the final chunk. */
130
+ done: boolean;
131
+ }
132
+ export interface AgentSession {
133
+ /** Session identifier. */
134
+ readonly id: string;
135
+ /** Send a message within this session (preserves history). */
136
+ chat(message: string): Promise<ChatResult>;
137
+ /** Stream a message within this session. */
138
+ stream(message: string): AsyncGenerator<StreamChunk>;
139
+ /** Get the current conversation history. */
140
+ getHistory(): Record<string, any>[];
141
+ /** Persist the session to storage. */
142
+ save(): Promise<void>;
143
+ }
144
+ //# 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/dist/types.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * types.ts — Public type definitions for the agentic-system library.
4
+ *
5
+ * Users import these to define tools, skills, and configure agents.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "borderless-agent",
3
+ "version": "0.0.1-alpha.1",
4
+ "description": "Portable agentic AI framework — build agents with custom tools, skills, and system prompts",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js",
11
+ "require": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "start": "node dist/main.js",
21
+ "dev": "npx ts-node src/main.ts",
22
+ "typecheck": "tsc --noEmit",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "keywords": [
26
+ "agent",
27
+ "ai",
28
+ "llm",
29
+ "openai",
30
+ "tools",
31
+ "skills"
32
+ ],
33
+ "license": "MIT",
34
+ "dependencies": {
35
+ "openai": "^4.50.0",
36
+ "dotenv": "^16.4.0",
37
+ "express": "^4.18.0",
38
+ "uuid": "^9.0.0",
39
+ "@aws-sdk/client-s3": "^3.500.0"
40
+ },
41
+ "devDependencies": {
42
+ "typescript": "^5.4.0",
43
+ "@types/node": "^20.11.0",
44
+ "@types/express": "^4.17.21",
45
+ "@types/uuid": "^9.0.7",
46
+ "ts-node": "^10.9.0"
47
+ }
48
+ }