@ai-ecoverse/slicc-spectrum 1.0.0 → 1.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.
Files changed (160) hide show
  1. package/README.md +86 -3
  2. package/dist/chunk-364Y2XOJ.js +28 -0
  3. package/dist/chunk-364Y2XOJ.js.map +7 -0
  4. package/dist/chunk-4GQ6THC2.js +18 -0
  5. package/dist/chunk-4GQ6THC2.js.map +7 -0
  6. package/dist/chunk-5OVGH7HO.js +28 -0
  7. package/dist/chunk-5OVGH7HO.js.map +7 -0
  8. package/dist/chunk-5XWUZJTT.js +8 -0
  9. package/dist/chunk-5XWUZJTT.js.map +7 -0
  10. package/dist/chunk-64K5VONJ.js +11 -0
  11. package/dist/chunk-64K5VONJ.js.map +7 -0
  12. package/dist/chunk-6A6NIESE.js +9 -0
  13. package/dist/chunk-6A6NIESE.js.map +7 -0
  14. package/dist/chunk-6JNYNXUQ.js +180 -0
  15. package/dist/chunk-6JNYNXUQ.js.map +7 -0
  16. package/dist/chunk-6JYCQXDO.js +8 -0
  17. package/dist/chunk-6JYCQXDO.js.map +7 -0
  18. package/dist/chunk-6N3GZNXH.js +181 -0
  19. package/dist/chunk-6N3GZNXH.js.map +7 -0
  20. package/dist/chunk-6ODADG7T.js +8 -0
  21. package/dist/chunk-6ODADG7T.js.map +7 -0
  22. package/dist/chunk-6T3O5K6R.js +8 -0
  23. package/dist/chunk-6T3O5K6R.js.map +7 -0
  24. package/dist/chunk-7PY7B3ZW.js +59 -0
  25. package/dist/chunk-7PY7B3ZW.js.map +7 -0
  26. package/dist/chunk-AXQFWXYZ.js +19 -0
  27. package/dist/chunk-AXQFWXYZ.js.map +7 -0
  28. package/dist/chunk-BDOI3WEE.js +8 -0
  29. package/dist/chunk-BDOI3WEE.js.map +7 -0
  30. package/dist/chunk-BHAGWMDD.js +8 -0
  31. package/dist/chunk-BHAGWMDD.js.map +7 -0
  32. package/dist/chunk-C7X653JJ.js +8 -0
  33. package/dist/chunk-C7X653JJ.js.map +7 -0
  34. package/dist/chunk-CGS66GRP.js +11 -0
  35. package/dist/chunk-CGS66GRP.js.map +7 -0
  36. package/dist/chunk-CONYKGKV.js +11 -0
  37. package/dist/chunk-CONYKGKV.js.map +7 -0
  38. package/dist/chunk-CU7BC2RI.js +11 -0
  39. package/dist/chunk-CU7BC2RI.js.map +7 -0
  40. package/dist/chunk-EN3XGF2M.js +26 -0
  41. package/dist/chunk-EN3XGF2M.js.map +7 -0
  42. package/dist/chunk-ER3HU7OE.js +22 -0
  43. package/dist/chunk-ER3HU7OE.js.map +7 -0
  44. package/dist/chunk-EX57SDII.js +8 -0
  45. package/dist/chunk-EX57SDII.js.map +7 -0
  46. package/dist/chunk-GKXQPI4G.js +8 -0
  47. package/dist/chunk-GKXQPI4G.js.map +7 -0
  48. package/dist/chunk-HBUX7E54.js +234 -0
  49. package/dist/chunk-HBUX7E54.js.map +7 -0
  50. package/dist/chunk-I2NMYJ25.js +17 -0
  51. package/dist/chunk-I2NMYJ25.js.map +7 -0
  52. package/dist/chunk-I4OYHPAU.js +11 -0
  53. package/dist/chunk-I4OYHPAU.js.map +7 -0
  54. package/dist/chunk-IBQ4O4NO.js +13 -0
  55. package/dist/chunk-IBQ4O4NO.js.map +7 -0
  56. package/dist/chunk-J3QOBXZJ.js +1093 -0
  57. package/dist/chunk-J3QOBXZJ.js.map +7 -0
  58. package/dist/chunk-JASEW37G.js +411 -0
  59. package/dist/chunk-JASEW37G.js.map +7 -0
  60. package/dist/chunk-JBYBW627.js +8 -0
  61. package/dist/chunk-JBYBW627.js.map +7 -0
  62. package/dist/chunk-JWTAKXQS.js +8 -0
  63. package/dist/chunk-JWTAKXQS.js.map +7 -0
  64. package/dist/chunk-KMP5HO3E.js +11 -0
  65. package/dist/chunk-KMP5HO3E.js.map +7 -0
  66. package/dist/chunk-KWPU2PY3.js +14 -0
  67. package/dist/chunk-KWPU2PY3.js.map +7 -0
  68. package/dist/chunk-KYBD6ZRT.js +8 -0
  69. package/dist/chunk-KYBD6ZRT.js.map +7 -0
  70. package/dist/chunk-LBXW6XNL.js +18 -0
  71. package/dist/chunk-LBXW6XNL.js.map +7 -0
  72. package/dist/chunk-LDR4U5KX.js +8 -0
  73. package/dist/chunk-LDR4U5KX.js.map +7 -0
  74. package/dist/chunk-LII3WY6Y.js +11 -0
  75. package/dist/chunk-LII3WY6Y.js.map +7 -0
  76. package/dist/chunk-LY7WVBCB.js +10 -0
  77. package/dist/chunk-LY7WVBCB.js.map +7 -0
  78. package/dist/chunk-MJVAL555.js +8 -0
  79. package/dist/chunk-MJVAL555.js.map +7 -0
  80. package/dist/chunk-NLDFGCIL.js +11 -0
  81. package/dist/chunk-NLDFGCIL.js.map +7 -0
  82. package/dist/chunk-OFQ56DAN.js +2638 -0
  83. package/dist/chunk-OFQ56DAN.js.map +7 -0
  84. package/dist/chunk-S5EGO4NA.js +11 -0
  85. package/dist/chunk-S5EGO4NA.js.map +7 -0
  86. package/dist/chunk-T2LAT2D6.js +168 -0
  87. package/dist/chunk-T2LAT2D6.js.map +7 -0
  88. package/dist/chunk-T5NHW4KC.js +23 -0
  89. package/dist/chunk-T5NHW4KC.js.map +7 -0
  90. package/dist/chunk-TAZBKRHT.js +10 -0
  91. package/dist/chunk-TAZBKRHT.js.map +7 -0
  92. package/dist/chunk-TK4ZJ7LA.js +5346 -0
  93. package/dist/chunk-TK4ZJ7LA.js.map +7 -0
  94. package/dist/chunk-TS7SL372.js +687 -0
  95. package/dist/chunk-TS7SL372.js.map +7 -0
  96. package/dist/chunk-UCIBH53C.js +11 -0
  97. package/dist/chunk-UCIBH53C.js.map +7 -0
  98. package/dist/chunk-XZM23TK4.js +11 -0
  99. package/dist/chunk-XZM23TK4.js.map +7 -0
  100. package/dist/chunk-Y4Z7K443.js +64 -0
  101. package/dist/chunk-Y4Z7K443.js.map +7 -0
  102. package/dist/chunk-YPQKCWWG.js +19 -0
  103. package/dist/chunk-YPQKCWWG.js.map +7 -0
  104. package/dist/chunk-YX6SI5VA.js +11 -0
  105. package/dist/chunk-YX6SI5VA.js.map +7 -0
  106. package/dist/chunk-ZMBN6APP.js +11 -0
  107. package/dist/chunk-ZMBN6APP.js.map +7 -0
  108. package/dist/fonts/source-code-pro-latin-400-normal.woff2 +0 -0
  109. package/dist/fonts/source-code-pro-latin-600-normal.woff2 +0 -0
  110. package/dist/slicc-dummy.js +2811 -0
  111. package/dist/slicc-dummy.js.map +7 -0
  112. package/dist/slicc-terminal.js +7 -5369
  113. package/dist/slicc-terminal.js.map +4 -4
  114. package/dist/slicc-ui.js +61411 -0
  115. package/dist/slicc-ui.js.map +7 -0
  116. package/dist/types/app/agents.d.ts +11 -0
  117. package/dist/types/app/app.d.ts +34 -0
  118. package/dist/types/app/base.d.ts +35 -0
  119. package/dist/types/app/browser.d.ts +25 -0
  120. package/dist/types/app/changes.d.ts +24 -0
  121. package/dist/types/app/chat.d.ts +11 -0
  122. package/dist/types/app/composer.d.ts +69 -0
  123. package/dist/types/app/files.d.ts +56 -0
  124. package/dist/types/app/fonts.d.ts +3 -0
  125. package/dist/types/app/freezer.d.ts +11 -0
  126. package/dist/types/app/markdown.d.ts +33 -0
  127. package/dist/types/app/memory.d.ts +39 -0
  128. package/dist/types/app/messages.d.ts +21 -0
  129. package/dist/types/app/monitor.d.ts +11 -0
  130. package/dist/types/app/panels.d.ts +39 -0
  131. package/dist/types/app/settings.d.ts +21 -0
  132. package/dist/types/app/spectrum.d.ts +37 -0
  133. package/dist/types/app/sprinkle.d.ts +18 -0
  134. package/dist/types/app/terminals.d.ts +25 -0
  135. package/dist/types/app/tray.d.ts +25 -0
  136. package/dist/types/components/code-view.d.ts +47 -0
  137. package/dist/types/components/dock.d.ts +24 -0
  138. package/dist/types/components/file-tree.d.ts +18 -0
  139. package/dist/types/components/sheets.d.ts +1 -0
  140. package/dist/types/dummy/agent.d.ts +32 -0
  141. package/dist/types/dummy/browser.d.ts +15 -0
  142. package/dist/types/dummy/clock.d.ts +5 -0
  143. package/dist/types/dummy/extras.d.ts +8 -0
  144. package/dist/types/dummy/files.d.ts +14 -0
  145. package/dist/types/dummy/fixtures.d.ts +12 -0
  146. package/dist/types/dummy/index.d.ts +6 -0
  147. package/dist/types/dummy/memory.d.ts +9 -0
  148. package/dist/types/dummy/monitor.d.ts +9 -0
  149. package/dist/types/dummy/script.d.ts +29 -0
  150. package/dist/types/dummy/settings.d.ts +13 -0
  151. package/dist/types/dummy/shell.d.ts +16 -0
  152. package/dist/types/dummy/showcase.d.ts +6 -0
  153. package/dist/types/dummy/sprinkles.d.ts +9 -0
  154. package/dist/types/dummy/terminals.d.ts +15 -0
  155. package/dist/types/dummy/tray.d.ts +10 -0
  156. package/dist/types/dummy.d.ts +2 -0
  157. package/dist/types/model/emitter.d.ts +9 -0
  158. package/dist/types/model/types.d.ts +455 -0
  159. package/dist/types/ui.d.ts +23 -0
  160. package/package.json +34 -11
@@ -0,0 +1,32 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { Agent, AgentEvents, AgentPort, FrozenCone, LickChannel, LickState, Message, Outgoing, UserMessage } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ import { type Effects } from './script.js';
5
+ export declare class DummyAgent extends Emitter<AgentEvents> implements AgentPort {
6
+ #private;
7
+ constructor(agents: readonly Agent[], conversations: Record<string, readonly Message[]>, effects: Omit<Effects, 'agentId'>, clock: Clock, queues?: Record<string, readonly UserMessage[]>, frozen?: ReadonlyArray<{
8
+ cone: FrozenCone;
9
+ messages: readonly Message[];
10
+ }>);
11
+ list(): readonly Agent[];
12
+ active(): string;
13
+ select(id: string): void;
14
+ messages(agentId: string): readonly Message[];
15
+ queue(agentId: string): readonly UserMessage[];
16
+ busy(agentId: string): boolean;
17
+ suggestion(agentId: string): string | null;
18
+ unqueue(agentId: string, messageId: string): void;
19
+ send(agentId: string, input: string | Outgoing): Promise<void>;
20
+ stop(agentId: string): void;
21
+ answer(agentId: string, questionId: string, answer: string): void;
22
+ resolveLick(agentId: string, messageId: string, state: Exclude<LickState, 'pending'>): void;
23
+ compact(agentId: string): void;
24
+ clear(agentId: string): void;
25
+ setModel(agentId: string, model: string): void;
26
+ createScoop(parentId: string, name: string): Agent;
27
+ lick(agentId: string, channel: LickChannel, title: string, text: string, body?: string): void;
28
+ frozen(): readonly FrozenCone[];
29
+ freeze(agentId: string): void;
30
+ thaw(id: string): Agent | null;
31
+ discard(id: string): void;
32
+ }
@@ -0,0 +1,15 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { BrowserEvents, BrowserPort, BrowserTab } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ export declare function page(tab: BrowserTab): string;
5
+ export declare class DummyBrowser extends Emitter<BrowserEvents> implements BrowserPort {
6
+ #private;
7
+ constructor(tabs: readonly BrowserTab[], clock: Clock);
8
+ list(): readonly BrowserTab[];
9
+ active(): string | null;
10
+ activate(id: string): void;
11
+ open(url: string, agentId?: string | null): BrowserTab;
12
+ navigate(id: string, url: string): void;
13
+ close(id: string): void;
14
+ screenshot(id: string): Promise<string>;
15
+ }
@@ -0,0 +1,5 @@
1
+ export interface Clock {
2
+ delay: number;
3
+ sleep(ticks?: number): Promise<void>;
4
+ }
5
+ export declare function clock(delay: number): Clock;
@@ -0,0 +1,8 @@
1
+ import type { FrozenCone, Memory, Message, Sprinkle, TrayStatus } from '../model/types.js';
2
+ export declare const frozen: Array<{
3
+ cone: FrozenCone;
4
+ messages: Message[];
5
+ }>;
6
+ export declare const memories: Memory[];
7
+ export declare const sprinkles: Sprinkle[];
8
+ export declare const tray: TrayStatus;
@@ -0,0 +1,14 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { Change, FileEntry, FileEvents, FilePort } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ export declare class DummyFiles extends Emitter<FileEvents> implements FilePort {
5
+ #private;
6
+ constructor(contents: Record<string, string>, directories: readonly string[], changes: readonly Change[], clock: Clock);
7
+ list(): Promise<readonly FileEntry[]>;
8
+ read(path: string): Promise<string>;
9
+ write(path: string, text: string, agentId?: string | null): Promise<void>;
10
+ remove(path: string, agentId?: string | null): Promise<void>;
11
+ changes(): readonly Change[];
12
+ accept(path: string): void;
13
+ revert(path: string): Promise<void>;
14
+ }
@@ -0,0 +1,12 @@
1
+ import type { Account, Agent, BrowserTab, Change, Message, ModelOption, Settings, TerminalInfo, UserMessage } from '../model/types.js';
2
+ export declare const files: Record<string, string>;
3
+ export declare const directories: string[];
4
+ export declare const pending: Change[];
5
+ export declare const models: ModelOption[];
6
+ export declare const defaults: Settings;
7
+ export declare const accounts: Account[];
8
+ export declare const agents: Agent[];
9
+ export declare const queues: Record<string, UserMessage[]>;
10
+ export declare const conversations: Record<string, Message[]>;
11
+ export declare const tabs: BrowserTab[];
12
+ export declare const terminals: TerminalInfo[];
@@ -0,0 +1,6 @@
1
+ import type { SliccModel } from '../model/types.js';
2
+ export interface DummyOptions {
3
+ delay?: number;
4
+ storage?: Storage | null;
5
+ }
6
+ export declare function createDummyModel({ delay, storage }?: DummyOptions): SliccModel;
@@ -0,0 +1,9 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { Memory, MemoryDraft, MemoryEvents, MemoryPort } from '../model/types.js';
3
+ export declare class DummyMemory extends Emitter<MemoryEvents> implements MemoryPort {
4
+ #private;
5
+ constructor(memories: readonly Memory[]);
6
+ list(): readonly Memory[];
7
+ save(draft: MemoryDraft): Memory;
8
+ remove(id: string): void;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { MonitorEvents, MonitorPort, MonitorSnapshot, SliccModel } from '../model/types.js';
3
+ export declare function wave(seed: number, length?: number): number[];
4
+ export declare class DummyMonitor extends Emitter<MonitorEvents> implements MonitorPort {
5
+ #private;
6
+ constructor(model: Omit<SliccModel, 'monitor'>);
7
+ snapshot(): MonitorSnapshot;
8
+ resync(): void;
9
+ }
@@ -0,0 +1,29 @@
1
+ import type { Attachment, BrowserPort, FilePort, MessagePart } from '../model/types.js';
2
+ export interface Effects {
3
+ files: FilePort;
4
+ browser: BrowserPort;
5
+ agentId: string;
6
+ }
7
+ export type Step = {
8
+ type: 'part';
9
+ part: MessagePart;
10
+ } | {
11
+ type: 'thinking';
12
+ text: string;
13
+ } | {
14
+ type: 'text';
15
+ text: string;
16
+ } | {
17
+ type: 'tool';
18
+ name: string;
19
+ title: string;
20
+ input: string;
21
+ output: string;
22
+ paths: string[];
23
+ ticks: number;
24
+ effect?: (effects: Effects) => Promise<unknown> | unknown;
25
+ };
26
+ export declare function script(prompt: string, attachments?: readonly Attachment[]): {
27
+ steps: Step[];
28
+ suggestion: string;
29
+ };
@@ -0,0 +1,13 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { Account, ModelOption, Settings, SettingsEvents, SettingsPort } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ export declare class DummySettings extends Emitter<SettingsEvents> implements SettingsPort {
5
+ #private;
6
+ constructor(defaults: Settings, models: readonly ModelOption[], accounts: readonly Account[], storage: Storage | null, clock: Clock);
7
+ get(): Settings;
8
+ update(patch: Partial<Settings>): void;
9
+ models(): readonly ModelOption[];
10
+ accounts(): readonly Account[];
11
+ connect(id: string): Promise<void>;
12
+ disconnect(id: string): void;
13
+ }
@@ -0,0 +1,16 @@
1
+ import type { TerminalBackend, TerminalSession, TerminalSignal, TerminalSink } from '../backend.js';
2
+ import type { FilePort } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ export declare function resolve(cwd: string, target: string): string;
5
+ export declare class FakeShell implements TerminalSession {
6
+ #private;
7
+ cwd: string;
8
+ closed: boolean;
9
+ constructor(sink: TerminalSink, files: FilePort, cwd: string, clock: Clock);
10
+ history(): readonly string[];
11
+ write(data: Uint8Array): void;
12
+ resize(): void;
13
+ signal(name: TerminalSignal): void;
14
+ close(): void;
15
+ }
16
+ export declare function shellBackend(files: FilePort, cwd: string, clock: Clock): TerminalBackend;
@@ -0,0 +1,6 @@
1
+ import type { Agent, Message, UserMessage } from '../model/types.js';
2
+ export declare function picture(label: string, from: string, to: string, width?: number, height?: number): string;
3
+ export declare function tone(seconds?: number, frequency?: number, rate?: number): string;
4
+ export declare const showcaseAgent: Agent;
5
+ export declare function showcase(): Message[];
6
+ export declare function showcaseQueue(): UserMessage[];
@@ -0,0 +1,9 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { Sprinkle, SprinkleEvents, SprinklePort } from '../model/types.js';
3
+ import type { DummyAgent } from './agent.js';
4
+ export declare class DummySprinkles extends Emitter<SprinkleEvents> implements SprinklePort {
5
+ #private;
6
+ constructor(sprinkles: readonly Sprinkle[], agent: DummyAgent);
7
+ list(): readonly Sprinkle[];
8
+ send(id: string, payload: unknown): void;
9
+ }
@@ -0,0 +1,15 @@
1
+ import type { TerminalBackend } from '../backend.js';
2
+ import { Emitter } from '../model/emitter.js';
3
+ import type { FilePort, TerminalEvents, TerminalInfo, TerminalPort } from '../model/types.js';
4
+ import type { Clock } from './clock.js';
5
+ export declare class DummyTerminals extends Emitter<TerminalEvents> implements TerminalPort {
6
+ #private;
7
+ constructor(terminals: readonly TerminalInfo[], files: FilePort, clock: Clock);
8
+ list(): readonly TerminalInfo[];
9
+ open({ cwd, agentId, }?: {
10
+ cwd?: string;
11
+ agentId?: string | null;
12
+ }): TerminalInfo;
13
+ close(id: string): void;
14
+ backend(id: string): TerminalBackend;
15
+ }
@@ -0,0 +1,10 @@
1
+ import { Emitter } from '../model/emitter.js';
2
+ import type { TrayEvents, TrayPort, TrayStatus } from '../model/types.js';
3
+ import type { Clock } from './clock.js';
4
+ export declare class DummyTray extends Emitter<TrayEvents> implements TrayPort {
5
+ #private;
6
+ constructor(status: TrayStatus, clock: Clock);
7
+ status(): TrayStatus;
8
+ reconnect(): void;
9
+ disconnect(): void;
10
+ }
@@ -0,0 +1,2 @@
1
+ export type { DummyOptions } from './dummy/index.js';
2
+ export { createDummyModel } from './dummy/index.js';
@@ -0,0 +1,9 @@
1
+ export type Listener<T> = (detail: T) => void;
2
+ export interface Subscribable<Events extends object> {
3
+ on<K extends keyof Events>(type: K, listener: Listener<Events[K]>): () => void;
4
+ }
5
+ export declare class Emitter<Events extends object> implements Subscribable<Events> {
6
+ #private;
7
+ on<K extends keyof Events>(type: K, listener: Listener<Events[K]>): () => void;
8
+ emit<K extends keyof Events>(type: K, detail: Events[K]): void;
9
+ }