saeeol 1.2.9 → 1.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
- "version": "1.2.9",
3
+ "version": "1.3.0",
4
4
  "name": "saeeol",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -50,8 +50,8 @@
50
50
  "@babel/core": "7.28.4",
51
51
  "@effect/language-service": "0.84.2",
52
52
  "@octokit/webhooks-types": "7.6.1",
53
- "@saeeol/script": "7.3.5",
54
- "@saeeol/core": "7.3.5",
53
+ "@saeeol/script": "7.3.6",
54
+ "@saeeol/core": "7.3.6",
55
55
  "@parcel/watcher-darwin-arm64": "2.5.1",
56
56
  "@parcel/watcher-darwin-x64": "2.5.1",
57
57
  "@parcel/watcher-linux-arm64-glibc": "2.5.1",
@@ -132,15 +132,15 @@
132
132
  "@opentui/solid": "0.2.2",
133
133
  "@parcel/watcher": "2.5.1",
134
134
  "@pierre/diffs": "1.1.0-beta.18",
135
- "@saeeol/boxes": "7.3.5",
136
- "@saeeol/core": "7.3.5",
137
- "@saeeol/gateway": "7.3.5",
138
- "@saeeol/i18n": "7.3.5",
139
- "@saeeol/indexing": "7.3.5",
140
- "@saeeol/plugin": "7.3.5",
141
- "@saeeol/script": "7.3.5",
142
- "@saeeol/sdk": "7.3.5",
143
- "@saeeol/telemetry": "7.3.5",
135
+ "@saeeol/boxes": "0.2.0",
136
+ "@saeeol/core": "7.3.6",
137
+ "@saeeol/gateway": "7.3.6",
138
+ "@saeeol/i18n": "7.3.6",
139
+ "@saeeol/indexing": "7.3.6",
140
+ "@saeeol/plugin": "7.3.6",
141
+ "@saeeol/script": "7.3.6",
142
+ "@saeeol/sdk": "7.3.6",
143
+ "@saeeol/telemetry": "7.3.6",
144
144
  "@solid-primitives/event-bus": "1.1.2",
145
145
  "@solid-primitives/scheduled": "1.5.2",
146
146
  "@standard-schema/spec": "1.0.0",
@@ -10,6 +10,7 @@ export function createSimpleContext<T, Props extends Record<string, any>>(input:
10
10
  provider: (props: ParentProps<Props>) => {
11
11
  const init = input.init(props)
12
12
  return (
13
+ // @ts-expect-error
13
14
  <Show when={init.ready === undefined || init.ready === true}>
14
15
  <ctx.Provider value={init}>{props.children}</ctx.Provider>
15
16
  </Show>
@@ -233,6 +233,7 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
233
233
  const subtleSyntax = createMemo(() => generateSubtleSyntax(values()))
234
234
  return {
235
235
  theme: new Proxy({} as Theme, {
236
+ // @ts-expect-error
236
237
  get(_target, prop) {
237
238
  return values()[prop]
238
239
  },
@@ -1,9 +1,9 @@
1
1
  /**
2
- * session-events.ts — SyncEvent/BusEvent 정의 단일 소스
2
+ * session-events.ts — single source for SyncEvent/BusEvent definitions
3
3
  *
4
- * core/session.ts core/session-types.ts가 공유.
5
- * SaeeolSession overlay를 import하지 않아 순환 의존 없음.
6
- * TurnOpen/TurnClose overlay 의존이 필요하므로 소비자에서 직접 추가.
4
+ * Shared by core/session.ts and core/session-types.ts.
5
+ * Does not import other core/session-* files, so no circular deps.
6
+ * TurnOpen/TurnClose require overlay deps, so each consumer adds them directly.
7
7
  */
8
8
 
9
9
  import { BusEvent } from "@/bus/bus-event"
@@ -11,15 +11,57 @@ import { SyncEvent } from "../../sync"
11
11
  import { SessionID } from "./schema"
12
12
  import { Snapshot } from "@/snapshot"
13
13
  import { MessageV2 } from "../message/message-v2"
14
- import { Info, Summary, Revert } from "./session-types"
15
- import { ArchivedTimestamp } from "./session-types"
16
14
  import { Schema } from "effect"
17
15
  import { Permission } from "@/permission"
18
16
  import { ProjectID } from "../../project/schema"
19
17
  import { WorkspaceID } from "../../control-plane/schema"
20
- import { NonNegativeInt } from "@/util/schema"
18
+ import { NonNegativeInt, optionalOmitUndefined } from "@/util/schema"
21
19
 
22
- // ── Event schemas ──
20
+ // ── Info schema (self-contained, mirrors session-types for event registration) ──
21
+
22
+ const Summary = Schema.Struct({
23
+ additions: NonNegativeInt,
24
+ deletions: NonNegativeInt,
25
+ files: NonNegativeInt,
26
+ diffs: optionalOmitUndefined(Schema.Array(Snapshot.SummaryFileDiff)),
27
+ })
28
+
29
+ const Share = Schema.Struct({ url: Schema.String })
30
+
31
+ const ArchivedTimestamp = Schema.Finite
32
+
33
+ const Revert = Schema.Struct({
34
+ messageID: SessionID,
35
+ partID: optionalOmitUndefined(SessionID),
36
+ snapshot: optionalOmitUndefined(Schema.String),
37
+ diff: optionalOmitUndefined(Schema.String),
38
+ })
39
+
40
+ const Time = Schema.Struct({
41
+ created: NonNegativeInt,
42
+ updated: NonNegativeInt,
43
+ compacting: optionalOmitUndefined(NonNegativeInt),
44
+ archived: optionalOmitUndefined(ArchivedTimestamp),
45
+ })
46
+
47
+ const Info = Schema.Struct({
48
+ id: SessionID,
49
+ slug: Schema.String,
50
+ projectID: ProjectID,
51
+ workspaceID: optionalOmitUndefined(WorkspaceID),
52
+ directory: Schema.String,
53
+ path: optionalOmitUndefined(Schema.String),
54
+ parentID: optionalOmitUndefined(SessionID),
55
+ summary: optionalOmitUndefined(Summary),
56
+ share: optionalOmitUndefined(Share),
57
+ title: Schema.String,
58
+ version: Schema.String,
59
+ time: Time,
60
+ permission: optionalOmitUndefined(Permission.Ruleset),
61
+ revert: optionalOmitUndefined(Revert),
62
+ })
63
+
64
+ // ── Update event schemas ──
23
65
 
24
66
  const UpdatedShare = Schema.Struct({
25
67
  url: Schema.optional(Schema.NullOr(Schema.String)),