@audiofool/moondog 0.1.0 → 0.2.0-beta.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 (121) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +153 -68
  3. package/contracts/v1/definitions.schema.json +1 -169
  4. package/package.json +7 -23
  5. package/scripts/contract-lib.mjs +0 -7
  6. package/scripts/contract-semantics.mjs +0 -1904
  7. package/scripts/moondog.mjs +285 -74
  8. package/src/core/apple-library-source-status.mjs +0 -16
  9. package/src/core/apple-projection-domain-services.mjs +168 -36
  10. package/src/core/application-update.mjs +320 -0
  11. package/src/core/capability-catalog.mjs +278 -55
  12. package/src/core/listening-now.mjs +108 -0
  13. package/src/core/listening-profile-domain-services.mjs +153 -41
  14. package/src/core/listening-upkeep.mjs +31 -0
  15. package/src/core/moondog-application.mjs +1908 -104
  16. package/src/core/playback-preferences.mjs +97 -0
  17. package/src/core/spotify-listening-intent.mjs +121 -0
  18. package/src/core/synthetic-domain-services.mjs +24 -3
  19. package/src/demo/moondog-demo.mjs +4 -22
  20. package/src/i18n/index.mjs +285 -0
  21. package/src/i18n/messages/de.mjs +128 -0
  22. package/src/i18n/messages/en.mjs +129 -0
  23. package/src/i18n/messages/es.mjs +128 -0
  24. package/src/i18n/messages/fr.mjs +128 -0
  25. package/src/i18n/messages/it.mjs +128 -0
  26. package/src/i18n/messages/ja.mjs +128 -0
  27. package/src/i18n/messages/ko.mjs +128 -0
  28. package/src/i18n/messages/pt.mjs +128 -0
  29. package/src/i18n/messages/zh-Hant.mjs +128 -0
  30. package/src/i18n/messages/zh.mjs +128 -0
  31. package/src/i18n/preferences.mjs +34 -0
  32. package/src/i18n/screen/es.mjs +966 -0
  33. package/src/i18n/screen/ja.mjs +966 -0
  34. package/src/i18n/screen/pt.mjs +966 -0
  35. package/src/i18n/screen/zh.mjs +966 -0
  36. package/src/importers/apple-music-library/index.mjs +0 -16
  37. package/src/importers/apple-music-library/sqlite-projection.mjs +51 -9
  38. package/src/integrations/apple-music/catalog.mjs +123 -14
  39. package/src/integrations/apple-music/music-app.mjs +232 -0
  40. package/src/integrations/apple-music/storefront.mjs +28 -0
  41. package/src/integrations/apple-music/terminal-preview-player.mjs +221 -0
  42. package/src/integrations/lastfm/history.mjs +221 -0
  43. package/src/integrations/lastfm/settings.mjs +75 -0
  44. package/src/integrations/netease/ncm-cli-player.mjs +321 -0
  45. package/src/integrations/open-music-similarity/artist-radio.mjs +26 -18
  46. package/src/integrations/public-playlists.mjs +2 -1
  47. package/src/integrations/spotify/account-data-profile.mjs +14 -6
  48. package/src/integrations/spotify/authentication.mjs +149 -15
  49. package/src/integrations/spotify/catalog-resolver.mjs +8 -4
  50. package/src/integrations/spotify/connection.mjs +2 -1
  51. package/src/integrations/spotify/credential-store.mjs +4 -0
  52. package/src/integrations/spotify/extended-streaming-history.mjs +11 -11
  53. package/src/integrations/spotify/history-archive.mjs +1 -1
  54. package/src/integrations/spotify/library-snapshot.mjs +227 -0
  55. package/src/integrations/spotify/recent-activity.mjs +2 -0
  56. package/src/integrations/spotify/service.mjs +873 -69
  57. package/src/integrations/spotify/web-api-client.mjs +407 -127
  58. package/src/integrations/web/brave-web.mjs +45 -0
  59. package/src/integrations/web/codex-web.mjs +15 -82
  60. package/src/integrations/web/deepseek-web.mjs +81 -0
  61. package/src/integrations/web/web-research.mjs +119 -0
  62. package/src/integrations/web/web-result.mjs +215 -0
  63. package/src/integrations/youtube-music/takeout.mjs +3 -1
  64. package/src/memory/local-memory-store.mjs +469 -41
  65. package/src/profile/history-import.mjs +42 -6
  66. package/src/profile/listener-profile-build.mjs +378 -0
  67. package/src/profile/listener-profile-store.mjs +130 -0
  68. package/src/profile/listener-profile-verification.mjs +68 -0
  69. package/src/profile/listener-profile-worker.mjs +172 -0
  70. package/src/profile/listening-history-store.mjs +424 -8
  71. package/src/profile/listening-profile-projection.mjs +242 -76
  72. package/src/profile/local-music-data.mjs +1 -1
  73. package/src/profile/music-providers.mjs +11 -7
  74. package/src/profile/profile-exploration.mjs +84 -0
  75. package/src/profile/recorded-measures.mjs +24 -0
  76. package/src/profile/spotify-archive-taste.mjs +0 -4
  77. package/src/runtime/pi/agent-runtime.mjs +2204 -605
  78. package/src/runtime/pi/authentication.mjs +34 -1
  79. package/src/runtime/pi/configured-runtime.mjs +22 -6
  80. package/src/runtime/pi/conversation-name.mjs +53 -0
  81. package/src/runtime/pi/memory-agent-runtime.mjs +2 -2
  82. package/src/runtime/pi/model-catalog.mjs +28 -5
  83. package/src/runtime/pi/model-settings.mjs +202 -0
  84. package/src/runtime/pi/model-transport.mjs +10 -0
  85. package/src/runtime/pi/persistent-credential-store.mjs +67 -31
  86. package/src/runtime/pi/profile-build-runtime.mjs +160 -0
  87. package/src/runtime/pi/public-model-catalog.mjs +288 -0
  88. package/src/runtime/pi/runtime-settings.mjs +10 -2
  89. package/src/runtime/pi/skills/listener-profile/SKILL.md +46 -0
  90. package/src/runtime/pi/tool-trace.mjs +37 -0
  91. package/src/surfaces/cli/auth-command.mjs +12 -4
  92. package/src/surfaces/cli/brand-components.mjs +310 -132
  93. package/src/surfaces/cli/brand-theme.mjs +51 -28
  94. package/src/surfaces/cli/command-completions.mjs +58 -42
  95. package/src/surfaces/cli/format-output.mjs +199 -388
  96. package/src/surfaces/cli/history-import-view.mjs +292 -139
  97. package/src/surfaces/cli/import-guides.mjs +2 -0
  98. package/src/surfaces/cli/listener-profile-command.mjs +92 -0
  99. package/src/surfaces/cli/listening-menu.mjs +7 -4
  100. package/src/surfaces/cli/profile-command.mjs +30 -21
  101. package/src/surfaces/cli/seasons-chart.mjs +87 -0
  102. package/src/surfaces/cli/spotify-command.mjs +54 -6
  103. package/src/surfaces/cli/taste-profile-model.mjs +78 -79
  104. package/src/surfaces/cli/taste-profile-view.mjs +33 -26
  105. package/src/surfaces/cli/terminal-art.mjs +140 -35
  106. package/src/surfaces/cli/tui.mjs +1066 -357
  107. package/src/surfaces/cli/update-command.mjs +32 -0
  108. package/src/surfaces/cli/web-command.mjs +53 -14
  109. package/src/surfaces/html/tasteprint.mjs +43 -70
  110. package/contracts/v1/capability-policy.schema.json +0 -572
  111. package/contracts/v1/profile-evidence.schema.json +0 -237
  112. package/contracts/v1/tool-invocation.schema.json +0 -318
  113. package/contracts/v1/tool-receipt.schema.json +0 -1066
  114. package/scripts/demo-studio.mjs +0 -58
  115. package/src/core/apple-data-migration.mjs +0 -50
  116. package/src/demo/moondog-interactive-tasteprint-demo.mjs +0 -293
  117. package/src/demo/moondog-tasteprint-demo.mjs +0 -631
  118. package/src/integrations/spotify/index.mjs +0 -80
  119. package/src/surfaces/web/showcase.mjs +0 -272
  120. package/src/surfaces/web/studio-page.mjs +0 -4148
  121. package/src/surfaces/web/studio.mjs +0 -2288
@@ -1,237 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "urn:moondog:contract:profile-evidence:1",
4
- "title": "Moondog ProfileEvidence v1",
5
- "type": "object",
6
- "properties": {
7
- "schema_version": {
8
- "$ref": "urn:moondog:contract:definitions:1#/$defs/schema_version"
9
- },
10
- "profile_evidence_id": {
11
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
12
- },
13
- "subject_id": {
14
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
15
- },
16
- "claim": {
17
- "type": "object",
18
- "properties": {
19
- "dimension": {
20
- "$ref": "urn:moondog:contract:definitions:1#/$defs/namespaced_key"
21
- },
22
- "value": {
23
- "oneOf": [
24
- {
25
- "type": "object",
26
- "properties": {
27
- "value_type": {
28
- "const": "entity"
29
- },
30
- "entity_ref": {
31
- "$ref": "urn:moondog:contract:definitions:1#/$defs/entity_ref"
32
- }
33
- },
34
- "required": [
35
- "value_type",
36
- "entity_ref"
37
- ],
38
- "additionalProperties": false
39
- },
40
- {
41
- "type": "object",
42
- "properties": {
43
- "value_type": {
44
- "const": "string"
45
- },
46
- "string_value": {
47
- "$ref": "urn:moondog:contract:definitions:1#/$defs/non_empty_string"
48
- }
49
- },
50
- "required": [
51
- "value_type",
52
- "string_value"
53
- ],
54
- "additionalProperties": false
55
- },
56
- {
57
- "type": "object",
58
- "properties": {
59
- "value_type": {
60
- "const": "number"
61
- },
62
- "number_value": {
63
- "type": "number"
64
- }
65
- },
66
- "required": [
67
- "value_type",
68
- "number_value"
69
- ],
70
- "additionalProperties": false
71
- },
72
- {
73
- "type": "object",
74
- "properties": {
75
- "value_type": {
76
- "const": "boolean"
77
- },
78
- "boolean_value": {
79
- "type": "boolean"
80
- }
81
- },
82
- "required": [
83
- "value_type",
84
- "boolean_value"
85
- ],
86
- "additionalProperties": false
87
- }
88
- ]
89
- }
90
- },
91
- "required": [
92
- "dimension",
93
- "value"
94
- ],
95
- "additionalProperties": false
96
- },
97
- "direction": {
98
- "enum": [
99
- "supports",
100
- "contradicts"
101
- ]
102
- },
103
- "strength": {
104
- "type": "number",
105
- "minimum": 0,
106
- "maximum": 1
107
- },
108
- "confidence": {
109
- "type": "number",
110
- "minimum": 0,
111
- "maximum": 1
112
- },
113
- "basis_refs": {
114
- "type": "array",
115
- "minItems": 1,
116
- "items": {
117
- "type": "object",
118
- "properties": {
119
- "record_type": {
120
- "enum": [
121
- "listening_event",
122
- "taste_event"
123
- ]
124
- },
125
- "record_id": {
126
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
127
- }
128
- },
129
- "required": [
130
- "record_type",
131
- "record_id"
132
- ],
133
- "additionalProperties": false
134
- },
135
- "uniqueItems": true
136
- },
137
- "derivation": {
138
- "type": "object",
139
- "properties": {
140
- "kind": {
141
- "enum": [
142
- "direct",
143
- "rule",
144
- "aggregate",
145
- "model"
146
- ]
147
- },
148
- "name": {
149
- "$ref": "urn:moondog:contract:definitions:1#/$defs/non_empty_string"
150
- },
151
- "version": {
152
- "$ref": "urn:moondog:contract:definitions:1#/$defs/non_empty_string"
153
- },
154
- "parameters_digest": {
155
- "$ref": "urn:moondog:contract:definitions:1#/$defs/sha256"
156
- }
157
- },
158
- "required": [
159
- "kind",
160
- "name",
161
- "version"
162
- ],
163
- "additionalProperties": false
164
- },
165
- "evidence_window": {
166
- "type": "object",
167
- "properties": {
168
- "start_at": {
169
- "$ref": "urn:moondog:contract:definitions:1#/$defs/utc_timestamp"
170
- },
171
- "end_at": {
172
- "$ref": "urn:moondog:contract:definitions:1#/$defs/utc_timestamp"
173
- }
174
- },
175
- "required": [
176
- "start_at",
177
- "end_at"
178
- ],
179
- "additionalProperties": false
180
- },
181
- "created_at": {
182
- "$ref": "urn:moondog:contract:definitions:1#/$defs/utc_timestamp"
183
- },
184
- "expires_at": {
185
- "$ref": "urn:moondog:contract:definitions:1#/$defs/utc_timestamp"
186
- },
187
- "supersedes_profile_evidence_id": {
188
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
189
- },
190
- "extensions": {
191
- "$ref": "urn:moondog:contract:definitions:1#/$defs/extensions"
192
- }
193
- },
194
- "required": [
195
- "schema_version",
196
- "profile_evidence_id",
197
- "subject_id",
198
- "claim",
199
- "direction",
200
- "strength",
201
- "confidence",
202
- "basis_refs",
203
- "derivation",
204
- "created_at"
205
- ],
206
- "allOf": [
207
- {
208
- "if": {
209
- "properties": {
210
- "derivation": {
211
- "type": "object",
212
- "properties": {
213
- "kind": {
214
- "enum": [
215
- "aggregate",
216
- "model"
217
- ]
218
- }
219
- },
220
- "required": [
221
- "kind"
222
- ]
223
- }
224
- },
225
- "required": [
226
- "derivation"
227
- ]
228
- },
229
- "then": {
230
- "required": [
231
- "evidence_window"
232
- ]
233
- }
234
- }
235
- ],
236
- "additionalProperties": false
237
- }
@@ -1,318 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "urn:moondog:contract:tool-invocation:1",
4
- "title": "Moondog ToolInvocation v1",
5
- "type": "object",
6
- "properties": {
7
- "schema_version": {
8
- "$ref": "urn:moondog:contract:definitions:1#/$defs/schema_version"
9
- },
10
- "invocation_id": {
11
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
12
- },
13
- "subject_id": {
14
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
15
- },
16
- "actor": {
17
- "$ref": "urn:moondog:contract:definitions:1#/$defs/actor_ref"
18
- },
19
- "surface": {
20
- "$ref": "urn:moondog:contract:definitions:1#/$defs/namespaced_key"
21
- },
22
- "capability_id": {
23
- "$ref": "urn:moondog:contract:definitions:1#/$defs/namespaced_key"
24
- },
25
- "capability_version": {
26
- "type": "integer",
27
- "minimum": 1
28
- },
29
- "tool_ref": {
30
- "$ref": "urn:moondog:contract:definitions:1#/$defs/tool_ref"
31
- },
32
- "execution_mode": {
33
- "enum": [
34
- "plan",
35
- "dry_run",
36
- "execute"
37
- ]
38
- },
39
- "account_ref": {
40
- "$ref": "urn:moondog:contract:definitions:1#/$defs/external_ref"
41
- },
42
- "target": {
43
- "$ref": "urn:moondog:contract:definitions:1#/$defs/entity_ref"
44
- },
45
- "arguments": {
46
- "type": "object",
47
- "maxProperties": 128
48
- },
49
- "purpose": {
50
- "$ref": "urn:moondog:contract:definitions:1#/$defs/non_empty_string"
51
- },
52
- "purpose_id": {
53
- "$ref": "urn:moondog:contract:definitions:1#/$defs/namespaced_key"
54
- },
55
- "declared_effects": {
56
- "type": "array",
57
- "minItems": 1,
58
- "items": {
59
- "$ref": "urn:moondog:contract:definitions:1#/$defs/effect_kind"
60
- },
61
- "uniqueItems": true
62
- },
63
- "declared_risk_flags": {
64
- "type": "array",
65
- "items": {
66
- "$ref": "urn:moondog:contract:definitions:1#/$defs/risk_domain"
67
- },
68
- "uniqueItems": true
69
- },
70
- "data_manifest": {
71
- "type": "object",
72
- "properties": {
73
- "source_refs": {
74
- "type": "array",
75
- "items": {
76
- "$ref": "urn:moondog:contract:definitions:1#/$defs/typed_record_ref"
77
- },
78
- "uniqueItems": true
79
- },
80
- "data_classes": {
81
- "type": "array",
82
- "minItems": 1,
83
- "items": {
84
- "$ref": "urn:moondog:contract:definitions:1#/$defs/data_class"
85
- },
86
- "uniqueItems": true
87
- },
88
- "planned_destinations": {
89
- "type": "array",
90
- "minItems": 1,
91
- "items": {
92
- "$ref": "urn:moondog:contract:definitions:1#/$defs/external_destination"
93
- },
94
- "uniqueItems": true
95
- },
96
- "raw_data_included": {
97
- "type": "boolean"
98
- },
99
- "minimization_summary": {
100
- "$ref": "urn:moondog:contract:definitions:1#/$defs/non_empty_string"
101
- }
102
- },
103
- "required": [
104
- "source_refs",
105
- "data_classes",
106
- "planned_destinations",
107
- "raw_data_included",
108
- "minimization_summary"
109
- ],
110
- "additionalProperties": false
111
- },
112
- "rights_basis_refs": {
113
- "type": "array",
114
- "items": {
115
- "$ref": "urn:moondog:contract:definitions:1#/$defs/namespaced_key"
116
- },
117
- "uniqueItems": true
118
- },
119
- "budget_request": {
120
- "type": "array",
121
- "items": {
122
- "$ref": "urn:moondog:contract:definitions:1#/$defs/budget_amount"
123
- },
124
- "uniqueItems": true
125
- },
126
- "policy_ref": {
127
- "$ref": "urn:moondog:contract:definitions:1#/$defs/policy_ref"
128
- },
129
- "confirmation_grant_ref": {
130
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
131
- },
132
- "idempotency_key": {
133
- "type": "string",
134
- "minLength": 16,
135
- "maxLength": 256,
136
- "pattern": "\\S"
137
- },
138
- "semantic_digest": {
139
- "$ref": "urn:moondog:contract:definitions:1#/$defs/sha256"
140
- },
141
- "requested_at": {
142
- "$ref": "urn:moondog:contract:definitions:1#/$defs/utc_timestamp"
143
- },
144
- "expires_at": {
145
- "$ref": "urn:moondog:contract:definitions:1#/$defs/utc_timestamp"
146
- },
147
- "correlation_id": {
148
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
149
- },
150
- "parent_invocation_id": {
151
- "$ref": "urn:moondog:contract:definitions:1#/$defs/uuid"
152
- },
153
- "extensions": {
154
- "$ref": "urn:moondog:contract:definitions:1#/$defs/extensions"
155
- }
156
- },
157
- "required": [
158
- "schema_version",
159
- "invocation_id",
160
- "subject_id",
161
- "actor",
162
- "surface",
163
- "capability_id",
164
- "capability_version",
165
- "tool_ref",
166
- "execution_mode",
167
- "arguments",
168
- "purpose_id",
169
- "purpose",
170
- "declared_effects",
171
- "declared_risk_flags",
172
- "data_manifest",
173
- "rights_basis_refs",
174
- "budget_request",
175
- "policy_ref",
176
- "semantic_digest",
177
- "requested_at",
178
- "expires_at"
179
- ],
180
- "allOf": [
181
- {
182
- "if": {
183
- "properties": {
184
- "execution_mode": {
185
- "enum": [
186
- "plan",
187
- "dry_run"
188
- ]
189
- }
190
- },
191
- "required": [
192
- "execution_mode"
193
- ]
194
- },
195
- "then": {
196
- "properties": {
197
- "data_manifest": {
198
- "type": "object",
199
- "not": {
200
- "allOf": [
201
- {
202
- "properties": {
203
- "raw_data_included": {
204
- "const": true
205
- }
206
- },
207
- "required": [
208
- "raw_data_included"
209
- ]
210
- },
211
- {
212
- "properties": {
213
- "planned_destinations": {
214
- "type": "array",
215
- "contains": {
216
- "type": "object",
217
- "properties": {
218
- "destination_type": {
219
- "const": "external"
220
- }
221
- },
222
- "required": [
223
- "destination_type"
224
- ]
225
- }
226
- }
227
- },
228
- "required": [
229
- "planned_destinations"
230
- ]
231
- }
232
- ]
233
- }
234
- }
235
- }
236
- }
237
- },
238
- {
239
- "if": {
240
- "properties": {
241
- "declared_effects": {
242
- "type": "array",
243
- "contains": {
244
- "enum": [
245
- "write_local",
246
- "write_external",
247
- "send_message",
248
- "spend",
249
- "publish",
250
- "delete"
251
- ]
252
- }
253
- }
254
- },
255
- "required": [
256
- "declared_effects"
257
- ]
258
- },
259
- "then": {
260
- "required": [
261
- "idempotency_key"
262
- ]
263
- }
264
- },
265
- {
266
- "if": {
267
- "properties": {
268
- "declared_effects": {
269
- "type": "array",
270
- "contains": {
271
- "const": "spend"
272
- }
273
- }
274
- },
275
- "required": [
276
- "declared_effects"
277
- ]
278
- },
279
- "then": {
280
- "properties": {
281
- "budget_request": {
282
- "type": "array",
283
- "minItems": 1
284
- }
285
- }
286
- }
287
- },
288
- {
289
- "if": {
290
- "properties": {
291
- "declared_effects": {
292
- "type": "array",
293
- "contains": {
294
- "enum": [
295
- "write_external",
296
- "send_message",
297
- "spend",
298
- "publish",
299
- "delete",
300
- "use_credentials"
301
- ]
302
- }
303
- }
304
- },
305
- "required": [
306
- "declared_effects"
307
- ]
308
- },
309
- "then": {
310
- "required": [
311
- "account_ref",
312
- "confirmation_grant_ref"
313
- ]
314
- }
315
- }
316
- ],
317
- "additionalProperties": false
318
- }