@stigmer/protos 3.9.0 → 3.11.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 (53) hide show
  1. package/ai/stigmer/activity/v1/io_pb.d.ts +11 -7
  2. package/ai/stigmer/activity/v1/io_pb.js.map +1 -1
  3. package/ai/stigmer/activity/v1/query_connect.d.ts +8 -3
  4. package/ai/stigmer/activity/v1/query_connect.js +8 -3
  5. package/ai/stigmer/activity/v1/query_connect.js.map +1 -1
  6. package/ai/stigmer/activity/v1/query_pb.d.ts +8 -3
  7. package/ai/stigmer/activity/v1/query_pb.js.map +1 -1
  8. package/ai/stigmer/agentic/agent/v1/io_pb.d.ts +3 -0
  9. package/ai/stigmer/agentic/agent/v1/io_pb.js.map +1 -1
  10. package/ai/stigmer/agentic/agent/v1/query_connect.d.ts +7 -0
  11. package/ai/stigmer/agentic/agent/v1/query_connect.js +7 -0
  12. package/ai/stigmer/agentic/agent/v1/query_connect.js.map +1 -1
  13. package/ai/stigmer/agentic/agent/v1/query_pb.d.ts +7 -0
  14. package/ai/stigmer/agentic/agent/v1/query_pb.js.map +1 -1
  15. package/ai/stigmer/agentic/agent/v1/spec_pb.d.ts +16 -1
  16. package/ai/stigmer/agentic/agent/v1/spec_pb.js.map +1 -1
  17. package/ai/stigmer/agentic/agentexecution/v1/query_connect.d.ts +17 -7
  18. package/ai/stigmer/agentic/agentexecution/v1/query_connect.js +17 -7
  19. package/ai/stigmer/agentic/agentexecution/v1/query_connect.js.map +1 -1
  20. package/ai/stigmer/agentic/agentexecution/v1/query_pb.d.ts +17 -7
  21. package/ai/stigmer/agentic/agentexecution/v1/query_pb.js.map +1 -1
  22. package/ai/stigmer/agentic/executioncontext/v1/command_connect.d.ts +30 -13
  23. package/ai/stigmer/agentic/executioncontext/v1/command_connect.js +30 -13
  24. package/ai/stigmer/agentic/executioncontext/v1/command_connect.js.map +1 -1
  25. package/ai/stigmer/agentic/executioncontext/v1/command_pb.d.ts +30 -13
  26. package/ai/stigmer/agentic/executioncontext/v1/command_pb.js +16 -7
  27. package/ai/stigmer/agentic/executioncontext/v1/command_pb.js.map +1 -1
  28. package/ai/stigmer/agentic/executioncontext/v1/query_connect.d.ts +8 -6
  29. package/ai/stigmer/agentic/executioncontext/v1/query_connect.js +8 -6
  30. package/ai/stigmer/agentic/executioncontext/v1/query_connect.js.map +1 -1
  31. package/ai/stigmer/agentic/executioncontext/v1/query_pb.d.ts +8 -6
  32. package/ai/stigmer/agentic/executioncontext/v1/query_pb.js.map +1 -1
  33. package/ai/stigmer/agentic/mcpserver/v1/spec_pb.d.ts +6 -1
  34. package/ai/stigmer/agentic/mcpserver/v1/spec_pb.js.map +1 -1
  35. package/ai/stigmer/agentic/mcpserver/v1/status_pb.d.ts +3 -2
  36. package/ai/stigmer/agentic/mcpserver/v1/status_pb.js.map +1 -1
  37. package/ai/stigmer/agentic/workflowexecution/v1/io_pb.d.ts +3 -2
  38. package/ai/stigmer/agentic/workflowexecution/v1/io_pb.js.map +1 -1
  39. package/ai/stigmer/billing/v1/model_pricing_baseline_pb.d.ts +36 -0
  40. package/ai/stigmer/billing/v1/model_pricing_baseline_pb.js.map +1 -1
  41. package/ai/stigmer/commons/apiresource/enum_pb.d.ts +15 -4
  42. package/ai/stigmer/commons/apiresource/enum_pb.js +15 -4
  43. package/ai/stigmer/commons/apiresource/enum_pb.js.map +1 -1
  44. package/ai/stigmer/iam/iampolicy/v1/command_connect.d.ts +48 -0
  45. package/ai/stigmer/iam/iampolicy/v1/command_connect.js +48 -0
  46. package/ai/stigmer/iam/iampolicy/v1/command_connect.js.map +1 -1
  47. package/ai/stigmer/iam/iampolicy/v1/command_pb.d.ts +47 -0
  48. package/ai/stigmer/iam/iampolicy/v1/command_pb.js +1 -1
  49. package/ai/stigmer/iam/iampolicy/v1/command_pb.js.map +1 -1
  50. package/ai/stigmer/platform/v1/server_info_pb.d.ts +8 -5
  51. package/ai/stigmer/platform/v1/server_info_pb.js.map +1 -1
  52. package/ai/stigmer/search/v1/io_pb.d.ts +3 -3
  53. package/package.json +1 -1
@@ -70,14 +70,18 @@ export type ListRecentActivityRequest = Message<"ai.stigmer.activity.v1.ListRece
70
70
  /**
71
71
  * Organization slug to scope the query.
72
72
  *
73
- * When provided, the handler attempts an org-scoped fast path: if the
74
- * caller is a member of this organization, it queries MongoDB directly
75
- * with `metadata.org = org` instead of enumerating per-resource FGA
76
- * tuples. This turns an O(n) FGA reverse-index scan into a single
77
- * membership check + indexed MongoDB query.
73
+ * When provided, results are narrowed to resources in this organization.
74
+ * The org NEVER widens visibility: per-resource read authority is always
75
+ * enforced (on the hosted edition, FGA `can_view` enumeration per kind),
76
+ * and the org filter only intersects that authorized set. Both recents
77
+ * kinds are private by default — sessions are personal resources and
78
+ * workflow executions opt in to org observability per instance — so org
79
+ * membership alone must never substitute for the per-resource check. An
80
+ * earlier "org member = query by org directly" fast path leaked session
81
+ * titles to every org member (stigmer-cloud#258).
78
82
  *
79
- * When empty, falls back to per-resource FGA enumeration (slower but
80
- * works regardless of org context).
83
+ * When empty, results span every organization the caller has resource
84
+ * access in.
81
85
  *
82
86
  * @generated from field: string org = 2;
83
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"io_pb.js","sourceRoot":"","sources":["../../../../../ai/stigmer/activity/v1/io_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,uGAAuG;AACvG,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAGxE;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAY,aAAa,CAClE,QAAQ,CAAC,odAAod,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAoDngB;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAoC,aAAa,CACrF,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AAgCjD;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA0C,aAAa,CACjG,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AAiBjD;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAA2C,aAAa,CACnG,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"io_pb.js","sourceRoot":"","sources":["../../../../../ai/stigmer/activity/v1/io_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,uGAAuG;AACvG,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAGxE;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAY,aAAa,CAClE,QAAQ,CAAC,odAAod,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAoDngB;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAoC,aAAa,CACrF,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AAoCjD;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA0C,aAAa,CACjG,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AAiBjD;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAA2C,aAAa,CACnG,WAAW,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC"}
@@ -21,11 +21,16 @@ export declare const ActivityQueryController: {
21
21
  * List recent activity across sessions and workflow executions.
22
22
  *
23
23
  * Returns a merged, time-sorted list of the caller's most recent
24
- * sessions and workflow executions. Authorization filtering is applied
25
- * server-side via FGA (cloud) or returned unfiltered (OSS).
24
+ * sessions and workflow executions. On the hosted edition, per-resource
25
+ * authorization filtering is applied server-side (FGA `can_view`
26
+ * enumeration for both kinds — the same permission the per-kind `get`
27
+ * RPCs enforce, so every listed entry is openable by construction). The
28
+ * OSS server does not currently implement this RPC (stigmer#461).
26
29
  *
27
30
  * @internal
28
- * Authorization is handled in-handler via FGA-filtered queries.
31
+ * Authorization is handled in-handler: the FGA id enumeration is the only
32
+ * gate (hence is_skip_authorization); the request's org merely narrows
33
+ * the authorized set.
29
34
  *
30
35
  * @generated from rpc ai.stigmer.activity.v1.ActivityQueryController.listRecentActivity
31
36
  */
@@ -27,11 +27,16 @@ export const ActivityQueryController = {
27
27
  * List recent activity across sessions and workflow executions.
28
28
  *
29
29
  * Returns a merged, time-sorted list of the caller's most recent
30
- * sessions and workflow executions. Authorization filtering is applied
31
- * server-side via FGA (cloud) or returned unfiltered (OSS).
30
+ * sessions and workflow executions. On the hosted edition, per-resource
31
+ * authorization filtering is applied server-side (FGA `can_view`
32
+ * enumeration for both kinds — the same permission the per-kind `get`
33
+ * RPCs enforce, so every listed entry is openable by construction). The
34
+ * OSS server does not currently implement this RPC (stigmer#461).
32
35
  *
33
36
  * @internal
34
- * Authorization is handled in-handler via FGA-filtered queries.
37
+ * Authorization is handled in-handler: the FGA id enumeration is the only
38
+ * gate (hence is_skip_authorization); the request's org merely narrows
39
+ * the authorized set.
35
40
  *
36
41
  * @generated from rpc ai.stigmer.activity.v1.ActivityQueryController.listRecentActivity
37
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"query_connect.js","sourceRoot":"","sources":["../../../../../ai/stigmer/activity/v1/query_connect.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,0GAA0G;AAC1G,oBAAoB;AACpB,cAAc;AAEd,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ,EAAE,gDAAgD;IAC1D,OAAO,EAAE;QACP;;;;;;;;;;;WAWG;QACH,kBAAkB,EAAE;YAClB,IAAI,EAAE,oBAAoB;YAC1B,CAAC,EAAE,yBAAyB;YAC5B,CAAC,EAAE,0BAA0B;YAC7B,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;KACF;CACO,CAAC"}
1
+ {"version":3,"file":"query_connect.js","sourceRoot":"","sources":["../../../../../ai/stigmer/activity/v1/query_connect.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,0GAA0G;AAC1G,oBAAoB;AACpB,cAAc;AAEd,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ,EAAE,gDAAgD;IAC1D,OAAO,EAAE;QACP;;;;;;;;;;;;;;;;WAgBG;QACH,kBAAkB,EAAE;YAClB,IAAI,EAAE,oBAAoB;YAC1B,CAAC,EAAE,yBAAyB;YAC5B,CAAC,EAAE,0BAA0B;YAC7B,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;KACF;CACO,CAAC"}
@@ -25,11 +25,16 @@ export declare const ActivityQueryController: GenService<{
25
25
  * List recent activity across sessions and workflow executions.
26
26
  *
27
27
  * Returns a merged, time-sorted list of the caller's most recent
28
- * sessions and workflow executions. Authorization filtering is applied
29
- * server-side via FGA (cloud) or returned unfiltered (OSS).
28
+ * sessions and workflow executions. On the hosted edition, per-resource
29
+ * authorization filtering is applied server-side (FGA `can_view`
30
+ * enumeration for both kinds — the same permission the per-kind `get`
31
+ * RPCs enforce, so every listed entry is openable by construction). The
32
+ * OSS server does not currently implement this RPC (stigmer#461).
30
33
  *
31
34
  * @internal
32
- * Authorization is handled in-handler via FGA-filtered queries.
35
+ * Authorization is handled in-handler: the FGA id enumeration is the only
36
+ * gate (hence is_skip_authorization); the request's org merely narrows
37
+ * the authorized set.
33
38
  *
34
39
  * @generated from rpc ai.stigmer.activity.v1.ActivityQueryController.listRecentActivity
35
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"query_pb.js","sourceRoot":"","sources":["../../../../../ai/stigmer/activity/v1/query_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,0GAA0G;AAC1G,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,0CAA0C,EAAE,MAAM,wCAAwC,CAAC;AAEpG;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAY,aAAa,CACrE,QAAQ,CAAC,kTAAkT,EAAE,CAAC,8BAA8B,EAAE,0CAA0C,CAAC,CAAC,CAAC;AAE7Y;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAkB/B,aAAa,CAChB,WAAW,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"query_pb.js","sourceRoot":"","sources":["../../../../../ai/stigmer/activity/v1/query_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,0GAA0G;AAC1G,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,0CAA0C,EAAE,MAAM,wCAAwC,CAAC;AAEpG;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAY,aAAa,CACrE,QAAQ,CAAC,kTAAkT,EAAE,CAAC,8BAA8B,EAAE,0CAA0C,CAAC,CAAC,CAAC;AAE7Y;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAuB/B,aAAa,CAChB,WAAW,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC"}
@@ -26,6 +26,9 @@ export declare const AgentIdSchema: GenMessage<AgentId>;
26
26
  * @internal
27
27
  * The handler resolves the default agent globally (by label stigmer.ai/default-agent: "true"
28
28
  * with visibility_public), but the org is needed for authorization scoping.
29
+ * Resolution is deliberately NOT scoped to this org: the default agent is a
30
+ * platform-level singleton seeded in the system org and served to callers of
31
+ * every org (see the getDefault rpc docs for the determinism contract).
29
32
  *
30
33
  * @generated from message ai.stigmer.agentic.agent.v1.GetDefaultAgentRequest
31
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"io_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agent/v1/io_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,iHAAiH;AACjH,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAGxF;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAY,aAAa,CACvE,QAAQ,CAAC,oNAAoN,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAc/P;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAwB,aAAa,CAC7D,WAAW,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;AAoBtD;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAuC,aAAa,CAC3F,WAAW,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"io_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agent/v1/io_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,iHAAiH;AACjH,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAGxF;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAY,aAAa,CACvE,QAAQ,CAAC,oNAAoN,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAc/P;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAwB,aAAa,CAC7D,WAAW,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;AAuBtD;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAuC,aAAa,CAC3F,WAAW,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC"}
@@ -46,6 +46,13 @@ export declare const AgentQueryController: {
46
46
  * Resolves the agent labeled stigmer.ai/default-agent: "true" with
47
47
  * visibility_public. Custom authorization in handler.
48
48
  *
49
+ * Resolution is deterministic (stigmer/stigmer#356): only public labeled
50
+ * agents are candidates, and with multiple candidates — a reachable state,
51
+ * since safe label rotation applies the new default before retiring the
52
+ * old — the one with the lowest metadata.id (the incumbent) wins. The
53
+ * default changes only when the incumbent's label is explicitly removed,
54
+ * never as a side effect of another agent gaining the label.
55
+ *
49
56
  * @generated from rpc ai.stigmer.agentic.agent.v1.AgentQueryController.getDefault
50
57
  */
51
58
  readonly getDefault: {
@@ -54,6 +54,13 @@ export const AgentQueryController = {
54
54
  * Resolves the agent labeled stigmer.ai/default-agent: "true" with
55
55
  * visibility_public. Custom authorization in handler.
56
56
  *
57
+ * Resolution is deterministic (stigmer/stigmer#356): only public labeled
58
+ * agents are candidates, and with multiple candidates — a reachable state,
59
+ * since safe label rotation applies the new default before retiring the
60
+ * old — the one with the lowest metadata.id (the incumbent) wins. The
61
+ * default changes only when the incumbent's label is explicitly removed,
62
+ * never as a side effect of another agent gaining the label.
63
+ *
57
64
  * @generated from rpc ai.stigmer.agentic.agent.v1.AgentQueryController.getDefault
58
65
  */
59
66
  getDefault: {
@@ -1 +1 @@
1
- {"version":3,"file":"query_connect.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agent/v1/query_connect.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,oHAAoH;AACpH,oBAAoB;AACpB,cAAc;AAEd,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,kDAAkD;IAC5D,OAAO,EAAE;QACP;;;;WAIG;QACH,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;YACX,CAAC,EAAE,OAAO;YACV,CAAC,EAAE,KAAK;YACR,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;QACD;;;;;;;;;WASG;QACH,cAAc,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,CAAC,EAAE,oBAAoB;YACvB,CAAC,EAAE,KAAK;YACR,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;QACD;;;;;;;;;;;;;;WAcG;QACH,UAAU,EAAE;YACV,IAAI,EAAE,YAAY;YAClB,CAAC,EAAE,sBAAsB;YACzB,CAAC,EAAE,KAAK;YACR,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;KACF;CACO,CAAC"}
1
+ {"version":3,"file":"query_connect.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agent/v1/query_connect.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,oHAAoH;AACpH,oBAAoB;AACpB,cAAc;AAEd,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,kDAAkD;IAC5D,OAAO,EAAE;QACP;;;;WAIG;QACH,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;YACX,CAAC,EAAE,OAAO;YACV,CAAC,EAAE,KAAK;YACR,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;QACD;;;;;;;;;WASG;QACH,cAAc,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,CAAC,EAAE,oBAAoB;YACvB,CAAC,EAAE,KAAK;YACR,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;QACD;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,UAAU,EAAE;YACV,IAAI,EAAE,YAAY;YAClB,CAAC,EAAE,sBAAsB;YACzB,CAAC,EAAE,KAAK;YACR,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;KACF;CACO,CAAC"}
@@ -50,6 +50,13 @@ export declare const AgentQueryController: GenService<{
50
50
  * Resolves the agent labeled stigmer.ai/default-agent: "true" with
51
51
  * visibility_public. Custom authorization in handler.
52
52
  *
53
+ * Resolution is deterministic (stigmer/stigmer#356): only public labeled
54
+ * agents are candidates, and with multiple candidates — a reachable state,
55
+ * since safe label rotation applies the new default before retiring the
56
+ * old — the one with the lowest metadata.id (the incumbent) wins. The
57
+ * default changes only when the incumbent's label is explicitly removed,
58
+ * never as a side effect of another agent gaining the label.
59
+ *
53
60
  * @generated from rpc ai.stigmer.agentic.agent.v1.AgentQueryController.getDefault
54
61
  */
55
62
  getDefault: {
@@ -1 +1 @@
1
- {"version":3,"file":"query_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agent/v1/query_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,oHAAoH;AACpH,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,sCAAsC,EAAE,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,uDAAuD,EAAE,MAAM,wDAAwD,CAAC;AACjI,OAAO,EAAE,0CAA0C,EAAE,MAAM,2CAA2C,CAAC;AAEvG;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAY,aAAa,CAC1E,QAAQ,CAAC,omBAAomB,EAAE,CAAC,oCAAoC,EAAE,mCAAmC,EAAE,sCAAsC,EAAE,uDAAuD,EAAE,0CAA0C,CAAC,CAAC,CAAC;AAE30B;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GA8C5B,aAAa,CAChB,WAAW,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"query_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agent/v1/query_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,oHAAoH;AACpH,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,sCAAsC,EAAE,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,uDAAuD,EAAE,MAAM,wDAAwD,CAAC;AACjI,OAAO,EAAE,0CAA0C,EAAE,MAAM,2CAA2C,CAAC;AAEvG;;GAEG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAY,aAAa,CAC1E,QAAQ,CAAC,omBAAomB,EAAE,CAAC,oCAAoC,EAAE,mCAAmC,EAAE,sCAAsC,EAAE,uDAAuD,EAAE,0CAA0C,CAAC,CAAC,CAAC;AAE30B;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAqD5B,aAAa,CAChB,WAAW,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC"}
@@ -165,7 +165,16 @@ export type McpServerUsage = Message<"ai.stigmer.agentic.agent.v1.McpServerUsage
165
165
  * Only names from discovered_capabilities.tools are valid here.
166
166
  * Do NOT include names from discovered_capabilities.resource_templates —
167
167
  * resource templates are read-only data endpoints, not callable tools.
168
- * Including a resource template name here causes a fatal runtime error.
168
+ * A name the server does not expose (including a resource template name)
169
+ * is warned and ignored at execution: the runner enforces the INTERSECTION
170
+ * with the server's live toolset, so a stale or mistyped entry narrows the
171
+ * toolset but never widens it or fails the run.
172
+ *
173
+ * Enforcement: the native (deep-agent) harness filters the discovered
174
+ * toolset before it reaches the model; the Cursor harness cannot hide a
175
+ * server's tools (its SDK config has no allow-list field), so its HITL
176
+ * hook permanently denies calls to non-enabled tools instead — the model
177
+ * may still see the tool listed, but every call is refused.
169
178
  *
170
179
  * @generated from field: repeated string enabled_tools = 2;
171
180
  */
@@ -174,6 +183,9 @@ export type McpServerUsage = Message<"ai.stigmer.agentic.agent.v1.McpServerUsage
174
183
  * Override approval requirements for specific tools.
175
184
  * Takes precedence over McpServerSpec.pinned_tool_approvals and
176
185
  * McpServerStatus.tool_approvals.
186
+ * Scoped to THIS usage's server: an override applies only to tools of
187
+ * the McpServer referenced by mcp_server_ref — a same-named tool on
188
+ * another server is unaffected.
177
189
  *
178
190
  * @generated from field: repeated ai.stigmer.agentic.agent.v1.ToolApprovalOverride tool_approval_overrides = 3;
179
191
  */
@@ -259,6 +271,9 @@ export declare const McpAccessSchema: GenMessage<McpAccess>;
259
271
  * McpServerSpec.pinned_tool_approvals and McpServerStatus.tool_approvals,
260
272
  * but can be bypassed at execution time by AgentExecution.auto_approve_all.
261
273
  *
274
+ * An override is scoped to the McpServer referenced by its parent usage:
275
+ * it never affects a same-named tool on another server.
276
+ *
262
277
  * @internal
263
278
  * Policy chain (lowest to highest priority):
264
279
  * 1. McpServerStatus.tool_approvals — system-generated defaults
@@ -1 +1 @@
1
- {"version":3,"file":"spec_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agent/v1/spec_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,mHAAmH;AACnH,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,2CAA2C,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,iDAAiD,EAAE,MAAM,kDAAkD,CAAC;AAErH,OAAO,EAAE,sCAAsC,EAAE,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAGxF;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAY,aAAa,CACzE,QAAQ,CAAC,43EAA43E,EAAE,CAAC,2CAA2C,EAAE,iDAAiD,EAAE,sCAAsC,EAAE,0BAA0B,CAAC,CAAC,CAAC;AA0E/iF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B,aAAa,CACjE,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AA8DxD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAyB,aAAa,CAC/D,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AAgDxD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA+B,aAAa,CAC3E,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AAgCxD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA+B,aAAa,CAC3E,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AA+BxD;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B,aAAa,CACjE,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AAiDxD;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqC,aAAa,CACvF,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"spec_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agent/v1/spec_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,mHAAmH;AACnH,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,2CAA2C,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,iDAAiD,EAAE,MAAM,kDAAkD,CAAC;AAErH,OAAO,EAAE,sCAAsC,EAAE,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAGxF;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAY,aAAa,CACzE,QAAQ,CAAC,43EAA43E,EAAE,CAAC,2CAA2C,EAAE,iDAAiD,EAAE,sCAAsC,EAAE,0BAA0B,CAAC,CAAC,CAAC;AA0E/iF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B,aAAa,CACjE,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AA8DxD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAyB,aAAa,CAC/D,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AA4DxD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA+B,aAAa,CAC3E,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AAgCxD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA+B,aAAa,CAC3E,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AA+BxD;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B,aAAa,CACjE,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;AAoDxD;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqC,aAAa,CACvF,WAAW,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC"}
@@ -58,24 +58,33 @@ export declare const AgentExecutionQueryController: {
58
58
  readonly kind: any;
59
59
  };
60
60
  /**
61
- * Get a presigned download URL for an execution artifact.
61
+ * Get a presigned download URL for an execution artifact or attachment.
62
62
  *
63
63
  * Returns a time-limited URL for downloading an artifact published by
64
- * an agent during execution. The URL can be used with a simple HTTP GET
65
- * request without authentication.
64
+ * an agent during execution, or an attachment submitted with the
65
+ * execution. The URL can be used with a simple HTTP GET request without
66
+ * authentication.
66
67
  *
67
68
  * @internal
68
69
  *
69
70
  * ## Authorization
70
71
  *
71
72
  * Requires can_view permission on the execution. This ensures users can
72
- * only download artifacts from executions they have access to.
73
+ * only download files from executions they have access to.
73
74
  *
74
75
  * ## Security
75
76
  *
76
77
  * The storage_key is validated to ensure it belongs to the specified
77
- * execution. Keys must start with "artifacts/{execution_id}/" to prevent
78
- * path traversal attacks.
78
+ * execution. Two key forms are accepted:
79
+ *
80
+ * - "artifacts/{execution_id}/..." — outputs published by the execution;
81
+ * the embedded execution id is the ownership proof
82
+ * - a key listed verbatim in the execution's spec.attachments — inputs
83
+ * submitted with the turn ("attachments/{ulid}/{filename}", ULID-unique
84
+ * per upload); ownership is the spec reference, since the key carries
85
+ * no execution id
86
+ *
87
+ * Any other key is rejected to prevent path traversal attacks.
79
88
  *
80
89
  * ## URL Expiration
81
90
  *
@@ -86,12 +95,13 @@ export declare const AgentExecutionQueryController: {
86
95
  *
87
96
  * - CLI downloading agent-created files
88
97
  * - Web UI providing download links for artifacts
98
+ * - Web UI rendering submitted attachments in the message thread
89
99
  * - Refreshing expired download URLs
90
100
  *
91
101
  * ## Example Flow
92
102
  *
93
103
  * 1. Get execution via AgentExecutionQueryController.get
94
- * 2. Find artifact in status.artifacts[]
104
+ * 2. Find artifact in status.artifacts[] (or attachment in spec.attachments[])
95
105
  * 3. Call getArtifactDownloadUrl with execution_id and storage_key
96
106
  * 4. Use returned download_url for HTTP GET
97
107
  *
@@ -65,24 +65,33 @@ export const AgentExecutionQueryController = {
65
65
  kind: MethodKind.ServerStreaming,
66
66
  },
67
67
  /**
68
- * Get a presigned download URL for an execution artifact.
68
+ * Get a presigned download URL for an execution artifact or attachment.
69
69
  *
70
70
  * Returns a time-limited URL for downloading an artifact published by
71
- * an agent during execution. The URL can be used with a simple HTTP GET
72
- * request without authentication.
71
+ * an agent during execution, or an attachment submitted with the
72
+ * execution. The URL can be used with a simple HTTP GET request without
73
+ * authentication.
73
74
  *
74
75
  * @internal
75
76
  *
76
77
  * ## Authorization
77
78
  *
78
79
  * Requires can_view permission on the execution. This ensures users can
79
- * only download artifacts from executions they have access to.
80
+ * only download files from executions they have access to.
80
81
  *
81
82
  * ## Security
82
83
  *
83
84
  * The storage_key is validated to ensure it belongs to the specified
84
- * execution. Keys must start with "artifacts/{execution_id}/" to prevent
85
- * path traversal attacks.
85
+ * execution. Two key forms are accepted:
86
+ *
87
+ * - "artifacts/{execution_id}/..." — outputs published by the execution;
88
+ * the embedded execution id is the ownership proof
89
+ * - a key listed verbatim in the execution's spec.attachments — inputs
90
+ * submitted with the turn ("attachments/{ulid}/{filename}", ULID-unique
91
+ * per upload); ownership is the spec reference, since the key carries
92
+ * no execution id
93
+ *
94
+ * Any other key is rejected to prevent path traversal attacks.
86
95
  *
87
96
  * ## URL Expiration
88
97
  *
@@ -93,12 +102,13 @@ export const AgentExecutionQueryController = {
93
102
  *
94
103
  * - CLI downloading agent-created files
95
104
  * - Web UI providing download links for artifacts
105
+ * - Web UI rendering submitted attachments in the message thread
96
106
  * - Refreshing expired download URLs
97
107
  *
98
108
  * ## Example Flow
99
109
  *
100
110
  * 1. Get execution via AgentExecutionQueryController.get
101
- * 2. Find artifact in status.artifacts[]
111
+ * 2. Find artifact in status.artifacts[] (or attachment in spec.attachments[])
102
112
  * 3. Call getArtifactDownloadUrl with execution_id and storage_key
103
113
  * 4. Use returned download_url for HTTP GET
104
114
  *
@@ -1 +1 @@
1
- {"version":3,"file":"query_connect.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agentexecution/v1/query_connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query_connect.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agentexecution/v1/query_connect.ts"],"names":[],"mappings":"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"}
@@ -59,24 +59,33 @@ export declare const AgentExecutionQueryController: GenService<{
59
59
  output: typeof AgentExecutionSchema;
60
60
  };
61
61
  /**
62
- * Get a presigned download URL for an execution artifact.
62
+ * Get a presigned download URL for an execution artifact or attachment.
63
63
  *
64
64
  * Returns a time-limited URL for downloading an artifact published by
65
- * an agent during execution. The URL can be used with a simple HTTP GET
66
- * request without authentication.
65
+ * an agent during execution, or an attachment submitted with the
66
+ * execution. The URL can be used with a simple HTTP GET request without
67
+ * authentication.
67
68
  *
68
69
  * @internal
69
70
  *
70
71
  * ## Authorization
71
72
  *
72
73
  * Requires can_view permission on the execution. This ensures users can
73
- * only download artifacts from executions they have access to.
74
+ * only download files from executions they have access to.
74
75
  *
75
76
  * ## Security
76
77
  *
77
78
  * The storage_key is validated to ensure it belongs to the specified
78
- * execution. Keys must start with "artifacts/{execution_id}/" to prevent
79
- * path traversal attacks.
79
+ * execution. Two key forms are accepted:
80
+ *
81
+ * - "artifacts/{execution_id}/..." — outputs published by the execution;
82
+ * the embedded execution id is the ownership proof
83
+ * - a key listed verbatim in the execution's spec.attachments — inputs
84
+ * submitted with the turn ("attachments/{ulid}/{filename}", ULID-unique
85
+ * per upload); ownership is the spec reference, since the key carries
86
+ * no execution id
87
+ *
88
+ * Any other key is rejected to prevent path traversal attacks.
80
89
  *
81
90
  * ## URL Expiration
82
91
  *
@@ -87,12 +96,13 @@ export declare const AgentExecutionQueryController: GenService<{
87
96
  *
88
97
  * - CLI downloading agent-created files
89
98
  * - Web UI providing download links for artifacts
99
+ * - Web UI rendering submitted attachments in the message thread
90
100
  * - Refreshing expired download URLs
91
101
  *
92
102
  * ## Example Flow
93
103
  *
94
104
  * 1. Get execution via AgentExecutionQueryController.get
95
- * 2. Find artifact in status.artifacts[]
105
+ * 2. Find artifact in status.artifacts[] (or attachment in spec.attachments[])
96
106
  * 3. Call getArtifactDownloadUrl with execution_id and storage_key
97
107
  * 4. Use returned download_url for HTTP GET
98
108
  *
@@ -1 +1 @@
1
- {"version":3,"file":"query_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agentexecution/v1/query_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sIAAsI;AACtI,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,6CAA6C,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,4CAA4C,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,uDAAuD,EAAE,MAAM,wDAAwD,CAAC;AACjI,OAAO,EAAE,0CAA0C,EAAE,MAAM,2CAA2C,CAAC;AAEvG;;GAEG;AACH,MAAM,CAAC,MAAM,+CAA+C,GAAY,aAAa,CACnF,QAAQ,CAAC,o9FAAo9F,EAAE,CAAC,6CAA6C,EAAE,4CAA4C,EAAE,uDAAuD,EAAE,0CAA0C,CAAC,CAAC,CAAC;AAErqG;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GA+NrC,aAAa,CAChB,WAAW,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"query_pb.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/agentexecution/v1/query_pb.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sIAAsI;AACtI,oBAAoB;AAGpB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,6CAA6C,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,4CAA4C,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,uDAAuD,EAAE,MAAM,wDAAwD,CAAC;AACjI,OAAO,EAAE,0CAA0C,EAAE,MAAM,2CAA2C,CAAC;AAEvG;;GAEG;AACH,MAAM,CAAC,MAAM,+CAA+C,GAAY,aAAa,CACnF,QAAQ,CAAC,o9FAAo9F,EAAE,CAAC,6CAA6C,EAAE,4CAA4C,EAAE,uDAAuD,EAAE,0CAA0C,CAAC,CAAC,CAAC;AAErqG;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAyOrC,aAAa,CAChB,WAAW,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAC"}
@@ -2,13 +2,22 @@
2
2
  * ExecutionContextCommandController handles write operations for ExecutionContext resources.
3
3
  *
4
4
  * @internal
5
- * Authorization: All RPCs use is_skip_authorization with custom handler-level derived auth.
6
- * ExecutionContext is ephemeral (1:1 with its parent execution) and has no dedicated
7
- * FGA model. Authorization is derived from the parent execution:
8
- * - create: Caller must have can_edit on parent agent_execution or workflow_execution
9
- * - delete: Caller must have can_edit on parent agent_execution or workflow_execution
10
- *
11
- * This avoids FGA tuple churn for short-lived resources while maintaining proper access control.
5
+ * Every write RPC uses is_skip_authorization with a real handler-level check
6
+ * (the framework's declarative FGA options cannot express any of these):
7
+ * - create: the caller-class differs by transport. Internal in-process
8
+ * pipeline calls (agent execution, workflow execution, workflow recovery,
9
+ * MCP connect) are trusted the parent operation already authorized the
10
+ * run against its session-or-org, and the EC is created before that parent
11
+ * is persisted, so it carries no resource to re-check. External callers
12
+ * must hold can_create_execution_in on metadata.org (the same bar that
13
+ * gates creating an execution in the org; held by members and guests).
14
+ * A declarative org option cannot encode the internal/external split.
15
+ * - apply: intentionally unannotated router — it delegates to create
16
+ * (create-or-fail; ExecutionContext has no update RPC) and the delegated
17
+ * pipeline runs under create's handler, authorization included.
18
+ * - delete: caller must have can_edit on execution_context:<id> (owner-only,
19
+ * per the execution_context FGA model). The FGA target is the loaded
20
+ * resource, so it cannot be a declarative method option.
12
21
  *
13
22
  * @generated from service ai.stigmer.agentic.executioncontext.v1.ExecutionContextCommandController
14
23
  */
@@ -19,8 +28,9 @@ export declare const ExecutionContextCommandController: {
19
28
  * Create or update an ExecutionContext.
20
29
  *
21
30
  * @internal
22
- * The authorization and state-operation are determined depending on whether the execution context
23
- * is going to be created or updated which is determined as part of the request execution.
31
+ * Router only: delegates to create when the resource does not exist and
32
+ * fails with ALREADY_EXISTS when it does (no update RPC). Authorization is
33
+ * inherited from the delegated create pipeline.
24
34
  *
25
35
  * @generated from rpc ai.stigmer.agentic.executioncontext.v1.ExecutionContextCommandController.apply
26
36
  */
@@ -34,8 +44,13 @@ export declare const ExecutionContextCommandController: {
34
44
  * Create a new ExecutionContext for an execution.
35
45
  *
36
46
  * @internal
37
- * Called by execution pipeline on behalf of the user.
38
- * Handler-level derived auth: checks can_edit on parent agent_execution or workflow_execution.
47
+ * Called by the execution pipelines (agent execution, workflow execution,
48
+ * workflow recovery, MCP connect) as sub-steps, and reachable directly by
49
+ * API clients. is_skip_authorization because the caller-class split cannot
50
+ * be a declarative option: the create handler trusts internal in-process
51
+ * calls (already authorized upstream) and requires external callers to hold
52
+ * can_create_execution_in on metadata.org. The pipeline additionally grants
53
+ * the caller the owner tuple, which gates all subsequent reads and delete.
39
54
  *
40
55
  * @generated from rpc ai.stigmer.agentic.executioncontext.v1.ExecutionContextCommandController.create
41
56
  */
@@ -49,8 +64,10 @@ export declare const ExecutionContextCommandController: {
49
64
  * Delete an ExecutionContext.
50
65
  *
51
66
  * @internal
52
- * Called when execution completes. Handler-level derived auth: checks can_edit
53
- * on parent agent_execution or workflow_execution.
67
+ * Called when execution completes. Handler-level auth (the FGA target is the
68
+ * loaded resource, so it cannot be a declarative option): caller must have
69
+ * can_edit on execution_context:<id>, which the FGA model resolves to the
70
+ * owner written at create time.
54
71
  *
55
72
  * @generated from rpc ai.stigmer.agentic.executioncontext.v1.ExecutionContextCommandController.delete
56
73
  */
@@ -9,13 +9,22 @@ import { ApiResourceDeleteInput } from "../../../commons/apiresource/io_pbjs";
9
9
  * ExecutionContextCommandController handles write operations for ExecutionContext resources.
10
10
  *
11
11
  * @internal
12
- * Authorization: All RPCs use is_skip_authorization with custom handler-level derived auth.
13
- * ExecutionContext is ephemeral (1:1 with its parent execution) and has no dedicated
14
- * FGA model. Authorization is derived from the parent execution:
15
- * - create: Caller must have can_edit on parent agent_execution or workflow_execution
16
- * - delete: Caller must have can_edit on parent agent_execution or workflow_execution
17
- *
18
- * This avoids FGA tuple churn for short-lived resources while maintaining proper access control.
12
+ * Every write RPC uses is_skip_authorization with a real handler-level check
13
+ * (the framework's declarative FGA options cannot express any of these):
14
+ * - create: the caller-class differs by transport. Internal in-process
15
+ * pipeline calls (agent execution, workflow execution, workflow recovery,
16
+ * MCP connect) are trusted the parent operation already authorized the
17
+ * run against its session-or-org, and the EC is created before that parent
18
+ * is persisted, so it carries no resource to re-check. External callers
19
+ * must hold can_create_execution_in on metadata.org (the same bar that
20
+ * gates creating an execution in the org; held by members and guests).
21
+ * A declarative org option cannot encode the internal/external split.
22
+ * - apply: intentionally unannotated router — it delegates to create
23
+ * (create-or-fail; ExecutionContext has no update RPC) and the delegated
24
+ * pipeline runs under create's handler, authorization included.
25
+ * - delete: caller must have can_edit on execution_context:<id> (owner-only,
26
+ * per the execution_context FGA model). The FGA target is the loaded
27
+ * resource, so it cannot be a declarative method option.
19
28
  *
20
29
  * @generated from service ai.stigmer.agentic.executioncontext.v1.ExecutionContextCommandController
21
30
  */
@@ -26,8 +35,9 @@ export const ExecutionContextCommandController = {
26
35
  * Create or update an ExecutionContext.
27
36
  *
28
37
  * @internal
29
- * The authorization and state-operation are determined depending on whether the execution context
30
- * is going to be created or updated which is determined as part of the request execution.
38
+ * Router only: delegates to create when the resource does not exist and
39
+ * fails with ALREADY_EXISTS when it does (no update RPC). Authorization is
40
+ * inherited from the delegated create pipeline.
31
41
  *
32
42
  * @generated from rpc ai.stigmer.agentic.executioncontext.v1.ExecutionContextCommandController.apply
33
43
  */
@@ -41,8 +51,13 @@ export const ExecutionContextCommandController = {
41
51
  * Create a new ExecutionContext for an execution.
42
52
  *
43
53
  * @internal
44
- * Called by execution pipeline on behalf of the user.
45
- * Handler-level derived auth: checks can_edit on parent agent_execution or workflow_execution.
54
+ * Called by the execution pipelines (agent execution, workflow execution,
55
+ * workflow recovery, MCP connect) as sub-steps, and reachable directly by
56
+ * API clients. is_skip_authorization because the caller-class split cannot
57
+ * be a declarative option: the create handler trusts internal in-process
58
+ * calls (already authorized upstream) and requires external callers to hold
59
+ * can_create_execution_in on metadata.org. The pipeline additionally grants
60
+ * the caller the owner tuple, which gates all subsequent reads and delete.
46
61
  *
47
62
  * @generated from rpc ai.stigmer.agentic.executioncontext.v1.ExecutionContextCommandController.create
48
63
  */
@@ -56,8 +71,10 @@ export const ExecutionContextCommandController = {
56
71
  * Delete an ExecutionContext.
57
72
  *
58
73
  * @internal
59
- * Called when execution completes. Handler-level derived auth: checks can_edit
60
- * on parent agent_execution or workflow_execution.
74
+ * Called when execution completes. Handler-level auth (the FGA target is the
75
+ * loaded resource, so it cannot be a declarative option): caller must have
76
+ * can_edit on execution_context:<id>, which the FGA model resolves to the
77
+ * owner written at create time.
61
78
  *
62
79
  * @generated from rpc ai.stigmer.agentic.executioncontext.v1.ExecutionContextCommandController.delete
63
80
  */
@@ -1 +1 @@
1
- {"version":3,"file":"command_connect.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/executioncontext/v1/command_connect.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,4IAA4I;AAC5I,oBAAoB;AACpB,cAAc;AAEd,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,0EAA0E;IACpF,OAAO,EAAE;QACP;;;;;;;;WAQG;QACH,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,CAAC,EAAE,gBAAgB;YACnB,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;QACD;;;;;;;;WAQG;QACH,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,CAAC,EAAE,gBAAgB;YACnB,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;QACD;;;;;;;;WAQG;QACH,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,CAAC,EAAE,sBAAsB;YACzB,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;KACF;CACO,CAAC"}
1
+ {"version":3,"file":"command_connect.js","sourceRoot":"","sources":["../../../../../../ai/stigmer/agentic/executioncontext/v1/command_connect.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,4IAA4I;AAC5I,oBAAoB;AACpB,cAAc;AAEd,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,0EAA0E;IACpF,OAAO,EAAE;QACP;;;;;;;;;WASG;QACH,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,CAAC,EAAE,gBAAgB;YACnB,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;QACD;;;;;;;;;;;;;WAaG;QACH,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,CAAC,EAAE,gBAAgB;YACnB,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;QACD;;;;;;;;;;WAUG;QACH,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,CAAC,EAAE,sBAAsB;YACzB,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE,UAAU,CAAC,KAAK;SACvB;KACF;CACO,CAAC"}