vibe64 0.1.47 → 0.1.49

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 (150) hide show
  1. package/bin/run.js +1734 -1687
  2. package/bin/server.js +75 -75
  3. package/bin/upgrade-state.js +4539 -4471
  4. package/dist/assets/GithubBrowserTabs-BwpiRS2u.js +1 -0
  5. package/dist/assets/{LocalDatabaseServer-6VzPWZxG.js → LocalDatabaseServer-u_Ky7bNS.js} +1 -1
  6. package/dist/assets/{Vibe64AuthSettingsButton-TLwqAxDo.js → Vibe64AuthSettingsButton-BCwswT1G.js} +1 -1
  7. package/dist/assets/{Vibe64DashboardShell-B4dQ-oHD.js → Vibe64DashboardShell-CWlgrR2B.js} +1 -1
  8. package/dist/assets/{Vibe64DatabaseWorkspace-Bh5WIPOj.js → Vibe64DatabaseWorkspace-Dhs8_H0P.js} +1 -1
  9. package/dist/assets/Vibe64OutputControls-Dn548CZa.js +8 -0
  10. package/dist/assets/{Vibe64RepositoryWorkspace-idDg94lc.js → Vibe64RepositoryWorkspace-C-8S4JUF.js} +1 -1
  11. package/dist/assets/{Vibe64SessionFiles-Z9zxosyl.js → Vibe64SessionFiles-Cx6J7DDN.js} +2 -3
  12. package/dist/assets/{Vibe64UiStoryboardView-CrCDWMdR.js → Vibe64UiStoryboardView-DHyhJiWS.js} +1 -1
  13. package/dist/assets/{Vibe64UnavailableSessions-TqsxvGSf.js → Vibe64UnavailableSessions-Da4RxIhA.js} +1 -1
  14. package/dist/assets/{_sessionId_-7F1VGOou.js → _sessionId_-DCpgDPSI.js} +1 -1
  15. package/dist/assets/_slug_-BbEWp01a.js +25 -0
  16. package/dist/assets/{_slug_-B16mTWjj.css → _slug_-DerKOisL.css} +1 -1
  17. package/dist/assets/{access-Cx9RH95J.js → access-D4di2sCr.js} +1 -1
  18. package/dist/assets/{app-DPx4KKOa.js → app-Adr9Iz8p.js} +1 -1
  19. package/dist/assets/asyncModuleRecovery-DJsn5NrL.js +1 -0
  20. package/dist/assets/{changes-DYsuQLFW.js → changes-3Dd1O8Lu.js} +1 -1
  21. package/dist/assets/client-BAXHGUOC.js +1 -0
  22. package/dist/assets/{client-BYsDPxR3.js → client-CCZIu6yc.js} +1 -1
  23. package/dist/assets/{conversation-3ln-WnbL.css → conversation-CSDHdGDb.css} +1 -1
  24. package/dist/assets/conversation-DG9lp25w.js +8 -0
  25. package/dist/assets/conversation-ErAO1CmH.js +13 -0
  26. package/dist/assets/{dashboard-CWswAbYP.js → dashboard-0tCzDYCX.js} +1 -1
  27. package/dist/assets/english-definitions-DeiQ-jTT.js +1 -0
  28. package/dist/assets/env-DsyQ2MFX.js +1 -0
  29. package/dist/assets/{health-C0f6s-G1.js → health-DyTXU-nb.js} +1 -1
  30. package/dist/assets/{history-BQjETNB9.js → history-BXGAdPMI.js} +1 -1
  31. package/dist/assets/{incoming-COpY201m.js → incoming-yajkdGBY.js} +1 -1
  32. package/dist/assets/{index-MWACm8Pp.css → index-B-dukXUB.css} +1 -1
  33. package/dist/assets/index-CGz4Yow6.js +136 -0
  34. package/dist/assets/{integrations-BBkvNRHu.js → integrations-BMrXET36.js} +10 -2
  35. package/dist/assets/issues-kc1XBZCK.js +1 -0
  36. package/dist/assets/{learning-B8_wHoe1.js → learning-CIE5ghYv.js} +1 -1
  37. package/dist/assets/linkPath-Ch9eft18.js +1 -0
  38. package/dist/assets/{placement-DXvgK433.js → placement-BNmlke_j.js} +1 -1
  39. package/dist/assets/placement-DYM3JJ-F.js +1 -0
  40. package/dist/assets/publish-DTh6amqi.js +3 -0
  41. package/dist/assets/pull-requests-CbfGSSIh.js +1 -0
  42. package/dist/assets/{repository-BNPt7UWc.js → repository-BstMh-bG.js} +1 -1
  43. package/dist/assets/settings-Bf8C6dls.js +1 -0
  44. package/dist/assets/{studioGateApi-BVdclhPL.js → studioGateApi-mkX1eOTX.js} +1 -1
  45. package/dist/assets/{studioUrls-CGKCbM_d.js → studioUrls-B0-GdWh8.js} +1 -1
  46. package/dist/assets/useArchivedVibe64Sessions-DIOpfUxD.js +1 -0
  47. package/dist/assets/useCommand-CVuya6vG.js +1 -0
  48. package/dist/assets/useEndpointResource-7-YDfAxX.js +1 -0
  49. package/dist/assets/usePaths-Y6UuQxmI.js +1 -0
  50. package/dist/assets/{useUiFeedback-B51xtCAK.js → useUiFeedback-Bd3rao6E.js} +1 -1
  51. package/dist/assets/useVibe64ConversationLog-ChJOU2SD.js +1 -0
  52. package/dist/assets/{useVibe64DatabaseTools-BE_yXZFn.js → useVibe64DatabaseTools-DKV-TeNJ.js} +1 -1
  53. package/dist/assets/{useVibe64ProjectScope-D7b8n1gx.js → useVibe64ProjectScope-DXjsKKhl.js} +1 -1
  54. package/dist/assets/useVibe64SessionData-BkIHUrP5.js +1 -0
  55. package/dist/assets/useVibe64SessionSelection-N8wX5oqo.js +1 -0
  56. package/dist/assets/{useVibe64SystemGraph-CDDcsye4.js → useVibe64SystemGraph-Db_eD-X8.js} +1 -1
  57. package/dist/assets/{useVibe64Terminal-Zr3Mig2L.js → useVibe64Terminal-B9EWJ9Ba.js} +2 -2
  58. package/dist/assets/vibe64ProjectScope.local-l5_-E6pq.js +1 -0
  59. package/dist/assets/vibe64RepositoryRealtime-CHT4-6VN.js +1 -0
  60. package/dist/assets/vibe64SessionFocus-CS6Ex53G.js +1 -0
  61. package/dist/assets/vibe64SessionFocus-CSm4YJQD.css +1 -0
  62. package/dist/assets/vibe64SessionRequestConfig-xIx-5jxQ.js +1 -0
  63. package/dist/index.html +26 -22
  64. package/docs/colleague-usage/ai-accounts.md +6 -2
  65. package/docs/colleague-usage/ai-balance-and-allowance.md +15 -2
  66. package/docs/colleague-usage/coding-agent-failures.md +2 -1
  67. package/docs/colleague-usage/coding-agent-goals.md +8 -3
  68. package/docs/colleague-usage/coding-agents.md +16 -0
  69. package/docs/colleague-usage/github-work.md +14 -0
  70. package/docs/colleague-usage/preview-browser-checks.md +5 -3
  71. package/docs/colleague-usage/project-setup.md +6 -3
  72. package/docs/colleague-usage/running-vibe64-on-your-computer.md +3 -1
  73. package/docs/colleague-usage/sessions.md +35 -7
  74. package/docs/colleague-usage/starter-apps.md +3 -0
  75. package/docs/colleague-usage/temporary-chat-context.md +2 -1
  76. package/docs/colleague-usage/temporary-chats.md +17 -5
  77. package/node_modules/@jskit-ai/assistant-core/CHANGELOG.md +539 -0
  78. package/node_modules/@jskit-ai/assistant-core/locales/en.json +383 -0
  79. package/node_modules/@jskit-ai/assistant-core/package.json +3 -2
  80. package/node_modules/@jskit-ai/assistant-runtime/CHANGELOG.md +138 -0
  81. package/node_modules/@jskit-ai/assistant-runtime/README.md +2 -1
  82. package/node_modules/@jskit-ai/assistant-runtime/locales/en.json +137 -0
  83. package/node_modules/@jskit-ai/assistant-runtime/package.json +3 -2
  84. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/assistantConfigRepository.js +223 -203
  85. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/conversationsRepository.js +286 -266
  86. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/messagesRepository.js +270 -250
  87. package/node_modules/@jskit-ai/assistant-voice/locales/en.json +182 -0
  88. package/node_modules/@jskit-ai/assistant-voice/package.json +3 -2
  89. package/node_modules/@jskit-ai/connector-google-calendar/CHANGELOG.md +83 -0
  90. package/node_modules/@jskit-ai/connector-google-calendar/locales/en.json +91 -0
  91. package/node_modules/@jskit-ai/connector-google-calendar/package.json +4 -3
  92. package/node_modules/@jskit-ai/connectors-catalog/CHANGELOG.md +1722 -0
  93. package/node_modules/@jskit-ai/connectors-catalog/README.md +11 -0
  94. package/node_modules/@jskit-ai/connectors-catalog/locales/en.json +3139 -0
  95. package/node_modules/@jskit-ai/connectors-catalog/package.json +5 -4
  96. package/node_modules/@jskit-ai/connectors-core/CHANGELOG.md +183 -0
  97. package/node_modules/@jskit-ai/connectors-core/locales/en.json +92 -0
  98. package/node_modules/@jskit-ai/connectors-core/package.json +3 -2
  99. package/node_modules/@jskit-ai/http-runtime/CHANGELOG.md +31 -0
  100. package/node_modules/@jskit-ai/http-runtime/locales/en.json +14 -0
  101. package/node_modules/@jskit-ai/http-runtime/package.json +3 -2
  102. package/node_modules/@jskit-ai/kernel/CHANGELOG.md +182 -0
  103. package/node_modules/@jskit-ai/kernel/locales/en.json +94 -0
  104. package/node_modules/@jskit-ai/kernel/package.json +6 -2
  105. package/node_modules/@jskit-ai/payments-core/CHANGELOG.md +128 -0
  106. package/node_modules/@jskit-ai/payments-core/locales/en.json +77 -0
  107. package/node_modules/@jskit-ai/payments-core/package.json +3 -2
  108. package/node_modules/@jskit-ai/realtime/CHANGELOG.md +20 -0
  109. package/node_modules/@jskit-ai/realtime/locales/en.json +14 -0
  110. package/node_modules/@jskit-ai/realtime/package.json +3 -2
  111. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  112. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  113. package/node_modules/@jskit-ai/uploads-runtime/CHANGELOG.md +35 -0
  114. package/node_modules/@jskit-ai/uploads-runtime/locales/en.json +15 -0
  115. package/node_modules/@jskit-ai/uploads-runtime/package.json +3 -2
  116. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +49 -48
  117. package/node_modules/@local/vibe64-execution/src/server/gitTurnCheckpointCommand.js +1327 -0
  118. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +430 -390
  119. package/node_modules/@local/vibe64-genesis/src/server/index.js +45 -45
  120. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +119 -119
  121. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +57 -57
  122. package/node_modules/@local/vibe64-sessions/package.json +2 -1
  123. package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +195 -175
  124. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1385 -1362
  125. package/package.json +15 -15
  126. package/server.bundle.mjs +44206 -42825
  127. package/dist/assets/GithubBrowserTabs-D-Z3TlA8.js +0 -1
  128. package/dist/assets/Vibe64OutputControls-DtybwgL3.js +0 -8
  129. package/dist/assets/_slug_-Bq84T_Iv.js +0 -24
  130. package/dist/assets/conversation-Bn7wpATa.js +0 -2
  131. package/dist/assets/conversation-CNcCrV-R.js +0 -16
  132. package/dist/assets/definitions-CEbi4qae.js +0 -1
  133. package/dist/assets/env-X7EOFLtl.js +0 -1
  134. package/dist/assets/index-CBo1BEk6.js +0 -138
  135. package/dist/assets/issues-BiSiUd5o.js +0 -1
  136. package/dist/assets/placement-B5T1LR7m.js +0 -1
  137. package/dist/assets/publish-CeLZE2AG.js +0 -3
  138. package/dist/assets/pull-requests-pTdQOT7i.js +0 -1
  139. package/dist/assets/settings-lecRzZ-r.js +0 -1
  140. package/dist/assets/useArchivedVibe64Sessions-DHYRnyJD.js +0 -1
  141. package/dist/assets/useCommand-Epd2yHhQ.js +0 -1
  142. package/dist/assets/useEndpointResource-DBRQISI_.js +0 -1
  143. package/dist/assets/usePaths-DdAnjVDj.js +0 -1
  144. package/dist/assets/useVibe64ConversationLog-DboM3tYN.js +0 -1
  145. package/dist/assets/useVibe64SessionData-CreWtQAO.js +0 -1
  146. package/dist/assets/useVibe64SessionSelection-CDaX4uwY.js +0 -1
  147. package/dist/assets/vibe64ProjectScope.local-BxTBYuRg.js +0 -1
  148. package/dist/assets/vibe64RepositoryRealtime-C-J0I5jY.js +0 -1
  149. package/dist/assets/vibe64SessionFocus-DSW5Irm6.css +0 -1
  150. package/dist/assets/vibe64SessionFocus-DzqbVq60.js +0 -1
@@ -0,0 +1,182 @@
1
+ {
2
+ "jskit": {
3
+ "assistant": {
4
+ "voice": {
5
+ "assistant": "Assistant",
6
+ "dialog": {
7
+ "label": "{title} conversation",
8
+ "minimize": "Minimize conversation",
9
+ "close": "Close conversation",
10
+ "modes": "Conversation mode",
11
+ "talk": "Talk",
12
+ "text": "Text"
13
+ },
14
+ "host": {
15
+ "close": "Close voice chat",
16
+ "switchPrompt": "Finish or discard your recording for {current} before switching to {next}.",
17
+ "thisConversation": "this conversation",
18
+ "anotherConversation": "another conversation",
19
+ "stayHere": "Stay here",
20
+ "discardAndSwitch": "Discard and switch",
21
+ "switch": "Switch",
22
+ "stopWork": "Stop agent work",
23
+ "reopen": "{label} · Voice chat"
24
+ },
25
+ "conversation": {
26
+ "listening": "Listening",
27
+ "speaking": "Speaking",
28
+ "captions": "Voice conversation text",
29
+ "recognizedWords": "Recognized words",
30
+ "you": "You",
31
+ "youHearing": "You · Hearing…",
32
+ "youNotSent": "You · Not sent",
33
+ "latestAnswer": "{target} latest answer"
34
+ },
35
+ "controls": {
36
+ "label": "{target} voice chat controls",
37
+ "sendOrDiscard": "Send or discard speech to send text.",
38
+ "listening": "Listening…",
39
+ "recordingFinish": "Recording · finish speech to send text.",
40
+ "finishSpeech": "Finish speech to send text.",
41
+ "connecting": "Connecting…",
42
+ "releaseToSend": "Release to send",
43
+ "pause": "Pause",
44
+ "talk": "Talk",
45
+ "notSent": "Not sent · {words}",
46
+ "soundBlocked": "Sound is blocked. Enable sound to hear future replies.",
47
+ "enableSound": "Enable sound",
48
+ "review": "Review voice message",
49
+ "reviewMessage": "Review your message",
50
+ "discard": "Discard",
51
+ "sending": "Sending…",
52
+ "send": "Send",
53
+ "stopTargetSpeaking": "Stop {target} speaking",
54
+ "stopSpeaking": "Stop speaking",
55
+ "talkHint": "click or long press to talk",
56
+ "readAloudOff": "Turn {target} read-aloud off",
57
+ "readAloudOn": "Read {target} answers aloud",
58
+ "spokenRepliesOn": "Spoken replies on",
59
+ "spokenRepliesOff": "Spoken replies off",
60
+ "tapToPause": "Tap to pause · hold to speak",
61
+ "tapForHandsFree": "Tap for hands-free · hold to speak"
62
+ },
63
+ "settings": {
64
+ "title": "Voice settings",
65
+ "speakingVoice": "Speaking voice",
66
+ "speakingVoiceHint": "Applies to the next spoken reply"
67
+ },
68
+ "avatar": {
69
+ "label": "Assistant avatar"
70
+ },
71
+ "status": {
72
+ "interrupted": "Voice interrupted",
73
+ "needsAttention": "Voice needs attention",
74
+ "starting": "Starting voice…",
75
+ "active": "Voice active",
76
+ "off": "Voice off",
77
+ "reconnecting": "Reconnecting…",
78
+ "connecting": "Connecting…",
79
+ "openingMicrophone": "Opening microphone…",
80
+ "openingMic": "Opening mic…",
81
+ "listeningToYou": "Listening to you",
82
+ "listening": "Listening",
83
+ "targetSpeaking": "{target} is speaking",
84
+ "speaking": "Speaking",
85
+ "preparingSpeech": "Preparing speech…",
86
+ "thinking": "Thinking",
87
+ "sending": "Sending your message…",
88
+ "review": "Review your message below",
89
+ "microphoneMuted": "Microphone muted",
90
+ "transcribing": "Transcribing…",
91
+ "holdToSpeak": "Hold to speak",
92
+ "preparingMicrophone": "Preparing microphone…",
93
+ "live": "Live conversation"
94
+ },
95
+ "narration": {
96
+ "murmur": "Hmm..."
97
+ },
98
+ "speech": {
99
+ "codeOnScreen": "I put the code on screen.",
100
+ "sqlOnScreen": "I put the SQL on screen.",
101
+ "detailsInChat": "The details are in the chat.",
102
+ "image": "an image",
103
+ "link": "a link"
104
+ },
105
+ "errors": {
106
+ "notAccepted": "The conversation did not accept this message. Review it before retrying.",
107
+ "setupTimeout": "Voice setup took too long. Try Talk again.",
108
+ "finishAndReview": "{message} Tap the microphone to finish and review this recording.",
109
+ "microphoneNotReady": "The microphone was not ready. Hold the avatar again to record.",
110
+ "recordingInterrupted": "The connection interrupted this recording. These words may be incomplete. Review before sending, or discard and record again.",
111
+ "noSpeech": "No speech was recognized. Try again.",
112
+ "couldNotContinue": "Voice could not continue.",
113
+ "interruptedRecording": "Voice connection was interrupted. Your unfinished recording needs review; use Talk to resume.",
114
+ "interrupted": "Voice connection was interrupted. The answer remains in chat; use Talk to resume.",
115
+ "speechStalled": "Speech generation stalled. The answer remains in chat; use Talk to resume.",
116
+ "notConnected": "Voice is not connected.",
117
+ "playbackUnsupported": "This browser does not support streamed audio playback.",
118
+ "soundBlocked": "Sound is blocked by this browser.",
119
+ "busy": "Voice is busy. Try again shortly.",
120
+ "serviceCouldNotContinue": "Voice service could not continue.",
121
+ "invalidResponse": "Voice service sent an invalid response.",
122
+ "conversationRequired": "Voice requires an available conversation.",
123
+ "connectTimeout": "Voice service took too long to connect.",
124
+ "couldNotConnect": "Voice could not connect. Try again.",
125
+ "unreachable": "Voice service could not be reached.",
126
+ "closedWhileConnecting": "Voice service closed while connecting.",
127
+ "microphoneInUse": "Finish the recording in the other conversation before starting this microphone.",
128
+ "microphoneBehind": "The microphone connection fell behind. Review the unfinished recording before sending.",
129
+ "microphoneDenied": "Microphone access was denied. Allow it in your browser to talk to the assistant.",
130
+ "microphoneUnavailable": "The microphone could not be opened on this device.",
131
+ "pageSuspended": "Voice paused when this page was suspended. Review any unfinished words and use Talk to resume.",
132
+ "speechNotConfigured": "A speech service is not configured for this conversation.",
133
+ "noLongerAvailable": "This conversation is no longer available for voice.",
134
+ "hostDisposed": "The voice host has been disposed.",
135
+ "notAvailable": "This conversation is not available for voice.",
136
+ "finishBeforeEnding": "Finish or discard your recording before ending voice."
137
+ },
138
+ "protocol": {
139
+ "chooseVoice": "Choose an available voice before starting speech."
140
+ },
141
+ "daemon": {
142
+ "operationFailed": "Voice operation failed.",
143
+ "speechFailed": "Speech could not be generated.",
144
+ "queueClosing": "Voice speech queue is shutting down.",
145
+ "queueUnavailable": "Voice speech queue is unavailable.",
146
+ "capacityBusy": "Voice speech capacity is currently busy. Try again shortly.",
147
+ "speechTooFast": "Speech is arriving faster than playback.",
148
+ "audioWithoutRecording": "Audio arrived without an active recording.",
149
+ "noRecording": "No matching voice recording is active.",
150
+ "voiceUnavailable": "This voice is unavailable. Choose another voice."
151
+ },
152
+ "proxy": {
153
+ "voicesUnavailable": "Speaking voices could not load. Check the speech service and retry.",
154
+ "notInstalled": "Voice is not installed on this server.",
155
+ "unreachable": "Voice service could not be reached.",
156
+ "busy": "Voice is busy. Try again shortly.",
157
+ "sessionFailed": "Voice could not open for this conversation."
158
+ }
159
+ }
160
+ },
161
+ "errors": {
162
+ "voice_turn_id_invalid": "Voice control messages require a valid turn ID.",
163
+ "voice_control_size_invalid": "Voice control message size is invalid.",
164
+ "voice_control_json_invalid": "Voice control messages must be valid JSON.",
165
+ "voice_control_object_required": "Voice control messages must be JSON objects.",
166
+ "voice_control_type_invalid": "Unsupported voice control type: {type}.",
167
+ "voice_input_sample_rate_invalid": "Voice input must be {sampleRate} Hz mono PCM.",
168
+ "voice_segment_invalid": "Choose the current spoken phrase.",
169
+ "voice_revision_invalid": "Choose the current recognized utterance.",
170
+ "voice_speech_text_invalid": "Speech text must contain 1-{maximum} characters.",
171
+ "voice_audio_frame_invalid": "Voice audio frames must contain bounded 16-bit mono PCM.",
172
+ "voice_utterance_too_long": "Voice recordings are limited to {seconds} seconds.",
173
+ "voice_recognition_backpressure": "Speech recognition fell behind. Your recording may be incomplete; review the recognized words.",
174
+ "voice_speech_not_active": "No matching speech stream is open.",
175
+ "voice_access_revoked": "This application's voice access was revoked.",
176
+ "voice_playback_backpressure": "Voice playback fell behind. Speech stopped; the answer remains in chat.",
177
+ "voice_auth_required": "Voice access was denied.",
178
+ "voice_frame_too_large": "Voice message is too large.",
179
+ "voice_connecting": "Voice is still connecting. Try again."
180
+ }
181
+ }
182
+ }
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@jskit-ai/assistant-voice",
3
- "version": "0.1.43",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./client": "./src/client/index.js",
7
7
  "./server": "./src/server/index.js",
8
8
  "./shared/protocol": "./src/shared/protocol.js",
9
- "./shared/visemes": "./src/shared/visemes.js"
9
+ "./shared/visemes": "./src/shared/visemes.js",
10
+ "./locales/en.json": "./locales/en.json"
10
11
  }
11
12
  }
@@ -0,0 +1,83 @@
1
+ # Changelog
2
+
3
+ ## 0.2.0 - 2026-10-29
4
+
5
+ - Translation ready: every user-visible text is a message key with its English in `locales/en.json`, so an app translates it by supplying translation files only. With no translations, texts and behaviour are unchanged. See the guide "Translating a JSKIT app".
6
+ - `./shared` exports the definition in English exactly as before, linked to its keyed original (`MESSAGE_KEY_SOURCE`) so connectors-web translates it.
7
+
8
+ ### New message keys (41)
9
+
10
+ All keys in `locales/en.json` (exported as `./locales/en.json`) are new in this version.
11
+
12
+ <details><summary>Key list</summary>
13
+
14
+ - `jskit.connectors.googleCalendar.attendeesRequiresUp200Email`
15
+ - `jskit.connectors.googleCalendar.cancellationNoEventBody`
16
+ - `jskit.connectors.googleCalendar.chooseAllDayDateTimed`
17
+ - `jskit.connectors.googleCalendar.chooseSendUpdates`
18
+ - `jskit.connectors.googleCalendar.datetimeRequiresExplicitTimezoneOffset`
19
+ - `jskit.connectors.googleCalendar.description`
20
+ - `jskit.connectors.googleCalendar.eventMustObject`
21
+ - `jskit.connectors.googleCalendar.invalidAllDayDate`
22
+ - `jskit.connectors.googleCalendar.invalidEventEtag`
23
+ - `jskit.connectors.googleCalendar.invalidTransparency`
24
+ - `jskit.connectors.googleCalendar.invalidVisibility`
25
+ - `jskit.connectors.googleCalendar.recurrenceMustArrayRfc5545Recurrence`
26
+ - `jskit.connectors.googleCalendar.scopes.calendar.label`
27
+ - `jskit.connectors.googleCalendar.scopes.calendarAcls.label`
28
+ - `jskit.connectors.googleCalendar.scopes.calendarAclsReadonly.label`
29
+ - `jskit.connectors.googleCalendar.scopes.calendarAddonsCurrentEventRead.label`
30
+ - `jskit.connectors.googleCalendar.scopes.calendarAddonsCurrentEventWrite.label`
31
+ - `jskit.connectors.googleCalendar.scopes.calendarAddonsExecute.label`
32
+ - `jskit.connectors.googleCalendar.scopes.calendarAppCreated.label`
33
+ - `jskit.connectors.googleCalendar.scopes.calendarCalendarlist.label`
34
+ - `jskit.connectors.googleCalendar.scopes.calendarCalendarlistReadonly.label`
35
+ - `jskit.connectors.googleCalendar.scopes.calendarCalendars.label`
36
+ - `jskit.connectors.googleCalendar.scopes.calendarCalendarsReadonly.label`
37
+ - `jskit.connectors.googleCalendar.scopes.calendarEvents.label`
38
+ - `jskit.connectors.googleCalendar.scopes.calendarEventsFreebusy.label`
39
+ - `jskit.connectors.googleCalendar.scopes.calendarEventsOwned.label`
40
+ - `jskit.connectors.googleCalendar.scopes.calendarEventsOwnedReadonly.label`
41
+ - `jskit.connectors.googleCalendar.scopes.calendarEventsPublicReadonly.label`
42
+ - `jskit.connectors.googleCalendar.scopes.calendarEventsReadonly.label`
43
+ - `jskit.connectors.googleCalendar.scopes.calendarFreebusy.label`
44
+ - `jskit.connectors.googleCalendar.scopes.calendarReadonly.label`
45
+ - `jskit.connectors.googleCalendar.scopes.calendarSettingsReadonly.label`
46
+ - `jskit.connectors.googleCalendar.startEndRequired`
47
+ - `jskit.connectors.googleCalendar.supplyStartEndSettingRecurrence`
48
+ - `jskit.connectors.googleCalendar.supplyStartEndTogetherChanging`
49
+ - `jskit.connectors.googleCalendar.textTooLong`
50
+ - `jskit.connectors.googleCalendar.timedRecurrenceRequiresStartEnd`
51
+ - `jskit.connectors.googleCalendar.useDateDatetimeOptionalTimezone`
52
+ - `jskit.connectors.googleCalendar.useIanaTimezone`
53
+ - `jskit.connectors.googleCalendar.useMatchingDateTypesEnd`
54
+ - `jskit.connectors.googleCalendar.useSupportedEventFields`
55
+
56
+ </details>
57
+
58
+ ### Codes (20)
59
+
60
+ Error, field-error and message codes this package sends, with their English. Undotted codes kept their existing values and render from `jskit.errors.<code>`.
61
+
62
+ | Code | English |
63
+ | --- | --- |
64
+ | `connectors.googleCalendar.attendeesRequiresUp200Email` | attendees requires up to 200 email entries with optional displayName/optional. |
65
+ | `connectors.googleCalendar.cancellationNoEventBody` | Cancellation has no event body. |
66
+ | `connectors.googleCalendar.chooseAllDayDateTimed` | Choose an all-day date or a timed dateTime. |
67
+ | `connectors.googleCalendar.chooseSendUpdates` | Choose sendUpdates explicitly: all, externalOnly or none. |
68
+ | `connectors.googleCalendar.datetimeRequiresExplicitTimezoneOffset` | dateTime requires an explicit timezone offset. |
69
+ | `connectors.googleCalendar.eventMustObject` | event must be an object. |
70
+ | `connectors.googleCalendar.invalidAllDayDate` | Invalid all-day date. |
71
+ | `connectors.googleCalendar.invalidEventEtag` | Invalid event ETag. |
72
+ | `connectors.googleCalendar.invalidTransparency` | Invalid transparency. |
73
+ | `connectors.googleCalendar.invalidVisibility` | Invalid visibility. |
74
+ | `connectors.googleCalendar.recurrenceMustArrayRfc5545Recurrence` | recurrence must be an array of RFC5545 recurrence lines. |
75
+ | `connectors.googleCalendar.startEndRequired` | start and end are required. |
76
+ | `connectors.googleCalendar.supplyStartEndSettingRecurrence` | Supply start and end when setting recurrence. |
77
+ | `connectors.googleCalendar.supplyStartEndTogetherChanging` | Supply start and end together when changing event times. |
78
+ | `connectors.googleCalendar.textTooLong` | {field} must be text of at most 16384 characters. |
79
+ | `connectors.googleCalendar.timedRecurrenceRequiresStartEnd` | Timed recurrence requires start/end timeZone. |
80
+ | `connectors.googleCalendar.useDateDatetimeOptionalTimezone` | Use date or dateTime and optional timeZone. |
81
+ | `connectors.googleCalendar.useIanaTimezone` | Use an IANA timeZone. |
82
+ | `connectors.googleCalendar.useMatchingDateTypesEnd` | Use matching date types with end after start; all-day end is exclusive. |
83
+ | `connectors.googleCalendar.useSupportedEventFields` | Use supported event fields only. |
@@ -0,0 +1,91 @@
1
+ {
2
+ "jskit": {
3
+ "connectors": {
4
+ "googleCalendar": {
5
+ "attendeesRequiresUp200Email": "attendees requires up to 200 email entries with optional displayName/optional.",
6
+ "cancellationNoEventBody": "Cancellation has no event body.",
7
+ "chooseAllDayDateTimed": "Choose an all-day date or a timed dateTime.",
8
+ "chooseSendUpdates": "Choose sendUpdates explicitly: all, externalOnly or none.",
9
+ "datetimeRequiresExplicitTimezoneOffset": "dateTime requires an explicit timezone offset.",
10
+ "description": "Read calendars and create, edit or cancel events.",
11
+ "eventMustObject": "event must be an object.",
12
+ "invalidAllDayDate": "Invalid all-day date.",
13
+ "invalidEventEtag": "Invalid event ETag.",
14
+ "invalidTransparency": "Invalid transparency.",
15
+ "invalidVisibility": "Invalid visibility.",
16
+ "recurrenceMustArrayRfc5545Recurrence": "recurrence must be an array of RFC5545 recurrence lines.",
17
+ "scopes": {
18
+ "calendar": {
19
+ "label": "Manage calendars and events"
20
+ },
21
+ "calendarAcls": {
22
+ "label": "Manage calendar sharing permissions"
23
+ },
24
+ "calendarAclsReadonly": {
25
+ "label": "Read calendar sharing permissions"
26
+ },
27
+ "calendarAddonsCurrentEventRead": {
28
+ "label": "Read the event open in a Calendar add-on"
29
+ },
30
+ "calendarAddonsCurrentEventWrite": {
31
+ "label": "Edit the event open in a Calendar add-on"
32
+ },
33
+ "calendarAddonsExecute": {
34
+ "label": "Run a Calendar add-on"
35
+ },
36
+ "calendarAppCreated": {
37
+ "label": "Create and manage app-created calendars"
38
+ },
39
+ "calendarCalendarlist": {
40
+ "label": "Manage calendar subscriptions"
41
+ },
42
+ "calendarCalendarlistReadonly": {
43
+ "label": "List calendars"
44
+ },
45
+ "calendarCalendars": {
46
+ "label": "Manage calendar properties"
47
+ },
48
+ "calendarCalendarsReadonly": {
49
+ "label": "Read calendar properties"
50
+ },
51
+ "calendarEvents": {
52
+ "label": "Manage events"
53
+ },
54
+ "calendarEventsFreebusy": {
55
+ "label": "Read availability in accessible calendars"
56
+ },
57
+ "calendarEventsOwned": {
58
+ "label": "Manage events in calendars you own"
59
+ },
60
+ "calendarEventsOwnedReadonly": {
61
+ "label": "Read events in calendars you own"
62
+ },
63
+ "calendarEventsPublicReadonly": {
64
+ "label": "Read public calendar events"
65
+ },
66
+ "calendarEventsReadonly": {
67
+ "label": "Read events"
68
+ },
69
+ "calendarFreebusy": {
70
+ "label": "Read your availability"
71
+ },
72
+ "calendarReadonly": {
73
+ "label": "Read all calendar data"
74
+ },
75
+ "calendarSettingsReadonly": {
76
+ "label": "Read calendar settings"
77
+ }
78
+ },
79
+ "startEndRequired": "start and end are required.",
80
+ "supplyStartEndSettingRecurrence": "Supply start and end when setting recurrence.",
81
+ "supplyStartEndTogetherChanging": "Supply start and end together when changing event times.",
82
+ "textTooLong": "{field} must be text of at most 16384 characters.",
83
+ "timedRecurrenceRequiresStartEnd": "Timed recurrence requires start/end timeZone.",
84
+ "useDateDatetimeOptionalTimezone": "Use date or dateTime and optional timeZone.",
85
+ "useIanaTimezone": "Use an IANA timeZone.",
86
+ "useMatchingDateTypesEnd": "Use matching date types with end after start; all-day end is exclusive.",
87
+ "useSupportedEventFields": "Use supported event fields only."
88
+ }
89
+ }
90
+ }
91
+ }
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@jskit-ai/connector-google-calendar",
3
- "version": "0.1.63",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "exports": {
6
- "./shared": "./src/shared/definition.js",
7
- "./server": "./src/server/provider.js"
6
+ "./shared": "./src/shared/english-definition.js",
7
+ "./server": "./src/server/provider.js",
8
+ "./locales/en.json": "./locales/en.json"
8
9
  }
9
10
  }