@knowlearning/agents 0.4.8 → 0.4.10

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.
@@ -6,8 +6,10 @@ const watchers = {}
6
6
 
7
7
  export default function embed(environment, iframe) {
8
8
  const postMessageQueue = []
9
+ const listeners = {}
9
10
  let frameLoaded = false
10
11
  let embeddedAgentInitialized = false
12
+
11
13
  const session = uuid()
12
14
 
13
15
  const postMessage = m => new Promise((resolve, reject) => {
@@ -40,11 +42,14 @@ export default function embed(environment, iframe) {
40
42
  sendDown(await Agent.environment())
41
43
  }
42
44
  else if (type === 'interact') {
43
- await Agent.interact(message.scope, message.patch)
45
+ const { scope, patch } = message
46
+ await Agent.interact(scope, patch)
47
+ if (listeners.mutate) listeners.mutate({ scope })
44
48
  sendDown({}) // TODO: might want to send down the interaction index
45
49
  }
46
50
  else if (type === 'state') {
47
51
  const { scope, user, domain } = message
52
+
48
53
  const statePromise = Agent.state(scope, user, domain)
49
54
 
50
55
  const key = `${session}/${domain}/${user}/${scope}`
@@ -55,6 +60,7 @@ export default function embed(environment, iframe) {
55
60
  statePromise.watch(postMessage)
56
61
  }
57
62
 
63
+ if (listeners.state) listeners.state({ scope, user, domain })
58
64
  sendDown(await statePromise)
59
65
  }
60
66
  else if (type === 'patch') {
@@ -121,7 +127,12 @@ export default function embed(environment, iframe) {
121
127
  if (iframe.parentNode) iframe.parentNode.removeChild(iframe)
122
128
  }
123
129
 
130
+ function on(event, fn) {
131
+ listeners[event] = fn
132
+ }
133
+
124
134
  return {
125
- remove
135
+ remove,
136
+ on
126
137
  }
127
138
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowlearning/agents",
3
- "version": "0.4.8",
3
+ "version": "0.4.10",
4
4
  "description": "API for embedding applications in KnowLearning systems.",
5
5
  "main": "node.js",
6
6
  "browser": "browser.js",
package/vue/3/content.vue CHANGED
@@ -24,6 +24,8 @@ export default {
24
24
  const { id } = this
25
25
  this.iframe = iframe
26
26
  this.embedding = Agent.embed({ id }, iframe)
27
+ this.embedding.on('state', e => this.$emit('state', e))
28
+ this.embedding.on('mutate', e => this.$emit('mutate', e))
27
29
 
28
30
  /*
29
31
  const { handle } = this.embedding