@slopus/happy-agent-base 0.0.1 → 0.0.2

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 (95) hide show
  1. package/README.md +434 -34
  2. package/dist/Agent.d.ts +64 -9
  3. package/dist/Agent.d.ts.map +1 -1
  4. package/dist/Agent.js +247 -40
  5. package/dist/Agent.js.map +1 -1
  6. package/dist/AgentBase.d.ts +270 -23
  7. package/dist/AgentBase.d.ts.map +1 -1
  8. package/dist/AgentBase.js +1728 -342
  9. package/dist/AgentBase.js.map +1 -1
  10. package/dist/AgentBaseHooks.d.ts +108 -20
  11. package/dist/AgentBaseHooks.d.ts.map +1 -1
  12. package/dist/AgentBasePending.d.ts +49 -0
  13. package/dist/AgentBasePending.d.ts.map +1 -0
  14. package/dist/AgentBasePending.js +73 -0
  15. package/dist/AgentBasePending.js.map +1 -0
  16. package/dist/AgentBaseState.d.ts +2 -0
  17. package/dist/AgentBaseState.d.ts.map +1 -1
  18. package/dist/AgentBaseStoreLock.d.ts +16 -0
  19. package/dist/AgentBaseStoreLock.d.ts.map +1 -0
  20. package/dist/AgentBaseStoreLock.js +37 -0
  21. package/dist/AgentBaseStoreLock.js.map +1 -0
  22. package/dist/AgentConfig.d.ts +67 -0
  23. package/dist/AgentConfig.d.ts.map +1 -0
  24. package/dist/AgentConfig.js +81 -0
  25. package/dist/AgentConfig.js.map +1 -0
  26. package/dist/AgentContexts.d.ts +40 -0
  27. package/dist/AgentContexts.d.ts.map +1 -0
  28. package/dist/AgentContexts.js +70 -0
  29. package/dist/AgentContexts.js.map +1 -0
  30. package/dist/AgentFeature.d.ts +105 -15
  31. package/dist/AgentFeature.d.ts.map +1 -1
  32. package/dist/AgentKV.d.ts +63 -0
  33. package/dist/AgentKV.d.ts.map +1 -0
  34. package/dist/AgentKV.js +122 -0
  35. package/dist/AgentKV.js.map +1 -0
  36. package/dist/AgentModel.d.ts +17 -0
  37. package/dist/AgentModel.d.ts.map +1 -0
  38. package/dist/AgentModel.js +2 -0
  39. package/dist/AgentModel.js.map +1 -0
  40. package/dist/AgentPersistence.d.ts +95 -0
  41. package/dist/AgentPersistence.d.ts.map +1 -0
  42. package/dist/AgentPersistence.js +2 -0
  43. package/dist/AgentPersistence.js.map +1 -0
  44. package/dist/AgentProviders.d.ts +5 -0
  45. package/dist/AgentProviders.d.ts.map +1 -1
  46. package/dist/AgentProviders.js +6 -0
  47. package/dist/AgentProviders.js.map +1 -1
  48. package/dist/AgentRef.d.ts +41 -0
  49. package/dist/AgentRef.d.ts.map +1 -0
  50. package/dist/AgentRef.js +60 -0
  51. package/dist/AgentRef.js.map +1 -0
  52. package/dist/AgentStorage.d.ts +19 -0
  53. package/dist/AgentStorage.d.ts.map +1 -0
  54. package/dist/AgentStorage.js +16 -0
  55. package/dist/AgentStorage.js.map +1 -0
  56. package/dist/AgentSystem.d.ts +50 -0
  57. package/dist/AgentSystem.d.ts.map +1 -0
  58. package/dist/AgentSystem.js +2 -0
  59. package/dist/AgentSystem.js.map +1 -0
  60. package/dist/AgentSystemContext.d.ts +15 -0
  61. package/dist/AgentSystemContext.d.ts.map +1 -0
  62. package/dist/AgentSystemContext.js +20 -0
  63. package/dist/AgentSystemContext.js.map +1 -0
  64. package/dist/AgentSystemLocal.d.ts +103 -0
  65. package/dist/AgentSystemLocal.d.ts.map +1 -0
  66. package/dist/AgentSystemLocal.js +282 -0
  67. package/dist/AgentSystemLocal.js.map +1 -0
  68. package/dist/AgentSystemRef.d.ts +56 -0
  69. package/dist/AgentSystemRef.d.ts.map +1 -0
  70. package/dist/AgentSystemRef.js +75 -0
  71. package/dist/AgentSystemRef.js.map +1 -0
  72. package/dist/AgentTaskContext.d.ts +17 -0
  73. package/dist/AgentTaskContext.d.ts.map +1 -0
  74. package/dist/AgentTaskContext.js +26 -0
  75. package/dist/AgentTaskContext.js.map +1 -0
  76. package/dist/AgentTool.d.ts +40 -0
  77. package/dist/AgentTool.d.ts.map +1 -1
  78. package/dist/AgentTool.js.map +1 -1
  79. package/dist/index.d.ts +20 -6
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +23 -2
  82. package/dist/index.js.map +1 -1
  83. package/dist/models.d.ts +62 -0
  84. package/dist/models.d.ts.map +1 -0
  85. package/dist/models.js +185 -0
  86. package/dist/models.js.map +1 -0
  87. package/package.json +5 -3
  88. package/dist/AgentBaseContext.d.ts +0 -22
  89. package/dist/AgentBaseContext.d.ts.map +0 -1
  90. package/dist/AgentBaseContext.js +0 -33
  91. package/dist/AgentBaseContext.js.map +0 -1
  92. package/dist/AgentBasePersistence.d.ts +0 -60
  93. package/dist/AgentBasePersistence.d.ts.map +0 -1
  94. package/dist/AgentBasePersistence.js +0 -2
  95. package/dist/AgentBasePersistence.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,11 +1,32 @@
1
+ /** Public surface of `@slopus/happy-agent-base`, re-exported by concern. */
2
+ // Agent instances and the collection that creates, resolves, and stores them.
1
3
  export { Agent } from "./Agent.js";
4
+ export {} from "./AgentSystem.js";
5
+ export {} from "./AgentSystem.js";
6
+ export { AgentSystemLocal } from "./AgentSystemLocal.js";
7
+ export { AgentSystemRef } from "./AgentSystemRef.js";
8
+ export { AgentRef } from "./AgentRef.js";
9
+ export { agentSystem, withAgentSystem } from "./AgentSystemContext.js";
10
+ // Static agent configuration: environment, per-feature settings, and their context carrier.
11
+ export { agentConfig, agentConfigSchema, agentFeatureConfig, agentEnvironment, agentEnvironmentSchema, agentFeatureConfigSchema, agentPlatformSchema, currentAgentEnvironment, withAgentConfig, } from "./AgentConfig.js";
12
+ export { AgentStorage } from "./AgentStorage.js";
13
+ // Provider/model routing and the curated model catalog.
14
+ export {} from "./AgentModel.js";
15
+ export { knownModels } from "./models.js";
16
+ // The run loop itself: its context carriers, key-value store, hook contracts, and persistence.
2
17
  export { AgentBase, } from "./AgentBase.js";
3
- export { agentBaseEffort, agentBaseModel, agentBaseProvider, agentBaseServiceTier, withAgentBaseContext, } from "./AgentBaseContext.js";
18
+ export { agentEffort, agentId, agentKV, agentModel, agentProvider, agentRunKV, agentServiceTier, withAgentContext, withAgentKV, withAgentRunKV, } from "./AgentContexts.js";
19
+ export { agentTaskContext, taskContextBeforeToolCall, withAgentTaskContext, } from "./AgentTaskContext.js";
20
+ export { AgentKV } from "./AgentKV.js";
4
21
  export {} from "./AgentBaseHooks.js";
5
- export {} from "./AgentBasePersistence.js";
22
+ export {} from "./AgentPersistence.js";
23
+ export { agentBasePendingStateOf, agentBaseStoreOwesWork, AGENT_BASE_PENDING_KEY, } from "./AgentBasePending.js";
6
24
  export {} from "./AgentBaseState.js";
25
+ // Features: pluggable capabilities that compose into an agent's hooks, tools, and instructions.
7
26
  export {} from "./AgentFeature.js";
8
27
  export {} from "./AgentFeatureAction.js";
28
+ // Registry of provider instances agents resolve their models through.
9
29
  export { AgentProviders } from "./AgentProviders.js";
30
+ // Tool definitions.
10
31
  export { defineAgentTool, } from "./AgentTool.js";
11
32
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../sources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EACH,SAAS,GAIZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkD,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAGN,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAuB,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAqB,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAA2B,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACH,eAAe,GAGlB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../sources/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,8EAA8E;AAC9E,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EAAoB,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAA4B,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvE,4FAA4F;AAC5F,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,GAKlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAA4B,MAAM,mBAAmB,CAAC;AAE3E,wDAAwD;AACxD,OAAO,EAAmB,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAEtD,+FAA+F;AAC/F,OAAO,EACH,SAAS,GAKZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,WAAW,EACX,OAAO,EACP,OAAO,EACP,UAAU,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACH,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAQN,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2C,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACH,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAuB,MAAM,qBAAqB,CAAC;AAE1D,gGAAgG;AAChG,OAAO,EAIN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA2B,MAAM,yBAAyB,CAAC;AAElE,sEAAsE;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,oBAAoB;AACpB,OAAO,EACH,eAAe,GAKlB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Curated model catalog for rig defaults.
3
+ *
4
+ * Order matches the Conductor model picker.
5
+ */
6
+ /** Model metadata exposed by a provider. */
7
+ export interface Model<TThinkingLevel extends string = string> {
8
+ /** The model identifier as the provider knows it. */
9
+ id: string;
10
+ /** Human-readable label shown in the model picker. */
11
+ name: string;
12
+ /** Thinking levels this model accepts, in picker order. */
13
+ thinkingLevels: readonly TThinkingLevel[];
14
+ /** The thinking level used when nothing more specific was requested. */
15
+ defaultThinkingLevel: TThinkingLevel;
16
+ /** Maximum input context accepted by the model. */
17
+ contextWindow?: number;
18
+ /** Smaller effective window used to decide when automatic compaction begins. */
19
+ autoCompactWindow?: number;
20
+ }
21
+ /** Anthropic's Fable 5, full effort ladder over a 1M-token context. */
22
+ export declare const modelAnthropicFable5: Model<"high" | "low" | "max" | "medium" | "off" | "ultra" | "xhigh">;
23
+ /** Anthropic's Opus 5, full effort ladder over a 1M-token context. */
24
+ export declare const modelAnthropicOpus5: Model<"high" | "low" | "max" | "medium" | "off" | "ultra" | "xhigh">;
25
+ /** Anthropic's Opus 4.8, full effort ladder over a 1M-token context. */
26
+ export declare const modelAnthropicOpus48: Model<"high" | "low" | "max" | "medium" | "off" | "ultra" | "xhigh">;
27
+ /** Anthropic's Opus 4.7, full effort ladder over a 1M-token context. */
28
+ export declare const modelAnthropicOpus47: Model<"high" | "low" | "max" | "medium" | "off" | "ultra" | "xhigh">;
29
+ /** Anthropic's Opus 4.6, a 1M-token context but without the xhigh/ultra effort levels. */
30
+ export declare const modelAnthropicOpus46: Model<"high" | "low" | "max" | "medium" | "off">;
31
+ /** Anthropic's Sonnet 5, full effort ladder over a 1M-token context. */
32
+ export declare const modelAnthropicSonnet5: Model<"high" | "low" | "max" | "medium" | "off" | "ultra" | "xhigh">;
33
+ /** Anthropic's Sonnet 4.6, 1M-token context variant without the xhigh/ultra effort levels. */
34
+ export declare const modelAnthropicSonnet461m: Model<"high" | "low" | "max" | "medium" | "off">;
35
+ /** Anthropic's Sonnet 4.6, the non-1M variant with the smaller default context window. */
36
+ export declare const modelAnthropicSonnet46: Model<"high" | "low" | "max" | "medium" | "off">;
37
+ /** Anthropic's Haiku 4.5, which has no thinking levels beyond off. */
38
+ export declare const modelAnthropicHaiku45: Model<"off">;
39
+ /** OpenAI's GPT-5.5, including the minimal effort level below low. */
40
+ export declare const modelOpenaiGpt55: Model<"high" | "low" | "medium" | "minimal" | "off" | "xhigh">;
41
+ /** OpenAI's GPT-5.6 Sol, full effort ladder up to ultra. */
42
+ export declare const modelOpenaiGpt56Sol: Model<"high" | "low" | "max" | "medium" | "off" | "ultra" | "xhigh">;
43
+ /** OpenAI's GPT-5.6 Terra, full effort ladder up to ultra. */
44
+ export declare const modelOpenaiGpt56Terra: Model<"high" | "low" | "max" | "medium" | "off" | "ultra" | "xhigh">;
45
+ /** OpenAI's GPT-5.6 Luna, full effort ladder up to max but without ultra. */
46
+ export declare const modelOpenaiGpt56Luna: Model<"high" | "low" | "max" | "medium" | "off" | "xhigh">;
47
+ /** OpenAI's GPT-5.4, including the minimal effort level below low. */
48
+ export declare const modelOpenaiGpt54: Model<"high" | "low" | "medium" | "minimal" | "off" | "xhigh">;
49
+ /**
50
+ * Reviews one proposed action for Auto permissions. It never appears in the model picker and is
51
+ * never used for ordinary inference, so it is deliberately absent from the profile catalog.
52
+ */
53
+ export declare const modelOpenaiCodexAutoReview: Model<"high" | "low" | "medium" | "xhigh">;
54
+ /** xAI's Grok Build, which only ever runs at its single "on" thinking level. */
55
+ export declare const modelXaiGrokBuild: Model<"on">;
56
+ /** xAI's Grok 4.5. */
57
+ export declare const modelXaiGrok45: Model<"high" | "low" | "medium">;
58
+ /** xAI's Composer 2.5, which has no thinking levels beyond off. */
59
+ export declare const modelXaiGrokComposer25Fast: Model<"off">;
60
+ /** Every model definition in the catalog, in picker order. */
61
+ export declare const knownModels: readonly Model[];
62
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../sources/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,4CAA4C;AAC5C,MAAM,WAAW,KAAK,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM;IACzD,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,cAAc,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,wEAAwE;IACxE,oBAAoB,EAAE,cAAc,CAAC;IACrC,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAcD,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,sEAO/B,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,sEAO9B,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,sEAO/B,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,sEAO/B,CAAC;AAEH,0FAA0F;AAC1F,eAAO,MAAM,oBAAoB,kDAO/B,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,sEAOhC,CAAC;AAEH,8FAA8F;AAC9F,eAAO,MAAM,wBAAwB,kDAOnC,CAAC;AAEH,0FAA0F;AAC1F,eAAO,MAAM,sBAAsB,kDAMjC,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,cAMhC,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,gEAM3B,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,sEAM9B,CAAC;AAEH,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,sEAMhC,CAAC;AAEH,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,4DAM/B,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,gEAM3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B,4CAMrC,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,aAM5B,CAAC;AAEH,sBAAsB;AACtB,eAAO,MAAM,cAAc,kCAMzB,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,0BAA0B,cAMrC,CAAC;AAEH,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,SAAS,KAAK,EAmBvC,CAAC"}
package/dist/models.js ADDED
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Curated model catalog for rig defaults.
3
+ *
4
+ * Order matches the Conductor model picker.
5
+ */
6
+ /** Statically typed helper for constructing a model definition. */
7
+ function defineModel(model) {
8
+ return model;
9
+ }
10
+ /** Anthropic's Fable 5, full effort ladder over a 1M-token context. */
11
+ export const modelAnthropicFable5 = defineModel({
12
+ id: "anthropic/fable-5",
13
+ name: "Fable 5",
14
+ thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
15
+ defaultThinkingLevel: "medium",
16
+ contextWindow: 1_000_000,
17
+ autoCompactWindow: 333_000,
18
+ });
19
+ /** Anthropic's Opus 5, full effort ladder over a 1M-token context. */
20
+ export const modelAnthropicOpus5 = defineModel({
21
+ id: "anthropic/opus-5",
22
+ name: "Opus 5 1M",
23
+ thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
24
+ defaultThinkingLevel: "medium",
25
+ contextWindow: 1_000_000,
26
+ autoCompactWindow: 333_000,
27
+ });
28
+ /** Anthropic's Opus 4.8, full effort ladder over a 1M-token context. */
29
+ export const modelAnthropicOpus48 = defineModel({
30
+ id: "anthropic/opus-4-8",
31
+ name: "Opus 4.8 1M",
32
+ thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
33
+ defaultThinkingLevel: "medium",
34
+ contextWindow: 1_000_000,
35
+ autoCompactWindow: 333_000,
36
+ });
37
+ /** Anthropic's Opus 4.7, full effort ladder over a 1M-token context. */
38
+ export const modelAnthropicOpus47 = defineModel({
39
+ id: "anthropic/opus-4-7",
40
+ name: "Opus 4.7 1M",
41
+ thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
42
+ defaultThinkingLevel: "medium",
43
+ contextWindow: 1_000_000,
44
+ autoCompactWindow: 333_000,
45
+ });
46
+ /** Anthropic's Opus 4.6, a 1M-token context but without the xhigh/ultra effort levels. */
47
+ export const modelAnthropicOpus46 = defineModel({
48
+ id: "anthropic/opus-4-6",
49
+ name: "Opus 4.6 1M",
50
+ thinkingLevels: ["off", "low", "medium", "high", "max"],
51
+ defaultThinkingLevel: "medium",
52
+ contextWindow: 1_000_000,
53
+ autoCompactWindow: 333_000,
54
+ });
55
+ /** Anthropic's Sonnet 5, full effort ladder over a 1M-token context. */
56
+ export const modelAnthropicSonnet5 = defineModel({
57
+ id: "anthropic/sonnet-5",
58
+ name: "Sonnet 5",
59
+ thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
60
+ defaultThinkingLevel: "medium",
61
+ contextWindow: 1_000_000,
62
+ autoCompactWindow: 333_000,
63
+ });
64
+ /** Anthropic's Sonnet 4.6, 1M-token context variant without the xhigh/ultra effort levels. */
65
+ export const modelAnthropicSonnet461m = defineModel({
66
+ id: "anthropic/sonnet-4-6-1m",
67
+ name: "Sonnet 4.6 1M",
68
+ thinkingLevels: ["off", "low", "medium", "high", "max"],
69
+ defaultThinkingLevel: "medium",
70
+ contextWindow: 1_000_000,
71
+ autoCompactWindow: 333_000,
72
+ });
73
+ /** Anthropic's Sonnet 4.6, the non-1M variant with the smaller default context window. */
74
+ export const modelAnthropicSonnet46 = defineModel({
75
+ id: "anthropic/sonnet-4-6",
76
+ name: "Sonnet 4.6",
77
+ thinkingLevels: ["off", "low", "medium", "high", "max"],
78
+ defaultThinkingLevel: "medium",
79
+ contextWindow: 200_000,
80
+ });
81
+ /** Anthropic's Haiku 4.5, which has no thinking levels beyond off. */
82
+ export const modelAnthropicHaiku45 = defineModel({
83
+ id: "anthropic/haiku-4-5",
84
+ name: "Haiku 4.5",
85
+ thinkingLevels: ["off"],
86
+ defaultThinkingLevel: "off",
87
+ contextWindow: 200_000,
88
+ });
89
+ /** OpenAI's GPT-5.5, including the minimal effort level below low. */
90
+ export const modelOpenaiGpt55 = defineModel({
91
+ id: "openai/gpt-5.5",
92
+ name: "GPT-5.5",
93
+ thinkingLevels: ["off", "minimal", "low", "medium", "high", "xhigh"],
94
+ defaultThinkingLevel: "medium",
95
+ contextWindow: 272_000,
96
+ });
97
+ /** OpenAI's GPT-5.6 Sol, full effort ladder up to ultra. */
98
+ export const modelOpenaiGpt56Sol = defineModel({
99
+ id: "openai/gpt-5.6-sol",
100
+ name: "GPT-5.6 Sol",
101
+ thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
102
+ defaultThinkingLevel: "medium",
103
+ contextWindow: 372_000,
104
+ });
105
+ /** OpenAI's GPT-5.6 Terra, full effort ladder up to ultra. */
106
+ export const modelOpenaiGpt56Terra = defineModel({
107
+ id: "openai/gpt-5.6-terra",
108
+ name: "GPT-5.6 Terra",
109
+ thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max", "ultra"],
110
+ defaultThinkingLevel: "medium",
111
+ contextWindow: 372_000,
112
+ });
113
+ /** OpenAI's GPT-5.6 Luna, full effort ladder up to max but without ultra. */
114
+ export const modelOpenaiGpt56Luna = defineModel({
115
+ id: "openai/gpt-5.6-luna",
116
+ name: "GPT-5.6 Luna",
117
+ thinkingLevels: ["off", "low", "medium", "high", "xhigh", "max"],
118
+ defaultThinkingLevel: "medium",
119
+ contextWindow: 372_000,
120
+ });
121
+ /** OpenAI's GPT-5.4, including the minimal effort level below low. */
122
+ export const modelOpenaiGpt54 = defineModel({
123
+ id: "openai/gpt-5.4",
124
+ name: "GPT-5.4",
125
+ thinkingLevels: ["off", "minimal", "low", "medium", "high", "xhigh"],
126
+ defaultThinkingLevel: "medium",
127
+ contextWindow: 272_000,
128
+ });
129
+ /**
130
+ * Reviews one proposed action for Auto permissions. It never appears in the model picker and is
131
+ * never used for ordinary inference, so it is deliberately absent from the profile catalog.
132
+ */
133
+ export const modelOpenaiCodexAutoReview = defineModel({
134
+ id: "openai/codex-auto-review",
135
+ name: "Codex Auto Review",
136
+ thinkingLevels: ["low", "medium", "high", "xhigh"],
137
+ defaultThinkingLevel: "low",
138
+ contextWindow: 272_000,
139
+ });
140
+ /** xAI's Grok Build, which only ever runs at its single "on" thinking level. */
141
+ export const modelXaiGrokBuild = defineModel({
142
+ id: "xai/grok-build",
143
+ name: "Grok Build",
144
+ thinkingLevels: ["on"],
145
+ defaultThinkingLevel: "on",
146
+ contextWindow: 500_000,
147
+ });
148
+ /** xAI's Grok 4.5. */
149
+ export const modelXaiGrok45 = defineModel({
150
+ id: "xai/grok-4.5",
151
+ name: "Grok 4.5",
152
+ thinkingLevels: ["low", "medium", "high"],
153
+ defaultThinkingLevel: "high",
154
+ contextWindow: 500_000,
155
+ });
156
+ /** xAI's Composer 2.5, which has no thinking levels beyond off. */
157
+ export const modelXaiGrokComposer25Fast = defineModel({
158
+ id: "xai/grok-composer-2.5-fast",
159
+ name: "Composer 2.5",
160
+ thinkingLevels: ["off"],
161
+ defaultThinkingLevel: "off",
162
+ contextWindow: 200_000,
163
+ });
164
+ /** Every model definition in the catalog, in picker order. */
165
+ export const knownModels = [
166
+ modelAnthropicFable5,
167
+ modelAnthropicOpus5,
168
+ modelAnthropicOpus48,
169
+ modelAnthropicOpus47,
170
+ modelAnthropicOpus46,
171
+ modelAnthropicSonnet5,
172
+ modelAnthropicSonnet461m,
173
+ modelAnthropicSonnet46,
174
+ modelAnthropicHaiku45,
175
+ modelOpenaiGpt55,
176
+ modelOpenaiGpt56Sol,
177
+ modelOpenaiGpt56Terra,
178
+ modelOpenaiGpt56Luna,
179
+ modelOpenaiGpt54,
180
+ modelOpenaiCodexAutoReview,
181
+ modelXaiGrokBuild,
182
+ modelXaiGrok45,
183
+ modelXaiGrokComposer25Fast,
184
+ ];
185
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../sources/models.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slopus/happy-agent-base",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Shared foundations for Happy coding agents.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,8 +24,9 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
+ "@paralleldrive/cuid2": "^3.3.0",
27
28
  "@sinclair/typebox": "^0.34.49",
28
- "@slopus/happy-providers": "0.0.5",
29
+ "@slopus/happy-providers": "0.0.7",
29
30
  "@steve.kite/stdlib": "0.0.8"
30
31
  },
31
32
  "devDependencies": {
@@ -39,6 +40,7 @@
39
40
  "scripts": {
40
41
  "build": "node --eval \"import('node:fs/promises').then(({ rm }) => rm('dist', { force: true, recursive: true }))\" && tsc -p tsconfig.build.json",
41
42
  "check": "tsc --noEmit",
42
- "test": "vitest run --passWithNoTests"
43
+ "test": "vitest run --passWithNoTests",
44
+ "test:real": "RIG_LIVE_TEST=1 vitest run tests/real-gym"
43
45
  }
44
46
  }
@@ -1,22 +0,0 @@
1
- import type { SessionReasoningEffort, SessionServiceTier } from "@slopus/happy-providers";
2
- import { type Context } from "@steve.kite/stdlib";
3
- /**
4
- * Derive the agent's context carrying its provider ID, model, effort, and service tier — all serializable
5
- * values. The agent applies this once at construction, so hooks and tool executions can read
6
- * the values back through the accessors below.
7
- */
8
- export declare function withAgentBaseContext(ctx: Context, values: {
9
- readonly provider: string;
10
- readonly model?: string | undefined;
11
- readonly effort?: SessionReasoningEffort | undefined;
12
- readonly serviceTier?: SessionServiceTier | undefined;
13
- }): Context;
14
- /** The model configured for the agent owning this context, when one was set. */
15
- export declare function agentBaseModel(ctx: Context): string | undefined;
16
- /** The reasoning effort configured for the agent owning this context, when one was set. */
17
- export declare function agentBaseEffort(ctx: Context): SessionReasoningEffort | undefined;
18
- /** The registry ID of the provider of the agent owning this context. */
19
- export declare function agentBaseProvider(ctx: Context): string | undefined;
20
- /** The service tier configured for the agent owning this context, when one was set. */
21
- export declare function agentBaseServiceTier(ctx: Context): SessionServiceTier | undefined;
22
- //# sourceMappingURL=AgentBaseContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentBaseContext.d.ts","sourceRoot":"","sources":["../sources/AgentBaseContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAA0B,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAmB1E;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE;IACJ,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACzD,GACF,OAAO,CAKT;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE/D;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAEhF;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,GAAG,SAAS,CAEjF"}
@@ -1,33 +0,0 @@
1
- import { createContextNamespace } from "@steve.kite/stdlib";
2
- const modelNamespace = createContextNamespace("agentBaseModel", undefined);
3
- const effortNamespace = createContextNamespace("agentBaseEffort", undefined);
4
- const providerNamespace = createContextNamespace("agentBaseProvider", undefined);
5
- const serviceTierNamespace = createContextNamespace("agentBaseServiceTier", undefined);
6
- /**
7
- * Derive the agent's context carrying its provider ID, model, effort, and service tier — all serializable
8
- * values. The agent applies this once at construction, so hooks and tool executions can read
9
- * the values back through the accessors below.
10
- */
11
- export function withAgentBaseContext(ctx, values) {
12
- const withProvider = providerNamespace.set(ctx, values.provider);
13
- const withModel = modelNamespace.set(withProvider, values.model);
14
- const withEffort = effortNamespace.set(withModel, values.effort);
15
- return serviceTierNamespace.set(withEffort, values.serviceTier);
16
- }
17
- /** The model configured for the agent owning this context, when one was set. */
18
- export function agentBaseModel(ctx) {
19
- return modelNamespace.get(ctx);
20
- }
21
- /** The reasoning effort configured for the agent owning this context, when one was set. */
22
- export function agentBaseEffort(ctx) {
23
- return effortNamespace.get(ctx);
24
- }
25
- /** The registry ID of the provider of the agent owning this context. */
26
- export function agentBaseProvider(ctx) {
27
- return providerNamespace.get(ctx);
28
- }
29
- /** The service tier configured for the agent owning this context, when one was set. */
30
- export function agentBaseServiceTier(ctx) {
31
- return serviceTierNamespace.get(ctx);
32
- }
33
- //# sourceMappingURL=AgentBaseContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentBaseContext.js","sourceRoot":"","sources":["../sources/AgentBaseContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAgB,MAAM,oBAAoB,CAAC;AAE1E,MAAM,cAAc,GAAG,sBAAsB,CACzC,gBAAgB,EAChB,SAAS,CACZ,CAAC;AACF,MAAM,eAAe,GAAG,sBAAsB,CAC1C,iBAAiB,EACjB,SAAS,CACZ,CAAC;AACF,MAAM,iBAAiB,GAAG,sBAAsB,CAC5C,mBAAmB,EACnB,SAAS,CACZ,CAAC;AACF,MAAM,oBAAoB,GAAG,sBAAsB,CAC/C,sBAAsB,EACtB,SAAS,CACZ,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAChC,GAAY,EACZ,MAKC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,OAAO,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AACpE,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,GAAY;IACvC,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,eAAe,CAAC,GAAY;IACxC,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC7C,OAAO,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC"}
@@ -1,60 +0,0 @@
1
- import type { SessionAssistantBlock, SessionMessage, SessionSystemMessage, SessionToolResultMessage, SessionUserMessage } from "@slopus/happy-providers";
2
- import type { Context } from "@steve.kite/stdlib";
3
- /**
4
- * One record of the main context store. Only content that is part of the model context lives
5
- * here: user messages enter when a turn consumes them, assistant output is appended one finished
6
- * block at a time, and tool results follow the blocks that called them, so records always arrive
7
- * in context order and consecutive block records reassemble into one assistant message. A
8
- * compaction record carries the complete replacement context — the messages that stay — and is
9
- * written in the same transaction that physically deletes the superseded records, so it opens
10
- * the store; the records after it append as usual.
11
- */
12
- export type AgentBaseRecord = {
13
- readonly type: "user";
14
- readonly message: SessionUserMessage;
15
- } | {
16
- readonly type: "block";
17
- readonly block: SessionAssistantBlock;
18
- } | {
19
- readonly type: "tool";
20
- readonly message: SessionToolResultMessage;
21
- } | {
22
- readonly type: "system";
23
- readonly message: SessionSystemMessage;
24
- } | {
25
- readonly type: "compaction";
26
- readonly messages: readonly SessionMessage[];
27
- };
28
- /**
29
- * Storage for one agent: an append-only main context store plus a sorted key-value store held
30
- * alongside it. A sent message is first written under a `pending.` key ordered by append time;
31
- * it reaches the main store only when a turn consumes it into the context, and its pending key
32
- * is deleted at that moment. The agent serializes all calls through one lock, so an
33
- * implementation never sees two operations in flight at the same time and needs no internal
34
- * locking.
35
- */
36
- export interface AgentBasePersistence {
37
- /**
38
- * Run work atomically. The implementation opens a transaction and passes work a derived
39
- * context that its own operations recognize; how the transaction rides on that context is
40
- * entirely the implementation's business. Work resolving commits every operation; a thrown
41
- * error rolls them all back.
42
- */
43
- transaction<Result>(ctx: Context, work: (ctx: Context) => Promise<Result>): Promise<Result>;
44
- load(ctx: Context): Promise<readonly AgentBaseRecord[]>;
45
- append(ctx: Context, record: AgentBaseRecord): Promise<void>;
46
- /**
47
- * Physically delete every record in the main context store. Called only inside the
48
- * compaction transaction, immediately before the replacement compaction record is appended,
49
- * so the deletion and the replacement commit atomically.
50
- */
51
- clearRecords(ctx: Context): Promise<void>;
52
- /** Every stored entry whose key starts with the prefix, sorted by key. */
53
- readValues(ctx: Context, prefix: string): Promise<readonly {
54
- readonly key: string;
55
- readonly value: unknown;
56
- }[]>;
57
- writeValue(ctx: Context, key: string, value: unknown): Promise<void>;
58
- deleteValue(ctx: Context, key: string): Promise<void>;
59
- }
60
- //# sourceMappingURL=AgentBasePersistence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentBasePersistence.d.ts","sourceRoot":"","sources":["../sources/AgentBasePersistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACnE;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;CAAE,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EACd,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D;;;;OAIG;IACH,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,UAAU,CACN,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC,CAAC;IACzE,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AgentBasePersistence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentBasePersistence.js","sourceRoot":"","sources":["../sources/AgentBasePersistence.ts"],"names":[],"mappings":""}