@open-everywhere/provider-google-chat 0.0.0-stage → 0.7.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.
Files changed (76) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +51 -0
  3. package/README.md +40 -2
  4. package/agent/channels/google-chat-auth.ts +145 -0
  5. package/agent/channels/google-chat-front.ts +337 -0
  6. package/agent/channels/google-chat-identity.ts +97 -0
  7. package/agent/channels/google-chat-message-ops.ts +30 -0
  8. package/agent/channels/google-chat-origin-codec.ts +32 -0
  9. package/agent/channels/google-chat-post-arm.ts +36 -0
  10. package/agent/channels/google-chat-rest.ts +87 -0
  11. package/agent/channels/google-chat.ts +193 -0
  12. package/agent/contributions.ts +16 -0
  13. package/agent/docs-generated.ts +15 -0
  14. package/agent/policy.ts +101 -0
  15. package/agent/provider-events.ts +18 -0
  16. package/agent/register.ts +48 -0
  17. package/agent/surface-parity.ts +63 -0
  18. package/dist/agent/channels/google-chat-auth.d.ts +39 -0
  19. package/dist/agent/channels/google-chat-auth.d.ts.map +1 -0
  20. package/dist/agent/channels/google-chat-auth.js +118 -0
  21. package/dist/agent/channels/google-chat-auth.js.map +1 -0
  22. package/dist/agent/channels/google-chat-front.d.ts +101 -0
  23. package/dist/agent/channels/google-chat-front.d.ts.map +1 -0
  24. package/dist/agent/channels/google-chat-front.js +258 -0
  25. package/dist/agent/channels/google-chat-front.js.map +1 -0
  26. package/dist/agent/channels/google-chat-identity.d.ts +28 -0
  27. package/dist/agent/channels/google-chat-identity.d.ts.map +1 -0
  28. package/dist/agent/channels/google-chat-identity.js +70 -0
  29. package/dist/agent/channels/google-chat-identity.js.map +1 -0
  30. package/dist/agent/channels/google-chat-message-ops.d.ts +10 -0
  31. package/dist/agent/channels/google-chat-message-ops.d.ts.map +1 -0
  32. package/dist/agent/channels/google-chat-message-ops.js +25 -0
  33. package/dist/agent/channels/google-chat-message-ops.js.map +1 -0
  34. package/dist/agent/channels/google-chat-origin-codec.d.ts +6 -0
  35. package/dist/agent/channels/google-chat-origin-codec.d.ts.map +1 -0
  36. package/dist/agent/channels/google-chat-origin-codec.js +31 -0
  37. package/dist/agent/channels/google-chat-origin-codec.js.map +1 -0
  38. package/dist/agent/channels/google-chat-post-arm.d.ts +11 -0
  39. package/dist/agent/channels/google-chat-post-arm.d.ts.map +1 -0
  40. package/dist/agent/channels/google-chat-post-arm.js +31 -0
  41. package/dist/agent/channels/google-chat-post-arm.js.map +1 -0
  42. package/dist/agent/channels/google-chat-rest.d.ts +21 -0
  43. package/dist/agent/channels/google-chat-rest.d.ts.map +1 -0
  44. package/dist/agent/channels/google-chat-rest.js +81 -0
  45. package/dist/agent/channels/google-chat-rest.js.map +1 -0
  46. package/dist/agent/channels/google-chat.d.ts +3 -0
  47. package/dist/agent/channels/google-chat.d.ts.map +1 -0
  48. package/dist/agent/channels/google-chat.js +156 -0
  49. package/dist/agent/channels/google-chat.js.map +1 -0
  50. package/dist/agent/contributions.d.ts +12 -0
  51. package/dist/agent/contributions.d.ts.map +1 -0
  52. package/dist/agent/contributions.js +16 -0
  53. package/dist/agent/contributions.js.map +1 -0
  54. package/dist/agent/docs-generated.d.ts +3 -0
  55. package/dist/agent/docs-generated.d.ts.map +1 -0
  56. package/dist/agent/docs-generated.js +13 -0
  57. package/dist/agent/docs-generated.js.map +1 -0
  58. package/dist/agent/policy.d.ts +38 -0
  59. package/dist/agent/policy.d.ts.map +1 -0
  60. package/dist/agent/policy.js +78 -0
  61. package/dist/agent/policy.js.map +1 -0
  62. package/dist/agent/provider-events.d.ts +3 -0
  63. package/dist/agent/provider-events.d.ts.map +1 -0
  64. package/dist/agent/provider-events.js +16 -0
  65. package/dist/agent/provider-events.js.map +1 -0
  66. package/dist/agent/register.d.ts +3 -0
  67. package/dist/agent/register.d.ts.map +1 -0
  68. package/dist/agent/register.js +37 -0
  69. package/dist/agent/register.js.map +1 -0
  70. package/dist/agent/surface-parity.d.ts +3 -0
  71. package/dist/agent/surface-parity.d.ts.map +1 -0
  72. package/dist/agent/surface-parity.js +59 -0
  73. package/dist/agent/surface-parity.js.map +1 -0
  74. package/package.json +116 -4
  75. package/tsconfig.build.json +22 -0
  76. package/tsconfig.json +15 -0
@@ -0,0 +1,37 @@
1
+ // registerGoogleChatProvider — the ONE boot entry of @open-everywhere/provider-google-chat (OPE-2442). The app's
2
+ // generated selection table imports it STATICALLY and `registerDefaultAdapters()` calls it once at boot; every
3
+ // seam the bundle implements registers here and nowhere else.
4
+ //
5
+ // What Google Chat registers (and what it deliberately does NOT):
6
+ // • identity mapper — bindGoogleChat (channels/google-chat-identity.ts)
7
+ // • capability manifest — { midTurnPost: true, reactions: false, closingProseDropped: true }: `reply` is the
8
+ // wired verb (the unified dispatch through the post arm), the app sets no reactions,
9
+ // and a seat's turn-final text is dropped, so `reply` is the only way out
10
+ // • post arm — googleChatPostArm: the reply, into the trigger's space and thread
11
+ // • wake-origin codec — the stored-data google-chat arm (channels/google-chat-origin-codec.ts)
12
+ // • surface message ops — googleChatMessageOps: a host notice is one more message in the space
13
+ // • credential probe — "configured" = the policy is enabled (no environment read)
14
+ // • NO read adapter (the app cannot list a space's messages), NO card poster, NO reaction surface, NO routine
15
+ // dispatch — each is declared, with its reason, in surface-parity.ts.
16
+ import { registerCapabilityManifest, registerIdentityMapper, registerPostArm, registerProviderDocs, registerProviderEvents, registerSurfaceCredentialProbe, registerSurfaceMessageOps, registerSurfaceParity, registerWakeOriginCodec, } from "@open-everywhere/core/agent/adapter-api.js";
17
+ import { PROVIDER_DOCS } from "./docs-generated.js";
18
+ import { GOOGLE_CHAT_SURFACE_PARITY } from "./surface-parity.js";
19
+ import { GOOGLE_CHAT_PROVIDER_EVENTS } from "./provider-events.js";
20
+ import { googleChatPolicy } from "./policy.js";
21
+ import { bindGoogleChat } from "./channels/google-chat-identity.js";
22
+ import { googleChatPostArm } from "./channels/google-chat-post-arm.js";
23
+ import { googleChatWakeOriginCodec } from "./channels/google-chat-origin-codec.js";
24
+ import { googleChatMessageOps } from "./channels/google-chat-message-ops.js";
25
+ /** Perform ALL of the Google Chat bundle's registrations. Idempotent (each register call replaces). */
26
+ export function registerGoogleChatProvider() {
27
+ registerIdentityMapper("google-chat", bindGoogleChat);
28
+ registerCapabilityManifest("google-chat", { midTurnPost: true, reactions: false, closingProseDropped: true });
29
+ registerSurfaceParity("google-chat", GOOGLE_CHAT_SURFACE_PARITY);
30
+ registerProviderEvents("google-chat", GOOGLE_CHAT_PROVIDER_EVENTS);
31
+ registerPostArm(googleChatPostArm);
32
+ registerWakeOriginCodec("google-chat", googleChatWakeOriginCodec);
33
+ registerSurfaceMessageOps(googleChatMessageOps);
34
+ registerSurfaceCredentialProbe("google-chat", () => googleChatPolicy().enabled);
35
+ registerProviderDocs("google-chat", PROVIDER_DOCS);
36
+ }
37
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../agent/register.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,+GAA+G;AAC/G,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,8EAA8E;AAC9E,+GAA+G;AAC/G,+GAA+G;AAC/G,oGAAoG;AACpG,8FAA8F;AAC9F,mGAAmG;AACnG,iGAAiG;AACjG,uFAAuF;AACvF,gHAAgH;AAChH,0EAA0E;AAE1E,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,8BAA8B,EAC9B,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,uGAAuG;AACvG,MAAM,UAAU,0BAA0B;IACxC,sBAAsB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACtD,0BAA0B,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9G,qBAAqB,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;IACjE,sBAAsB,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;IACnE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACnC,uBAAuB,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;IAClE,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;IAChD,8BAA8B,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC;IAChF,oBAAoB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SurfaceParityDeclaration } from "@open-everywhere/core/agent/adapter-api.js";
2
+ export declare const GOOGLE_CHAT_SURFACE_PARITY: SurfaceParityDeclaration;
3
+ //# sourceMappingURL=surface-parity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-parity.d.ts","sourceRoot":"","sources":["../../agent/surface-parity.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAE3F,eAAO,MAAM,0BAA0B,EAAE,wBAiDxC,CAAC"}
@@ -0,0 +1,59 @@
1
+ // GOOGLE CHAT's surface-parity declaration (OPE-2442). See the core module's header
2
+ // (packages/core/agent/identity/surface-parity.ts) for what the three cell shapes mean.
3
+ //
4
+ // The first cut is the addressed path: an @mention in a space or a direct message wakes a seat, and the seat
5
+ // answers in the same thread. Google Chat's HTTP endpoint delivers a space message only when it @-mentions the
6
+ // app. Ambient messages, edits and space reads need a Workspace Events subscription or the admin-approved
7
+ // `chat.app.messages.readonly` scope, which this cut does not request. So every vendor-side gap below is "not
8
+ // built yet": none of them is a platform limit. Two kinds of row are not gaps: `mpim` is a policy refusal (a group
9
+ // chat has no domain to own it and is not one person's DM), and `search`, `origin-placement-carry`,
10
+ // `engaged-row-promotion` and `seat-context-admission` do not apply to this surface by design.
11
+ export const GOOGLE_CHAT_SURFACE_PARITY = {
12
+ // --- registration seams (§7.1) ---------------------------------------------------------------
13
+ "identity-mapper": "supported",
14
+ "capability-manifest": "supported",
15
+ "post-arm": "supported",
16
+ "wake-origin-codec": "supported",
17
+ "origin-placement-carry": {
18
+ unsupported: "the placement is INSIDE the conversation identity: `threadRef` keys on the thread name, the very thread a reply posts into, so two origins of one conversation already agree on placement",
19
+ },
20
+ "read-adapter": { unsupported: "not built yet — listing a space's messages needs user authentication or the admin-approved `chat.app.messages.readonly` app scope, which the app does not request" },
21
+ "reaction-feedback-ingest": { unsupported: "not built yet — the HTTP endpoint carries no reaction event; a Workspace Events subscription would" },
22
+ "ancillary-ops": { supported: "text only — a host notice is one more message in the space; no edit, file or reaction" },
23
+ "ambient-engagement-seam": { unsupported: "not built yet — the HTTP endpoint delivers a space message only on an @mention; a Workspace Events subscription would deliver the rest" },
24
+ "engaged-row-promotion": { unsupported: "no ambient leg — every Google Chat wake is addressed (`direct-mention`)" },
25
+ "owned-thread-ingress": { supported: "the space leg takes the inbound divert; only a reply inside an existing thread (`threadReply`) is thread-scoped" },
26
+ "thread-done-reaction": { unsupported: "not built yet — the app sets no reactions (no `setReaction` in the ancillary ops)" },
27
+ // --- wake legs and conversation shapes -------------------------------------------------------
28
+ "addressed-leg": "supported",
29
+ "ambient-leg": { unsupported: "not built yet — the HTTP endpoint delivers a space message only on an @mention; a Workspace Events subscription would deliver the rest" },
30
+ "seat-catch-up": { unsupported: "not built yet — the app does not list a space's messages (see the read adapter row)" },
31
+ "seat-context-admission": { unsupported: "the wake fills no context-line slot — the seat reads only the addressed message and its carried tail" },
32
+ "approval-card": {
33
+ unsupported: "not built yet — a Chat card with a button needs the CARD_CLICKED tap answered; a governed act asked from Google Chat takes the venue walk to a card-capable room in the same domain",
34
+ },
35
+ "judge-lift-notice": { supported: "the shared text render, posted into the space — no button yet, so the overrule is spelled out in words" },
36
+ "name-drop-mention": { unsupported: "not built yet — a message that names the app without an @mention never reaches the HTTP endpoint; a Workspace Events subscription would deliver it" },
37
+ "message-edit-wake": { unsupported: "not built yet — the HTTP endpoint sends no event for an edited message; a Workspace Events subscription would" },
38
+ threads: { supported: "a reply posts into the trigger's own thread (`REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD`)" },
39
+ rooms: { supported: "a space is a surface a domain's `reach` lists (`google-chat/<workspace>/<space id>`)" },
40
+ dm: { supported: "the person's own direct message with the app wakes their DM seat — internal people only" },
41
+ mpim: { unsupported: "policy: a group chat is refused (`group-chat`) — it has no domain to own it and is not one person's DM" },
42
+ // --- core verbs (§7.2) -----------------------------------------------------------------------
43
+ reply: "supported",
44
+ edit_reply: { unsupported: "not built yet — the arm registers no edit; Chat's `messages.patch` would carry one" },
45
+ react: { unsupported: "not built yet — no outbound reaction transport is wired" },
46
+ no_reply: "supported",
47
+ read_channel: { unsupported: "not built yet — listing a space's messages needs user authentication or the admin-approved `chat.app.messages.readonly` app scope, which the app does not request" },
48
+ read_thread: { unsupported: "not built yet — the same message-list scope as `read_channel`" },
49
+ search: { unsupported: "no work-search adapter — Google Chat is a chat surface, not a work corpus" },
50
+ post_message: { unsupported: "not built yet — no routine dispatch is registered, so the agent answers only in a conversation somebody started" },
51
+ dm_person: { unsupported: "not built yet — the app cannot open a DM a person did not start" },
52
+ set_dm_delivery: { unsupported: "not built yet — a Google Chat DM is never a proactive delivery channel" },
53
+ stop: { unsupported: "not built yet — the app reads no reactions, so there is no stop trigger" },
54
+ ack_stop_glyph: { unsupported: "not built yet — the app sets no reactions" },
55
+ ack_cancel_note: { supported: "a message in the space, through the host-notice transport" },
56
+ stand_down: { unsupported: "not built yet — remove the app from the space instead" },
57
+ post_file: { unsupported: "not built yet — the reply carries text only" },
58
+ };
59
+ //# sourceMappingURL=surface-parity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-parity.js","sourceRoot":"","sources":["../../agent/surface-parity.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,wFAAwF;AACxF,EAAE;AACF,6GAA6G;AAC7G,+GAA+G;AAC/G,0GAA0G;AAC1G,8GAA8G;AAC9G,mHAAmH;AACnH,oGAAoG;AACpG,+FAA+F;AAI/F,MAAM,CAAC,MAAM,0BAA0B,GAA6B;IAClE,gGAAgG;IAChG,iBAAiB,EAAE,WAAW;IAC9B,qBAAqB,EAAE,WAAW;IAClC,UAAU,EAAE,WAAW;IACvB,mBAAmB,EAAE,WAAW;IAChC,wBAAwB,EAAE;QACxB,WAAW,EAAE,2LAA2L;KACzM;IACD,cAAc,EAAE,EAAE,WAAW,EAAE,mKAAmK,EAAE;IACpM,0BAA0B,EAAE,EAAE,WAAW,EAAE,oGAAoG,EAAE;IACjJ,eAAe,EAAE,EAAE,SAAS,EAAE,uFAAuF,EAAE;IACvH,yBAAyB,EAAE,EAAE,WAAW,EAAE,wIAAwI,EAAE;IACpL,uBAAuB,EAAE,EAAE,WAAW,EAAE,yEAAyE,EAAE;IACnH,sBAAsB,EAAE,EAAE,SAAS,EAAE,iHAAiH,EAAE;IACxJ,sBAAsB,EAAE,EAAE,WAAW,EAAE,mFAAmF,EAAE;IAE5H,gGAAgG;IAChG,eAAe,EAAE,WAAW;IAC5B,aAAa,EAAE,EAAE,WAAW,EAAE,wIAAwI,EAAE;IACxK,eAAe,EAAE,EAAE,WAAW,EAAE,qFAAqF,EAAE;IACvH,wBAAwB,EAAE,EAAE,WAAW,EAAE,sGAAsG,EAAE;IACjJ,eAAe,EAAE;QACf,WAAW,EAAE,qLAAqL;KACnM;IACD,mBAAmB,EAAE,EAAE,SAAS,EAAE,wGAAwG,EAAE;IAC5I,mBAAmB,EAAE,EAAE,WAAW,EAAE,oJAAoJ,EAAE;IAC1L,mBAAmB,EAAE,EAAE,WAAW,EAAE,+GAA+G,EAAE;IACrJ,OAAO,EAAE,EAAE,SAAS,EAAE,sFAAsF,EAAE;IAC9G,KAAK,EAAE,EAAE,SAAS,EAAE,sFAAsF,EAAE;IAC5G,EAAE,EAAE,EAAE,SAAS,EAAE,yFAAyF,EAAE;IAC5G,IAAI,EAAE,EAAE,WAAW,EAAE,wGAAwG,EAAE;IAE/H,gGAAgG;IAChG,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,EAAE,WAAW,EAAE,oFAAoF,EAAE;IACjH,KAAK,EAAE,EAAE,WAAW,EAAE,yDAAyD,EAAE;IACjF,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,EAAE,WAAW,EAAE,mKAAmK,EAAE;IAClM,WAAW,EAAE,EAAE,WAAW,EAAE,+DAA+D,EAAE;IAC7F,MAAM,EAAE,EAAE,WAAW,EAAE,2EAA2E,EAAE;IACpG,YAAY,EAAE,EAAE,WAAW,EAAE,iHAAiH,EAAE;IAChJ,SAAS,EAAE,EAAE,WAAW,EAAE,iEAAiE,EAAE;IAC7F,eAAe,EAAE,EAAE,WAAW,EAAE,wEAAwE,EAAE;IAC1G,IAAI,EAAE,EAAE,WAAW,EAAE,yEAAyE,EAAE;IAChG,cAAc,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE;IAC5E,eAAe,EAAE,EAAE,SAAS,EAAE,2DAA2D,EAAE;IAC3F,UAAU,EAAE,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACpF,SAAS,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE;CAC1E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,118 @@
1
1
  {
2
2
  "name": "@open-everywhere/provider-google-chat",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.7.0",
4
+ "description": "Open Everywhere Google Chat provider — the agent as a Google Chat app: mention and DM wakes, threaded replies.",
5
+ "keywords": [
6
+ "agent",
7
+ "google-chat",
8
+ "google-workspace",
9
+ "chat",
10
+ "eve"
11
+ ],
12
+ "license": "Apache-2.0",
13
+ "type": "module",
14
+ "homepage": "https://github.com/open-everywhere/open-everywhere/tree/main/packages/providers/google-chat",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/open-everywhere/open-everywhere.git",
18
+ "directory": "packages/providers/google-chat"
19
+ },
20
+ "bugs": {
21
+ "url": "https://github.com/open-everywhere/open-everywhere/issues"
22
+ },
23
+ "engines": {
24
+ "node": ">=24"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "files": [
30
+ "agent",
31
+ "dist",
32
+ "tsconfig.json",
33
+ "tsconfig.build.json",
34
+ "LICENSE",
35
+ "NOTICE"
36
+ ],
37
+ "exports": {
38
+ "./package.json": "./package.json",
39
+ "./agent/channels/google-chat-auth.js": {
40
+ "types": "./dist/agent/channels/google-chat-auth.d.ts",
41
+ "default": "./dist/agent/channels/google-chat-auth.js"
42
+ },
43
+ "./agent/channels/google-chat-front.js": {
44
+ "types": "./dist/agent/channels/google-chat-front.d.ts",
45
+ "default": "./dist/agent/channels/google-chat-front.js"
46
+ },
47
+ "./agent/channels/google-chat-identity.js": {
48
+ "types": "./dist/agent/channels/google-chat-identity.d.ts",
49
+ "default": "./dist/agent/channels/google-chat-identity.js"
50
+ },
51
+ "./agent/channels/google-chat-message-ops.js": {
52
+ "types": "./dist/agent/channels/google-chat-message-ops.d.ts",
53
+ "default": "./dist/agent/channels/google-chat-message-ops.js"
54
+ },
55
+ "./agent/channels/google-chat-origin-codec.js": {
56
+ "types": "./dist/agent/channels/google-chat-origin-codec.d.ts",
57
+ "default": "./dist/agent/channels/google-chat-origin-codec.js"
58
+ },
59
+ "./agent/channels/google-chat-post-arm.js": {
60
+ "types": "./dist/agent/channels/google-chat-post-arm.d.ts",
61
+ "default": "./dist/agent/channels/google-chat-post-arm.js"
62
+ },
63
+ "./agent/channels/google-chat-rest.js": {
64
+ "types": "./dist/agent/channels/google-chat-rest.d.ts",
65
+ "default": "./dist/agent/channels/google-chat-rest.js"
66
+ },
67
+ "./agent/channels/google-chat.js": {
68
+ "types": "./dist/agent/channels/google-chat.d.ts",
69
+ "default": "./dist/agent/channels/google-chat.js"
70
+ },
71
+ "./agent/contributions.js": {
72
+ "types": "./dist/agent/contributions.d.ts",
73
+ "default": "./dist/agent/contributions.js"
74
+ },
75
+ "./agent/docs-generated.js": {
76
+ "types": "./dist/agent/docs-generated.d.ts",
77
+ "default": "./dist/agent/docs-generated.js"
78
+ },
79
+ "./agent/policy.js": {
80
+ "types": "./dist/agent/policy.d.ts",
81
+ "default": "./dist/agent/policy.js"
82
+ },
83
+ "./agent/provider-events.js": {
84
+ "types": "./dist/agent/provider-events.d.ts",
85
+ "default": "./dist/agent/provider-events.js"
86
+ },
87
+ "./agent/register.js": {
88
+ "types": "./dist/agent/register.d.ts",
89
+ "default": "./dist/agent/register.js"
90
+ },
91
+ "./agent/surface-parity.js": {
92
+ "types": "./dist/agent/surface-parity.d.ts",
93
+ "default": "./dist/agent/surface-parity.js"
94
+ }
95
+ },
96
+ "scripts": {
97
+ "build": "tsc -p tsconfig.build.json",
98
+ "prepack": "npm run build",
99
+ "typecheck": "tsc --noEmit -p tsconfig.json",
100
+ "test": "npm run test:chain",
101
+ "test:chain": "tsx ../../../scripts/chain/run-chain.ts",
102
+ "test:google-chat-auth": "NODE_NO_WARNINGS=1 tsx scripts/google-chat-auth-test.ts",
103
+ "test:google-chat-front": "NODE_NO_WARNINGS=1 tsx scripts/google-chat-front-test.ts",
104
+ "test:google-chat-post-arm": "NODE_NO_WARNINGS=1 tsx scripts/google-chat-post-arm-test.ts"
105
+ },
106
+ "dependencies": {
107
+ "@open-everywhere/core": "0.7.0",
108
+ "jose": "6.2.3"
109
+ },
110
+ "peerDependencies": {
111
+ "eve": "0.71.0"
112
+ },
113
+ "devDependencies": {
114
+ "@types/node": "latest",
115
+ "tsx": "latest",
116
+ "typescript": "latest"
117
+ }
118
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ // PUBLISH BUILD (OPE-406). See packages/core/tsconfig.build.json for the full rationale: the
3
+ // sibling tsconfig.json stays noEmit (it is the typecheck gate and covers scripts/** too); this
4
+ // config emits ONLY the published surface (agent/**) into dist/, because a registry install
5
+ // cannot execute raw TypeScript and "eve build" evaluates the authored agent modules.
6
+ "extends": "./tsconfig.json",
7
+ "compilerOptions": {
8
+ "noEmit": false,
9
+ // Incremental: these run from every pre-hook (pretypecheck/pretest/prebuild), so a no-op
10
+ // rebuild has to be near-free or the gate chain pays a full tsc on every invocation.
11
+ "incremental": true,
12
+ // OUTSIDE outDir on purpose: a tsbuildinfo left in dist/ gets swept up by the files
13
+ // allowlist and PUBLISHED (caught by the tarball listing, 2026-08-12).
14
+ "tsBuildInfoFile": "./.tsbuildinfo",
15
+ "declaration": true,
16
+ "declarationMap": true,
17
+ "sourceMap": true,
18
+ "outDir": "dist",
19
+ "rootDir": "."
20
+ },
21
+ "include": ["agent/**/*.ts"]
22
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2023",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "lib": ["ES2023"],
7
+ "strict": true,
8
+ "esModuleInterop": true,
9
+ "skipLibCheck": true,
10
+ "noEmit": true,
11
+ "resolveJsonModule": true,
12
+ "types": ["node"]
13
+ },
14
+ "include": ["agent/**/*.ts", "scripts/**/*.ts"]
15
+ }