@lovelace_lol/polymer 0.0.7 → 0.0.8

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 -12
  2. package/dist/index.d.ts +1945 -244
  3. package/dist/index.js +1686 -1017
  4. package/dist/vision/face-worker.js +296 -0
  5. package/dist/vision/face_landmarker.task +0 -0
  6. package/dist/vision/manifest.edn +1 -0
  7. package/dist/vision/vision_bundle.js +2 -0
  8. package/dist/vision/wasm/vision_wasm_internal.js +8841 -0
  9. package/dist/vision/wasm/vision_wasm_internal.wasm +0 -0
  10. package/dist/vision/wasm/vision_wasm_module_internal.js +8837 -0
  11. package/dist/vision/wasm/vision_wasm_module_internal.wasm +0 -0
  12. package/dist/vision/wasm/vision_wasm_nosimd_internal.js +8832 -0
  13. package/dist/vision/wasm/vision_wasm_nosimd_internal.wasm +0 -0
  14. package/dist/worker/agency-worker.js +1276 -962
  15. package/dist/worker/manifest.edn +1 -1
  16. package/package.json +33 -20
  17. package/dist/test.cjs +0 -1519
  18. package/shadow-cljs.edn +0 -173
  19. package/src/polymer/animation/agency.cljs +0 -84
  20. package/src/polymer/animation/domain.cljs +0 -110
  21. package/src/polymer/animation/planner.cljs +0 -88
  22. package/src/polymer/animation/runtime.cljs +0 -137
  23. package/src/polymer/animation/scheduler.cljs +0 -178
  24. package/src/polymer/animation/service.cljs +0 -981
  25. package/src/polymer/animation/state.cljs +0 -112
  26. package/src/polymer/blink/agency.cljs +0 -131
  27. package/src/polymer/blink/planner.cljs +0 -115
  28. package/src/polymer/blink/scheduler.cljs +0 -90
  29. package/src/polymer/blink/snippet.cljs +0 -50
  30. package/src/polymer/blink/state.cljs +0 -102
  31. package/src/polymer/camera_context/agency.cljs +0 -132
  32. package/src/polymer/camera_context/domain.cljs +0 -186
  33. package/src/polymer/camera_context/planner.cljs +0 -50
  34. package/src/polymer/camera_context/scheduler.cljs +0 -113
  35. package/src/polymer/camera_context/state.cljs +0 -121
  36. package/src/polymer/character.cljs +0 -403
  37. package/src/polymer/conversation/agency.cljs +0 -83
  38. package/src/polymer/conversation/domain.cljs +0 -35
  39. package/src/polymer/conversation/effector.cljs +0 -130
  40. package/src/polymer/conversation/planner.cljs +0 -178
  41. package/src/polymer/conversation/scheduler.cljs +0 -202
  42. package/src/polymer/conversation/service.cljs +0 -329
  43. package/src/polymer/conversation/state.cljs +0 -186
  44. package/src/polymer/core.cljs +0 -172
  45. package/src/polymer/eye_head/agency.cljs +0 -75
  46. package/src/polymer/eye_head/domain.cljs +0 -133
  47. package/src/polymer/eye_head/goap.cljs +0 -106
  48. package/src/polymer/eye_head/scheduler.cljs +0 -176
  49. package/src/polymer/eye_head/service.cljs +0 -259
  50. package/src/polymer/eye_head/snippet.cljs +0 -92
  51. package/src/polymer/eye_head/state.cljs +0 -167
  52. package/src/polymer/gaze/agency.cljs +0 -85
  53. package/src/polymer/gaze/domain.cljs +0 -211
  54. package/src/polymer/gaze/goap.cljs +0 -208
  55. package/src/polymer/gaze/scheduler.cljs +0 -184
  56. package/src/polymer/gaze/state.cljs +0 -202
  57. package/src/polymer/gesture/agency.cljs +0 -185
  58. package/src/polymer/gesture/goap.cljs +0 -461
  59. package/src/polymer/gesture/scheduler.cljs +0 -122
  60. package/src/polymer/gesture/snippet.cljs +0 -198
  61. package/src/polymer/gesture/state.cljs +0 -273
  62. package/src/polymer/lipsync/agency.cljs +0 -593
  63. package/src/polymer/lipsync/articulation/jaw.cljs +0 -258
  64. package/src/polymer/lipsync/articulation/snippet.cljs +0 -605
  65. package/src/polymer/lipsync/articulation/tongue.cljs +0 -418
  66. package/src/polymer/lipsync/articulation/visemes.cljs +0 -429
  67. package/src/polymer/lipsync/goap.cljs +0 -132
  68. package/src/polymer/lipsync/pronunciation/effector.cljs +0 -51
  69. package/src/polymer/lipsync/scheduler.cljs +0 -302
  70. package/src/polymer/lipsync/state.cljs +0 -202
  71. package/src/polymer/nlp/phonemes.cljs +0 -164
  72. package/src/polymer/prosodic/agency.cljs +0 -196
  73. package/src/polymer/prosodic/goap.cljs +0 -122
  74. package/src/polymer/prosodic/scheduler.cljs +0 -99
  75. package/src/polymer/prosodic/snippet.cljs +0 -106
  76. package/src/polymer/prosodic/state.cljs +0 -139
  77. package/src/polymer/runtime/embody.cljs +0 -117
  78. package/src/polymer/runtime/embody_wasm.cljs +0 -177
  79. package/src/polymer/runtime/rust_embody_host.cljs +0 -647
  80. package/src/polymer/society.cljs +0 -253
  81. package/src/polymer/stream.cljs +0 -130
  82. package/src/polymer/transcription/agency.cljs +0 -69
  83. package/src/polymer/transcription/domain.cljs +0 -68
  84. package/src/polymer/transcription/effector.cljs +0 -611
  85. package/src/polymer/transcription/planner.cljs +0 -203
  86. package/src/polymer/transcription/scheduler.cljs +0 -225
  87. package/src/polymer/transcription/service.cljs +0 -209
  88. package/src/polymer/transcription/state.cljs +0 -239
  89. package/src/polymer/tts/agency.cljs +0 -503
  90. package/src/polymer/tts/azure.cljs +0 -290
  91. package/src/polymer/tts/planner.cljs +0 -178
  92. package/src/polymer/tts/runtime.cljs +0 -624
  93. package/src/polymer/tts/scheduler.cljs +0 -162
  94. package/src/polymer/tts/state.cljs +0 -191
  95. package/src/polymer/worker.cljs +0 -81
@@ -1,178 +0,0 @@
1
- (ns polymer.animation.scheduler
2
- (:require [polymer.animation.domain :as domain]
3
- [polymer.animation.runtime :as runtime]
4
- [polymer.animation.state :as state]))
5
-
6
- ;; The scheduler owns Animation's ordered work queue and runtime handle
7
- ;; lifecycle. Other agencies request animation as plain data; only this
8
- ;; scheduler decides when to schedule, replace, cancel, seek, or update a
9
- ;; runtime clip.
10
-
11
- (def default-cleanup-buffer-ms 50)
12
-
13
- (defn create-scheduler [{:keys [runtime state-atom emit-event disposed? debug-log! cleanup-buffer-ms]
14
- :or {cleanup-buffer-ms default-cleanup-buffer-ms
15
- debug-log! (fn [_label _payload] nil)}}]
16
- (let [cleanup-timers (atom {})
17
- handles (atom {})
18
- generation (atom 0)
19
- queue (atom [])
20
- draining? (atom false)]
21
- (letfn [(next-token! []
22
- (swap! generation inc))
23
-
24
- (handle-for [name]
25
- (:handle (get @handles name)))
26
-
27
- (current-token? [name token]
28
- (= token (:token (get @handles name))))
29
-
30
- (clear-cleanup! [name]
31
- (when-let [entry (get @cleanup-timers name)]
32
- (js/clearTimeout (:timer entry))
33
- (swap! cleanup-timers dissoc name)))
34
-
35
- (clear-all-cleanups! []
36
- (doseq [[_ entry] @cleanup-timers]
37
- (js/clearTimeout (:timer entry)))
38
- (reset! cleanup-timers {}))
39
-
40
- (emit-error! [message]
41
- (emit-event {:type "error"
42
- :agency "animation"
43
- :message message}))
44
-
45
- (cleanup-runtime! [name]
46
- (let [handle (handle-for name)]
47
- (runtime/cleanup-snippet! runtime handle name))
48
- (swap! handles dissoc name))
49
-
50
- (emit-remove! [name source-agency reason]
51
- (when (and (not @disposed?)
52
- (get-in @state-atom [:scheduled name]))
53
- (clear-cleanup! name)
54
- (cleanup-runtime! name)
55
- (let [removed-at (state/now-ms)]
56
- (swap! state-atom state/record-remove name source-agency removed-at reason)
57
- (emit-event {:type "animationSnippetRemoved"
58
- :agency "animation"
59
- :sourceAgency source-agency
60
- :reason reason
61
- :name name
62
- :removedAt removed-at}))))
63
-
64
- (emit-remove-if-current! [name source-agency reason token]
65
- ;; Runtime handles may resolve after a replacement. The token
66
- ;; prevents an old completion callback from removing the newer
67
- ;; snippet that reused the same name.
68
- (when (current-token? name token)
69
- (emit-remove! name source-agency reason)))
70
-
71
- (schedule-cleanup! [name snippet source-agency handle token]
72
- (clear-cleanup! name)
73
- (when-let [finished (aget handle "finished")]
74
- (when (runtime/js-callable? (aget finished "then"))
75
- (.then finished
76
- #(emit-remove-if-current! name source-agency "completed" token)
77
- (fn [_error] nil))))
78
- (when (not (:loop snippet))
79
- (when-let [duration-ms (state/snippet-duration-ms snippet)]
80
- (when (pos? duration-ms)
81
- (let [timer (js/setTimeout
82
- #(emit-remove-if-current! name source-agency "completed" token)
83
- (+ duration-ms cleanup-buffer-ms))]
84
- (swap! cleanup-timers assoc name {:timer timer
85
- :token token}))))))
86
-
87
- (schedule-snippet! [{:keys [sourceAgency requestedAt snippet options]}]
88
- (let [name (:name snippet)
89
- token (next-token!)]
90
- (when (get-in @state-atom [:scheduled name])
91
- (emit-remove! name sourceAgency "replaced"))
92
- (debug-log! "[Polymer Animation CLJS] scheduleSnippet"
93
- (domain/schedule-log-payload snippet options sourceAgency))
94
- (swap! state-atom state/record-schedule snippet options sourceAgency requestedAt)
95
- (emit-event {:type "animationSnippetScheduled"
96
- :agency "animation"
97
- :sourceAgency sourceAgency
98
- :name name
99
- :snippet snippet
100
- :options options
101
- :requestedAt requestedAt})
102
- (if runtime
103
- (if-let [handle (runtime/play-snippet! runtime snippet options)]
104
- (do
105
- (swap! handles assoc name {:handle handle
106
- :token token})
107
- (swap! state-atom state/record-start name sourceAgency (state/now-ms))
108
- (emit-event {:type "animationSnippetStarted"
109
- :agency "animation"
110
- :sourceAgency sourceAgency
111
- :name name})
112
- (schedule-cleanup! name snippet sourceAgency handle token))
113
- (emit-error! (str "Animation runtime did not return a clip handle for " name)))
114
- (emit-error! "Animation agency requires an animation runtime or engine"))
115
- snippet))
116
-
117
- (seek-snippet! [{:keys [sourceAgency name offsetSec]}]
118
- (if (runtime/seek-snippet! runtime (handle-for name) name offsetSec)
119
- (let [seeked-at (state/now-ms)]
120
- (swap! state-atom state/record-seek name sourceAgency seeked-at offsetSec)
121
- (emit-event {:type "animationSnippetSeeked"
122
- :agency "animation"
123
- :sourceAgency sourceAgency
124
- :name name
125
- :offsetSec offsetSec
126
- :seekedAt seeked-at}))
127
- (emit-error! (str "Animation runtime could not seek " name))))
128
-
129
- (update-snippet! [{:keys [sourceAgency name params]}]
130
- (if (runtime/update-snippet! runtime (handle-for name) name params)
131
- (let [updated-at (state/now-ms)]
132
- (swap! state-atom state/record-update name sourceAgency updated-at params)
133
- (emit-event {:type "animationSnippetUpdated"
134
- :agency "animation"
135
- :sourceAgency sourceAgency
136
- :name name
137
- :params params
138
- :updatedAt updated-at}))
139
- (emit-error! (str "Animation runtime could not update " name))))
140
-
141
- (clear! [{:keys [sourceAgency names]}]
142
- (doseq [name names]
143
- (emit-remove! name sourceAgency "clear"))
144
- (clear-all-cleanups!))
145
-
146
- (run-action! [action]
147
- (case (:op action)
148
- :schedule (schedule-snippet! action)
149
- :remove (emit-remove! (:name action) (:sourceAgency action) (:reason action))
150
- :seek (seek-snippet! action)
151
- :update (update-snippet! action)
152
- :clear (clear! action)
153
- :error (emit-error! (:message action))
154
- (emit-error! (str "Unknown Animation scheduler action: " (:op action)))))
155
-
156
- (drain! []
157
- (when-not @draining?
158
- (reset! draining? true)
159
- (try
160
- (loop []
161
- (when-let [action (first @queue)]
162
- (swap! queue #(vec (rest %)))
163
- (run-action! action)
164
- (recur)))
165
- (finally
166
- (reset! draining? false)))))
167
-
168
- (enqueue-actions! [actions]
169
- (swap! queue into actions)
170
- (drain!))
171
-
172
- (dispose! []
173
- (doseq [name (keys @handles)]
174
- (cleanup-runtime! name))
175
- (clear-all-cleanups!)
176
- (reset! queue []))]
177
- {:enqueue-actions! enqueue-actions!
178
- :dispose! dispose!})))