@burdenoff/microfe-planmagnet 2026.925.5 → 2026.925.6

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.
@@ -1263,6 +1263,54 @@ export declare enum ObjectiveStatus {
1263
1263
  Completed = "COMPLETED",
1264
1264
  Draft = "DRAFT"
1265
1265
  }
1266
+ /**
1267
+ * One recorded AI call. Every call is written, success or failure, by
1268
+ * AiGatewayService.completeWithDecision.
1269
+ *
1270
+ * `inputRefs` is deliberately NOT exposed: the column is classified L3 in the
1271
+ * Prisma schema, and a ledger read should not become the easiest way to pull
1272
+ * classified input back out.
1273
+ */
1274
+ export type PlanmagnetAgentRun = {
1275
+ __typename?: 'PlanmagnetAgentRun';
1276
+ actorId: Scalars['String']['output'];
1277
+ actorType: Scalars['String']['output'];
1278
+ createdAt: Scalars['DateTime']['output'];
1279
+ /** What the model decided (e.g. the suggestions it returned), as recorded. */
1280
+ decision?: Maybe<Scalars['JSON']['output']>;
1281
+ error?: Maybe<Scalars['String']['output']>;
1282
+ id: Scalars['ID']['output'];
1283
+ latencyMs?: Maybe<Scalars['Int']['output']>;
1284
+ model: Scalars['String']['output'];
1285
+ promptSummary: Scalars['String']['output'];
1286
+ provider: Scalars['String']['output'];
1287
+ status: PlanmagnetAgentRunStatus;
1288
+ tokensIn?: Maybe<Scalars['Int']['output']>;
1289
+ tokensOut?: Maybe<Scalars['Int']['output']>;
1290
+ trigger: PlanmagnetAgentRunTrigger;
1291
+ workspaceId: Scalars['ID']['output'];
1292
+ };
1293
+ export type PlanmagnetAgentRunFilter = {
1294
+ status?: InputMaybe<PlanmagnetAgentRunStatus>;
1295
+ };
1296
+ export type PlanmagnetAgentRunList = {
1297
+ __typename?: 'PlanmagnetAgentRunList';
1298
+ items: Array<PlanmagnetAgentRun>;
1299
+ pageInfo: PlanmagnetPageInfo;
1300
+ totalCount: Scalars['Int']['output'];
1301
+ };
1302
+ /**
1303
+ * Values mirror the Prisma enum exactly. Enum drift between the two layers is
1304
+ * how every dependency write in this service 500'd for months — see
1305
+ * 20260924130000 — so do not add a value here without the migration.
1306
+ */
1307
+ export declare enum PlanmagnetAgentRunStatus {
1308
+ Failed = "FAILED",
1309
+ Succeeded = "SUCCEEDED"
1310
+ }
1311
+ export declare enum PlanmagnetAgentRunTrigger {
1312
+ Manual = "MANUAL"
1313
+ }
1266
1314
  export type PlanmagnetApplyTemplateInput = {
1267
1315
  ownerId: Scalars['String']['input'];
1268
1316
  projectDescription?: InputMaybe<Scalars['String']['input']>;
@@ -3125,6 +3173,22 @@ export type PlanmagnetWorkItemBreakdownResult = {
3125
3173
  provider: Scalars['String']['output'];
3126
3174
  suggestions: Array<PlanmagnetWorkItemSuggestion>;
3127
3175
  };
3176
+ /**
3177
+ * Server-side counts of the work items matching a filter. The list query returns
3178
+ * at most 100 rows per page, so a count taken from a page undercounts any
3179
+ * workspace with more than 100 items.
3180
+ */
3181
+ export type PlanmagnetWorkItemCounts = {
3182
+ __typename?: 'PlanmagnetWorkItemCounts';
3183
+ /** Matching work items per project and status */
3184
+ byProject: Array<PlanmagnetWorkItemProjectStatusCount>;
3185
+ /** Matching work items per status (statuses with no items are omitted) */
3186
+ byStatus: Array<PlanmagnetWorkItemStatusCount>;
3187
+ /** Sum of story points over every matching work item */
3188
+ points: Scalars['Int']['output'];
3189
+ /** Every matching work item */
3190
+ total: Scalars['Int']['output'];
3191
+ };
3128
3192
  export type PlanmagnetWorkItemDependencyList = {
3129
3193
  __typename?: 'PlanmagnetWorkItemDependencyList';
3130
3194
  items: Array<WorkItemDependency>;
@@ -3161,6 +3225,22 @@ export type PlanmagnetWorkItemList = {
3161
3225
  pageInfo: PlanmagnetPageInfo;
3162
3226
  totalCount: Scalars['Int']['output'];
3163
3227
  };
3228
+ export type PlanmagnetWorkItemProjectStatusCount = {
3229
+ __typename?: 'PlanmagnetWorkItemProjectStatusCount';
3230
+ count: Scalars['Int']['output'];
3231
+ /** Sum of story points of these work items (items without an estimate count as 0) */
3232
+ points: Scalars['Int']['output'];
3233
+ projectId: Scalars['String']['output'];
3234
+ status: Scalars['String']['output'];
3235
+ };
3236
+ export type PlanmagnetWorkItemStatusCount = {
3237
+ __typename?: 'PlanmagnetWorkItemStatusCount';
3238
+ count: Scalars['Int']['output'];
3239
+ /** Sum of story points of these work items (items without an estimate count as 0) */
3240
+ points: Scalars['Int']['output'];
3241
+ /** A WorkItemStatus value. A String, not the enum, so a stored status the API does not expose yet (BLOCKED) cannot fail the whole query */
3242
+ status: Scalars['String']['output'];
3243
+ };
3164
3244
  export type PlanmagnetWorkItemSuggestion = {
3165
3245
  __typename?: 'PlanmagnetWorkItemSuggestion';
3166
3246
  description?: Maybe<Scalars['String']['output']>;
@@ -3492,6 +3572,21 @@ export type Query = {
3492
3572
  planmagnetMilestone?: Maybe<Milestone>;
3493
3573
  /** List milestones in a workspace */
3494
3574
  planmagnetMilestones: PlanmagnetMilestoneList;
3575
+ /**
3576
+ * The CALLING actor's own AI calls in this workspace, newest first.
3577
+ *
3578
+ * Until 2026-09-24 the ledger was write-only: every AI call was recorded and
3579
+ * nothing could read the record back.
3580
+ *
3581
+ * Two checks, deliberately both. The directive requires read on planmagnet-ai
3582
+ * in this workspace, so someone removed from the workspace loses access to it.
3583
+ * The resolver then filters on the caller's own actorId, which is what makes
3584
+ * this a personal list — the rows are other people's prompts otherwise, and a
3585
+ * workspace-wide view needs its own policy decision (see BOFF-7868: every
3586
+ * member currently holds VIEWER on planmagnet-admin, so gating on that would
3587
+ * show everyone's prompts to everyone).
3588
+ */
3589
+ planmagnetMyAgentRuns: PlanmagnetAgentRunList;
3495
3590
  planmagnetObjective?: Maybe<PlanmagnetObjective>;
3496
3591
  planmagnetObjectives: PlanmagnetObjectiveList;
3497
3592
  /** Get a single portfolio by ID */
@@ -3566,6 +3661,11 @@ export type Query = {
3566
3661
  planmagnetVelocity: PlanmagnetVelocity;
3567
3662
  /** Get a single work item by ID */
3568
3663
  planmagnetWorkItem?: Maybe<WorkItem>;
3664
+ /**
3665
+ * Count work items matching a filter, in total, per status and per project,
3666
+ * computed on the server
3667
+ */
3668
+ planmagnetWorkItemCounts: PlanmagnetWorkItemCounts;
3569
3669
  /** Docs currently linked to a given work item. */
3570
3670
  planmagnetWorkItemDocs: Array<PlanmagnetDoc>;
3571
3671
  /** Get a single work item link by ID */
@@ -3711,6 +3811,11 @@ export type QueryPlanmagnetMilestonesArgs = {
3711
3811
  pagination?: InputMaybe<PlanmagnetPaginationInput>;
3712
3812
  workspaceId: Scalars['ID']['input'];
3713
3813
  };
3814
+ export type QueryPlanmagnetMyAgentRunsArgs = {
3815
+ filter?: InputMaybe<PlanmagnetAgentRunFilter>;
3816
+ pagination?: InputMaybe<PlanmagnetPaginationInput>;
3817
+ workspaceId: Scalars['ID']['input'];
3818
+ };
3714
3819
  export type QueryPlanmagnetObjectiveArgs = {
3715
3820
  id: Scalars['ID']['input'];
3716
3821
  };
@@ -3836,6 +3941,10 @@ export type QueryPlanmagnetVelocityArgs = {
3836
3941
  export type QueryPlanmagnetWorkItemArgs = {
3837
3942
  id: Scalars['ID']['input'];
3838
3943
  };
3944
+ export type QueryPlanmagnetWorkItemCountsArgs = {
3945
+ filter?: InputMaybe<PlanmagnetWorkItemFilter>;
3946
+ workspaceId: Scalars['ID']['input'];
3947
+ };
3839
3948
  export type QueryPlanmagnetWorkItemDocsArgs = {
3840
3949
  workItemId: Scalars['ID']['input'];
3841
3950
  };