@hypen-space/gloop-effect 0.1.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.
Files changed (46) hide show
  1. package/README.md +422 -0
  2. package/dist/AIProvider.d.ts +43 -0
  3. package/dist/AIProvider.d.ts.map +1 -0
  4. package/dist/AIProvider.js +27 -0
  5. package/dist/AIProvider.js.map +1 -0
  6. package/dist/Agent.d.ts +91 -0
  7. package/dist/Agent.d.ts.map +1 -0
  8. package/dist/Agent.js +378 -0
  9. package/dist/Agent.js.map +1 -0
  10. package/dist/Conversation.d.ts +44 -0
  11. package/dist/Conversation.d.ts.map +1 -0
  12. package/dist/Conversation.js +124 -0
  13. package/dist/Conversation.js.map +1 -0
  14. package/dist/Errors.d.ts +102 -0
  15. package/dist/Errors.d.ts.map +1 -0
  16. package/dist/Errors.js +80 -0
  17. package/dist/Errors.js.map +1 -0
  18. package/dist/Interpreter.d.ts +62 -0
  19. package/dist/Interpreter.d.ts.map +1 -0
  20. package/dist/Interpreter.js +217 -0
  21. package/dist/Interpreter.js.map +1 -0
  22. package/dist/Schema.d.ts +188 -0
  23. package/dist/Schema.d.ts.map +1 -0
  24. package/dist/Schema.js +135 -0
  25. package/dist/Schema.js.map +1 -0
  26. package/dist/Tool.d.ts +70 -0
  27. package/dist/Tool.d.ts.map +1 -0
  28. package/dist/Tool.js +138 -0
  29. package/dist/Tool.js.map +1 -0
  30. package/dist/defaults/Builtins.d.ts +23 -0
  31. package/dist/defaults/Builtins.d.ts.map +1 -0
  32. package/dist/defaults/Builtins.js +38 -0
  33. package/dist/defaults/Builtins.js.map +1 -0
  34. package/dist/defaults/FileMemory.d.ts +16 -0
  35. package/dist/defaults/FileMemory.d.ts.map +1 -0
  36. package/dist/defaults/FileMemory.js +32 -0
  37. package/dist/defaults/FileMemory.js.map +1 -0
  38. package/dist/defaults/OpenRouter.d.ts +20 -0
  39. package/dist/defaults/OpenRouter.d.ts.map +1 -0
  40. package/dist/defaults/OpenRouter.js +68 -0
  41. package/dist/defaults/OpenRouter.js.map +1 -0
  42. package/dist/index.d.ts +21 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +42 -0
  45. package/dist/index.js.map +1 -0
  46. package/package.json +33 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Effect-native wrapper around gloop-loop's `createFileMemory`.
3
+ *
4
+ * Surfaces three Effects (`remember`, `forget`, `read`) that hosts can plug
5
+ * into `AgentMakeOptions` directly — no extra layer required.
6
+ */
7
+ import { Effect } from "effect";
8
+ import { type FileMemoryOptions } from "@hypen-space/gloop-loop";
9
+ import { MemoryError } from "../Errors.js";
10
+ export interface FileMemoryHandle {
11
+ readonly remember: (content: string) => Effect.Effect<void, MemoryError>;
12
+ readonly forget: (content: string) => Effect.Effect<void, MemoryError>;
13
+ readonly read: Effect.Effect<string, MemoryError>;
14
+ }
15
+ export declare const fileMemory: (options?: FileMemoryOptions) => FileMemoryHandle;
16
+ //# sourceMappingURL=FileMemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileMemory.d.ts","sourceRoot":"","sources":["../../src/defaults/FileMemory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACxE,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;CAClD;AAWD,eAAO,MAAM,UAAU,GACrB,UAAU,iBAAiB,KAC1B,gBAkBF,CAAA"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Effect-native wrapper around gloop-loop's `createFileMemory`.
3
+ *
4
+ * Surfaces three Effects (`remember`, `forget`, `read`) that hosts can plug
5
+ * into `AgentMakeOptions` directly — no extra layer required.
6
+ */
7
+ import { Effect } from "effect";
8
+ import { createFileMemory, } from "@hypen-space/gloop-loop";
9
+ import { MemoryError } from "../Errors.js";
10
+ const toMemoryError = (op) => (e) => new MemoryError({
11
+ op,
12
+ message: e instanceof Error ? e.message : String(e),
13
+ cause: e,
14
+ });
15
+ export const fileMemory = (options) => {
16
+ const underlying = createFileMemory(options);
17
+ return {
18
+ remember: (content) => Effect.tryPromise({
19
+ try: () => underlying.remember(content),
20
+ catch: toMemoryError("remember"),
21
+ }),
22
+ forget: (content) => Effect.tryPromise({
23
+ try: () => underlying.forget(content),
24
+ catch: toMemoryError("forget"),
25
+ }),
26
+ read: Effect.tryPromise({
27
+ try: () => underlying.read(),
28
+ catch: toMemoryError("read"),
29
+ }),
30
+ };
31
+ };
32
+ //# sourceMappingURL=FileMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileMemory.js","sourceRoot":"","sources":["../../src/defaults/FileMemory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EACL,gBAAgB,GAEjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAQ1C,MAAM,aAAa,GACjB,CAAC,EAAkC,EAAE,EAAE,CACvC,CAAC,CAAU,EAAe,EAAE,CAC1B,IAAI,WAAW,CAAC;IACd,EAAE;IACF,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,KAAK,EAAE,CAAC;CACT,CAAC,CAAA;AAEN,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAA2B,EACT,EAAE;IACpB,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC5C,OAAO;QACL,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CACpB,MAAM,CAAC,UAAU,CAAC;YAChB,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YACvC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC;SACjC,CAAC;QACJ,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAClB,MAAM,CAAC,UAAU,CAAC;YAChB,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC;SAC/B,CAAC;QACJ,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;YACtB,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;YAC5B,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;SAC7B,CAAC;KACH,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Effect-native layer wrapping gloop-loop's OpenRouterProvider.
3
+ *
4
+ * The upstream provider is a plain class that returns Promises and an
5
+ * async iterator; we adapt both to Effect + Stream shapes while preserving
6
+ * cancellation semantics.
7
+ */
8
+ import { Layer } from "effect";
9
+ import { type AIProviderConfig } from "@hypen-space/gloop-loop";
10
+ import { AIProvider } from "../AIProvider.js";
11
+ /**
12
+ * Layer providing `AIProvider` backed by OpenRouter.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const MainLive = OpenRouterProviderLive({ apiKey: process.env.OPENROUTER_API_KEY! })
17
+ * ```
18
+ */
19
+ export declare const OpenRouterProviderLive: (config: AIProviderConfig) => Layer.Layer<AIProvider>;
20
+ //# sourceMappingURL=OpenRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenRouter.d.ts","sourceRoot":"","sources":["../../src/defaults/OpenRouter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAU,KAAK,EAAU,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,UAAU,EAAuB,MAAM,kBAAkB,CAAA;AAiElE;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,gBAAgB,KACvB,KAAK,CAAC,KAAK,CAAC,UAAU,CAiBrB,CAAA"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Effect-native layer wrapping gloop-loop's OpenRouterProvider.
3
+ *
4
+ * The upstream provider is a plain class that returns Promises and an
5
+ * async iterator; we adapt both to Effect + Stream shapes while preserving
6
+ * cancellation semantics.
7
+ */
8
+ import { Effect, Layer, Stream } from "effect";
9
+ import { OpenRouterProvider as LoopOpenRouterProvider, } from "@hypen-space/gloop-loop";
10
+ import { AIProvider } from "../AIProvider.js";
11
+ import { AIProviderError } from "../Errors.js";
12
+ const PROVIDER_NAME = "openrouter";
13
+ const makeError = (op, model) => (e) => new AIProviderError({
14
+ op,
15
+ model,
16
+ provider: PROVIDER_NAME,
17
+ message: e instanceof Error ? e.message : String(e),
18
+ cause: e,
19
+ });
20
+ const adaptStream = (underlying, model) => {
21
+ const toError = makeError("stream", model);
22
+ // Accumulate text so `result` can materialize a complete AIResponse.
23
+ const bufferState = { text: "" };
24
+ const chunks = Stream.fromAsyncIterable(underlying.textStream, toError).pipe(Stream.tap((chunk) => Effect.sync(() => {
25
+ bufferState.text += chunk;
26
+ })), Stream.withSpan("OpenRouterProvider.stream.chunks", {
27
+ attributes: { model },
28
+ }));
29
+ const result = Effect.tryPromise({
30
+ try: async () => ({
31
+ toolCalls: await underlying.toolCalls,
32
+ finishReason: await underlying.finishReason,
33
+ }),
34
+ catch: toError,
35
+ }).pipe(Effect.map(({ toolCalls, finishReason }) => ({
36
+ id: "",
37
+ model,
38
+ content: bufferState.text,
39
+ finishReason: finishReason ?? (toolCalls.length > 0 ? "tool_calls" : "stop"),
40
+ toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
41
+ })), Effect.withSpan("OpenRouterProvider.stream.result", {
42
+ attributes: { model },
43
+ }));
44
+ const cancel = Effect.promise(() => underlying.cancel().catch(() => { }));
45
+ return { chunks, result, cancel };
46
+ };
47
+ /**
48
+ * Layer providing `AIProvider` backed by OpenRouter.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * const MainLive = OpenRouterProviderLive({ apiKey: process.env.OPENROUTER_API_KEY! })
53
+ * ```
54
+ */
55
+ export const OpenRouterProviderLive = (config) => Layer.sync(AIProvider, () => {
56
+ const provider = new LoopOpenRouterProvider(config);
57
+ return {
58
+ name: PROVIDER_NAME,
59
+ complete: (req) => Effect.tryPromise({
60
+ try: () => provider.complete(req),
61
+ catch: makeError("complete", req.model),
62
+ }).pipe(Effect.withSpan("OpenRouterProvider.complete", {
63
+ attributes: { model: req.model },
64
+ })),
65
+ stream: (req) => adaptStream(provider.stream(req), req.model),
66
+ };
67
+ });
68
+ //# sourceMappingURL=OpenRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenRouter.js","sourceRoot":"","sources":["../../src/defaults/OpenRouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @hypen-space/gloop-effect
3
+ *
4
+ * Effect-TS native agent loop. Pairs with `@hypen-space/gloop-loop` — the
5
+ * Form ADT, slash-command parser, skill helpers, and builtin tool bodies
6
+ * are shared; the actor shell, provider interface, error model, and event
7
+ * bus are rebuilt on Effect primitives (Stream, Fiber, PubSub, Ref).
8
+ */
9
+ export { Agent, make as makeAgent, type AgentMessage, type AgentMessageRole, type AgentEvent, type AgentEventOf, type AgentMakeOptions, } from "./Agent.js";
10
+ export { AIProviderError, ToolNotFoundError, ToolExecutionError, ToolPermissionDeniedError, AgentInterruptedError, FatalAgentError, FileIOError, ShellExecError, MemoryError, type AgentError, } from "./Errors.js";
11
+ export { AIProvider, consumeStream, toolCallsOf, type StreamResponse, type AIProviderImpl, } from "./AIProvider.js";
12
+ export { makeConversation, type ConversationHandle, type ConversationOptions, } from "./Conversation.js";
13
+ export { makeToolRegistry, toJsonTool, jsonToolCallsToToolCalls, legacyBashConfirm, type Tool, type ToolArgument, type ToolCall, type ToolResult, type ToolRegistry, } from "./Tool.js";
14
+ export { AgentHooksTag, mkWorld, evalForm, parseInput, run, formatResults, toolCallsToForm, type AgentHooks, type LoopConfig, type World, } from "./Interpreter.js";
15
+ export { OpenRouterProviderLive } from "./defaults/OpenRouter.js";
16
+ export { fileMemory, type FileMemoryHandle } from "./defaults/FileMemory.js";
17
+ export { primitiveTools, toEffectTool, createNodeIO, type BuiltinIO, } from "./defaults/Builtins.js";
18
+ export { MessageId, ToolCallId, RequestId, ModelId, Message, MessageRole, AgentMessage as AgentMessageSchema, EnqueuedAgentMessage, ToolArgument as ToolArgumentSchema, ToolCall as ToolCallSchema, ToolResult as ToolResultSchema, AgentEvent as AgentEventSchema, TurnStartEvent, TurnEndEvent, BusyEvent, IdleEvent, QueueChangedEvent, StreamChunkEvent, StreamDoneEvent, ToolStartEvent, ToolDoneEvent, MemoryEvent, SystemRefreshedEvent, TaskCompleteEvent, InterruptedEvent, ErrorEvent, FatalEvent, ConfirmRequestEvent, AskRequestEvent, AgentErrorSchema, AgentConfig, SpawnResult as SpawnResultSchema, } from "./Schema.js";
19
+ export type { Skill, SpawnResult, Form, Message as AIMessage, AIResponse, AIRequestConfig, JsonTool, JsonToolCall, JsonToolFunction, JsonToolParameter, ToolChoice, ProviderRouting, AIProviderConfig, } from "@hypen-space/gloop-loop";
20
+ export { Think, Invoke, Confirm, Ask, Remember, Forget, Emit, Refresh, Done, Seq, Nil, Install, ListTools, Spawn, parseSkillMarkdown, findSkill, mergeSkillsIntoSystem, formatSkillsListing, applySkillSubstitutions, splitSkillArguments, matchSkillSlash, skillInvocationToThinkInput, thinkInputFromSkillSubcommand, createInvokeSkillTool, } from "@hypen-space/gloop-loop";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,KAAK,EACL,IAAI,IAAI,SAAS,EACjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,UAAU,EACV,aAAa,EACb,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,aAAa,EACb,OAAO,EACP,QAAQ,EACR,UAAU,EACV,GAAG,EACH,aAAa,EACb,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,KAAK,GACX,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,KAAK,SAAS,GACf,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAEL,SAAS,EACT,UAAU,EACV,SAAS,EACT,OAAO,EAEP,OAAO,EACP,WAAW,EACX,YAAY,IAAI,kBAAkB,EAClC,oBAAoB,EAEpB,YAAY,IAAI,kBAAkB,EAClC,QAAQ,IAAI,cAAc,EAC1B,UAAU,IAAI,gBAAgB,EAE9B,UAAU,IAAI,gBAAgB,EAC9B,cAAc,EACd,YAAY,EACZ,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,eAAe,EAEf,gBAAgB,EAChB,WAAW,EACX,WAAW,IAAI,iBAAiB,GACjC,MAAM,aAAa,CAAA;AAGpB,YAAY,EACV,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,IAAI,SAAS,EACpB,UAAU,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAEL,KAAK,EACL,MAAM,EACN,OAAO,EACP,GAAG,EACH,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,GAAG,EACH,GAAG,EACH,OAAO,EACP,SAAS,EACT,KAAK,EAEL,kBAAkB,EAClB,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,yBAAyB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @hypen-space/gloop-effect
3
+ *
4
+ * Effect-TS native agent loop. Pairs with `@hypen-space/gloop-loop` — the
5
+ * Form ADT, slash-command parser, skill helpers, and builtin tool bodies
6
+ * are shared; the actor shell, provider interface, error model, and event
7
+ * bus are rebuilt on Effect primitives (Stream, Fiber, PubSub, Ref).
8
+ */
9
+ // --- Agent -----------------------------------------------------------------
10
+ export { Agent, make as makeAgent, } from "./Agent.js";
11
+ // --- Errors ----------------------------------------------------------------
12
+ export { AIProviderError, ToolNotFoundError, ToolExecutionError, ToolPermissionDeniedError, AgentInterruptedError, FatalAgentError, FileIOError, ShellExecError, MemoryError, } from "./Errors.js";
13
+ // --- Provider --------------------------------------------------------------
14
+ export { AIProvider, consumeStream, toolCallsOf, } from "./AIProvider.js";
15
+ // --- Conversation ----------------------------------------------------------
16
+ export { makeConversation, } from "./Conversation.js";
17
+ // --- Tools -----------------------------------------------------------------
18
+ export { makeToolRegistry, toJsonTool, jsonToolCallsToToolCalls, legacyBashConfirm, } from "./Tool.js";
19
+ // --- Interpreter (for advanced consumers) ---------------------------------
20
+ export { AgentHooksTag, mkWorld, evalForm, parseInput, run, formatResults, toolCallsToForm, } from "./Interpreter.js";
21
+ // --- Defaults --------------------------------------------------------------
22
+ export { OpenRouterProviderLive } from "./defaults/OpenRouter.js";
23
+ export { fileMemory } from "./defaults/FileMemory.js";
24
+ export { primitiveTools, toEffectTool, createNodeIO, } from "./defaults/Builtins.js";
25
+ // --- Schema / branded IDs / event schemas ---------------------------------
26
+ export {
27
+ // Branded IDs
28
+ MessageId, ToolCallId, RequestId, ModelId,
29
+ // Message schemas
30
+ Message, MessageRole, AgentMessage as AgentMessageSchema, EnqueuedAgentMessage,
31
+ // Tool data schemas
32
+ ToolArgument as ToolArgumentSchema, ToolCall as ToolCallSchema, ToolResult as ToolResultSchema,
33
+ // Event schemas (constructable via `{ _tag: "...", ... }`)
34
+ AgentEvent as AgentEventSchema, TurnStartEvent, TurnEndEvent, BusyEvent, IdleEvent, QueueChangedEvent, StreamChunkEvent, StreamDoneEvent, ToolStartEvent, ToolDoneEvent, MemoryEvent, SystemRefreshedEvent, TaskCompleteEvent, InterruptedEvent, ErrorEvent, FatalEvent, ConfirmRequestEvent, AskRequestEvent,
35
+ // Error / config schemas
36
+ AgentErrorSchema, AgentConfig, SpawnResult as SpawnResultSchema, } from "./Schema.js";
37
+ export {
38
+ // Form constructors
39
+ Think, Invoke, Confirm, Ask, Remember, Forget, Emit, Refresh, Done, Seq, Nil, Install, ListTools, Spawn,
40
+ // Skill helpers
41
+ parseSkillMarkdown, findSkill, mergeSkillsIntoSystem, formatSkillsListing, applySkillSubstitutions, splitSkillArguments, matchSkillSlash, skillInvocationToThinkInput, thinkInputFromSkillSubcommand, createInvokeSkillTool, } from "@hypen-space/gloop-loop";
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8EAA8E;AAC9E,OAAO,EACL,KAAK,EACL,IAAI,IAAI,SAAS,GAMlB,MAAM,YAAY,CAAA;AAEnB,8EAA8E;AAC9E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,GAEZ,MAAM,aAAa,CAAA;AAEpB,8EAA8E;AAC9E,OAAO,EACL,UAAU,EACV,aAAa,EACb,WAAW,GAGZ,MAAM,iBAAiB,CAAA;AAExB,8EAA8E;AAC9E,OAAO,EACL,gBAAgB,GAGjB,MAAM,mBAAmB,CAAA;AAE1B,8EAA8E;AAC9E,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,wBAAwB,EACxB,iBAAiB,GAMlB,MAAM,WAAW,CAAA;AAElB,6EAA6E;AAC7E,OAAO,EACL,aAAa,EACb,OAAO,EACP,QAAQ,EACR,UAAU,EACV,GAAG,EACH,aAAa,EACb,eAAe,GAIhB,MAAM,kBAAkB,CAAA;AAEzB,8EAA8E;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAyB,MAAM,0BAA0B,CAAA;AAC5E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,GAEb,MAAM,wBAAwB,CAAA;AAE/B,6EAA6E;AAC7E,OAAO;AACL,cAAc;AACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,OAAO;AACP,kBAAkB;AAClB,OAAO,EACP,WAAW,EACX,YAAY,IAAI,kBAAkB,EAClC,oBAAoB;AACpB,oBAAoB;AACpB,YAAY,IAAI,kBAAkB,EAClC,QAAQ,IAAI,cAAc,EAC1B,UAAU,IAAI,gBAAgB;AAC9B,2DAA2D;AAC3D,UAAU,IAAI,gBAAgB,EAC9B,cAAc,EACd,YAAY,EACZ,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,eAAe;AACf,yBAAyB;AACzB,gBAAgB,EAChB,WAAW,EACX,WAAW,IAAI,iBAAiB,GACjC,MAAM,aAAa,CAAA;AAmBpB,OAAO;AACL,oBAAoB;AACpB,KAAK,EACL,MAAM,EACN,OAAO,EACP,GAAG,EACH,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,GAAG,EACH,GAAG,EACH,OAAO,EACP,SAAS,EACT,KAAK;AACL,gBAAgB;AAChB,kBAAkB,EAClB,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,yBAAyB,CAAA"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@hypen-space/gloop-effect",
3
+ "version": "0.1.0",
4
+ "description": "Effect-TS wrapper for gloop-loop — typed, composable, observable agent loops",
5
+ "type": "module",
6
+ "module": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": ["dist"],
15
+ "scripts": {
16
+ "build": "tsc -p tsconfig.build.json",
17
+ "prepublishOnly": "bun run build",
18
+ "test": "bun test",
19
+ "typecheck": "tsc --noEmit"
20
+ },
21
+ "dependencies": {
22
+ "@hypen-space/gloop-loop": "workspace:*",
23
+ "effect": "^3.16.0"
24
+ },
25
+ "devDependencies": {
26
+ "@types/bun": "latest",
27
+ "typescript": "^5"
28
+ },
29
+ "peerDependencies": {
30
+ "effect": ">=3.10.0"
31
+ },
32
+ "license": "MIT"
33
+ }